[Bf-blender-cvs] [a8eb95c] master: Fix T39597: Missing entries in VSE Preview menu

2014-04-27 Thread Peter Schlaile
Commit: a8eb95c4e9d680caa2904405504a27b301a57db0
Author: Peter Schlaile
Date:   Sun Apr 27 22:59:30 2014 +0200
https://developer.blender.org/rBa8eb95c4e9d680caa2904405504a27b301a57db0

Fix T39597: Missing entries in VSE Preview menu

This adds some view ratios in the video sequencer menu, based (copied) on the 
UV/Image Editor. It also fixes the inverted ratio issue reported in the same 
task.

Reviewers: #video_sequencer, #user_interface, schlaile

Reviewed By: schlaile

CC: jta, dingto, sergey, schlaile

Differential Revision: https://developer.blender.org/D447

===

M   release/scripts/startup/bl_ui/space_sequencer.py
M   source/blender/editors/space_sequencer/sequencer_edit.c

===

diff --git a/release/scripts/startup/bl_ui/space_sequencer.py 
b/release/scripts/startup/bl_ui/space_sequencer.py
index 0ce095d..b77078b 100644
--- a/release/scripts/startup/bl_ui/space_sequencer.py
+++ b/release/scripts/startup/bl_ui/space_sequencer.py
@@ -160,7 +160,16 @@ class SEQUENCER_MT_view(Menu):
 if st.view_type in {'PREVIEW', 'SEQUENCER_PREVIEW'}:
 layout.operator_context = 'INVOKE_REGION_PREVIEW'
 layout.operator("sequencer.view_all_preview", text="Fit preview in 
window")
-layout.operator("sequencer.view_zoom_ratio", text="Show preview 
1:1").ratio = 1.0
+
+layout.separator()
+
+ratios = ((1, 8), (1, 4), (1, 2), (1, 1), (2, 1), (4, 1), (8, 1))
+
+for a, b in ratios:
+layout.operator("sequencer.view_zoom_ratio", text=iface_("Zoom 
%d:%d") % (a, b), translate=False).ratio = a / b
+
+layout.separator()
+
 layout.operator_context = 'INVOKE_DEFAULT'
 
 # # XXX, invokes in the header view
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c 
b/source/blender/editors/space_sequencer/sequencer_edit.c
index f14eb2f..9b15036 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -2296,7 +2296,7 @@ static int sequencer_view_zoom_ratio_exec(bContext *C, 
wmOperator *op)
float facx = BLI_rcti_size_x(&v2d->mask) / winx;
float facy = BLI_rcti_size_y(&v2d->mask) / winy;
 
-   BLI_rctf_resize(&v2d->cur, floorf(winx * facx * ratio + 0.5f), 
floorf(winy * facy * ratio + 0.5f));
+   BLI_rctf_resize(&v2d->cur, floorf(winx * facx / ratio + 0.5f), 
floorf(winy * facy / ratio + 0.5f));
 
ED_region_tag_redraw(CTX_wm_region(C));

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58243] trunk/blender/extern/libredcode: = = libredcode / licence cleanup ==

2013-07-14 Thread Peter Schlaile
Revision: 58243
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58243
Author:   schlaile
Date: 2013-07-14 20:38:55 + (Sun, 14 Jul 2013)
Log Message:
---
== libredcode / licence cleanup ==

Changed libredcode to GNU GPL v2 or later to make it more compatible
with additional libraries added to blender.

Modified Paths:
--
trunk/blender/extern/libredcode/codec.c
trunk/blender/extern/libredcode/codec.h
trunk/blender/extern/libredcode/debayer.c
trunk/blender/extern/libredcode/debayer.h
trunk/blender/extern/libredcode/format.c
trunk/blender/extern/libredcode/format.h

Modified: trunk/blender/extern/libredcode/codec.c
===
--- trunk/blender/extern/libredcode/codec.c 2013-07-14 17:21:12 UTC (rev 
58242)
+++ trunk/blender/extern/libredcode/codec.c 2013-07-14 20:38:55 UTC (rev 
58243)
@@ -1,3 +1,25 @@
+/* * BEGIN GPL LICENSE BLOCK *
+ *
+ * Copyright 2008 Peter Schlaile
+ *
+ * This file is part of libredcode.
+ *
+ * Libredcode is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Libredcode is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with libredcode; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * * END GPL LICENSE BLOCK */
+
 #include "codec.h"
 #include "format.h"
 #include "debayer.h"

Modified: trunk/blender/extern/libredcode/codec.h
===
--- trunk/blender/extern/libredcode/codec.h 2013-07-14 17:21:12 UTC (rev 
58242)
+++ trunk/blender/extern/libredcode/codec.h 2013-07-14 20:38:55 UTC (rev 
58243)
@@ -1,3 +1,25 @@
+/* * BEGIN GPL LICENSE BLOCK *
+ *
+ * Copyright 2008 Peter Schlaile
+ *
+ * This file is part of libredcode.
+ *
+ * Libredcode is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Libredcode is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Libredcode; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * * END GPL LICENSE BLOCK */
+
 #ifndef __CODEC_H__
 #define __CODEC_H__
 

Modified: trunk/blender/extern/libredcode/debayer.c
===
--- trunk/blender/extern/libredcode/debayer.c   2013-07-14 17:21:12 UTC (rev 
58242)
+++ trunk/blender/extern/libredcode/debayer.c   2013-07-14 20:38:55 UTC (rev 
58243)
@@ -1,3 +1,25 @@
+/* * BEGIN GPL LICENSE BLOCK *
+ *
+ * Copyright 2008 Peter Schlaile
+ *
+ * This file is part of libredcode.
+ *
+ * Libredcode is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Libredcode is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Libredcode; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * * END GPL LICENSE BLOCK */
+
 #include "debayer.h"
 
 /* pretty simple but astonishingly very effective "debayer" function 

Modified: trunk/blender/extern/libredcode/debayer.h
===
--- trunk/blender/extern/libredcode/debayer.h   2013-07-14 17:21:12 UTC (rev 
58242)
+++ trunk/blender/extern/libredcode/debayer.h   2013-07-14 20:38:55 UTC (rev 
58243)
@@ -1,3 +1,25 @@
+/* * BEGIN GPL LICENSE BLOCK *
+ *
+ * Copyright 2008 Peter Schlaile
+ *
+ * This file is part of libredcode.
+ *
+ * Libredcode is free software; you can redis

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56046] trunk/blender: == FFMPEG / Canon DSLR footage workaround ==

2013-04-14 Thread Peter Schlaile
Revision: 56046
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56046
Author:   schlaile
Date: 2013-04-14 13:44:04 + (Sun, 14 Apr 2013)
Log Message:
---
== FFMPEG / Canon DSLR footage workaround ==

The latest ffmpeg versions include a workaround to deal with a certain
pecularity in Canon DSLR footage: instead of decoding pictures with the
proper resolution of 1920x1080 they decode it with 1920x1088 and add a
black bar at the bottom.

Needless to say, that this screws up things in a lot of areas within blender
(proxy indices, mask animations etc.)

Since all blender versions besides Linux x86 32bit seem still to include
older ffmpeg versions which still contain this bug, this patch adds
a workaround for older versions until we have all versions on all platforms
up to date.

See also: 
http://git.libav.org/?p=libav.git;a=commit;h=30f515091c323da59c0f1b533703dedca2f4b95d

Modified Paths:
--
trunk/blender/intern/ffmpeg/ffmpeg_compat.h
trunk/blender/source/blender/imbuf/intern/anim_movie.c
trunk/blender/source/blender/imbuf/intern/indexer.c

Modified: trunk/blender/intern/ffmpeg/ffmpeg_compat.h
===
--- trunk/blender/intern/ffmpeg/ffmpeg_compat.h 2013-04-14 12:01:12 UTC (rev 
56045)
+++ trunk/blender/intern/ffmpeg/ffmpeg_compat.h 2013-04-14 13:44:04 UTC (rev 
56046)
@@ -72,11 +72,43 @@
 #define FFMPEG_SWSCALE_COLOR_SPACE_SUPPORT
 #endif
 
+#if ((LIBAVCODEC_VERSION_MAJOR > 54) || (LIBAVCODEC_VERSION_MAJOR >= 54) && 
(LIBAVCODEC_VERSION_MINOR > 14))
+#define FFMPEG_HAVE_CANON_H264_RESOLUTION_FIX
+#endif
+
 #if ((LIBAVUTIL_VERSION_MAJOR > 51) || (LIBAVUTIL_VERSION_MAJOR == 51) && 
(LIBAVUTIL_VERSION_MINOR >= 32))
 #define FFMPEG_FFV1_ALPHA_SUPPORTED
 #define FFMPEG_SAMPLE_FMT_S16P_SUPPORTED
 #endif
 
+static inline
+int av_get_cropped_height_from_codec(AVCodecContext *pCodecCtx)
+{
+   int y = pCodecCtx->height;
+
+#ifndef FFMPEG_HAVE_CANON_H264_RESOLUTION_FIX
+/* really bad hack to remove this dreadfull black bar at the bottom
+   with Canon footage and old ffmpeg versions.
+   (to fix this properly in older ffmpeg versions one has to write a new
+   demuxer...) 
+  
+   see the actual fix here for reference:
+
+   
http://git.libav.org/?p=libav.git;a=commit;h=30f515091c323da59c0f1b533703dedca2f4b95d
+
+   We do our best to apply this only to matching footage.
+*/
+   if (pCodecCtx->width == 1920 && 
+   pCodecCtx->height == 1088 &&
+   pCodecCtx->pix_fmt == PIX_FMT_YUVJ420P &&
+   pCodecCtx->codec_id == CODEC_ID_H264 ) {
+   y = 1080;
+   }
+#endif
+
+   return y;
+}
+
 #if ((LIBAVUTIL_VERSION_MAJOR < 51) || (LIBAVUTIL_VERSION_MAJOR == 51) && 
(LIBAVUTIL_VERSION_MINOR < 22))
 static inline
 int av_opt_set(void *obj, const char *name, const char *val, int search_flags)

Modified: trunk/blender/source/blender/imbuf/intern/anim_movie.c
===
--- trunk/blender/source/blender/imbuf/intern/anim_movie.c  2013-04-14 
12:01:12 UTC (rev 56045)
+++ trunk/blender/source/blender/imbuf/intern/anim_movie.c  2013-04-14 
13:44:04 UTC (rev 56046)
@@ -548,7 +548,13 @@
anim->params = 0;
 
anim->x = pCodecCtx->width;
-   anim->y = pCodecCtx->height;
+   anim->y = av_get_cropped_height_from_codec(pCodecCtx);
+
+   anim->pFormatCtx = pFormatCtx;
+   anim->pCodecCtx = pCodecCtx;
+   anim->pCodec = pCodec;
+   anim->videoStream = videoStream;
+
anim->interlacing = 0;
anim->orientation = 0;
anim->framesize = anim->x * anim->y * 4;
@@ -559,11 +565,6 @@
anim->next_pts = -1;
anim->next_packet.stream_index = -1;
 
-   anim->pFormatCtx = pFormatCtx;
-   anim->pCodecCtx = pCodecCtx;
-   anim->pCodec = pCodec;
-   anim->videoStream = videoStream;
-
anim->pFrame = avcodec_alloc_frame();
anim->pFrameComplete = FALSE;
anim->pFrameDeinterlaced = avcodec_alloc_frame();
@@ -587,9 +588,12 @@
avpicture_fill((AVPicture *) anim->pFrameDeinterlaced,
   MEM_callocN(avpicture_get_size(
   anim->pCodecCtx->pix_fmt,
-  anim->x, anim->y),
+  anim->pCodecCtx->width,
+  anim->pCodecCtx->height),
   "ffmpeg deinterlace"),
-  anim->pCodecCtx->pix_fmt, anim->x, anim->y);
+  anim->pCodecCtx->pix_fmt, 
+  anim->pCodecCtx->width,
+  anim->pCodecCtx->height);
}
 
if (pCodecCtx->has_b_frames) {
@@ -600,11 +604,11 @@
}

anim->img_convert_ctx = sws_getContext(
-   anim-

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54894] trunk/blender/source/blender/ editors/space_sequencer/sequencer_add.c: == Sequencer ==

2013-02-26 Thread Peter Schlaile
Revision: 54894
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54894
Author:   schlaile
Date: 2013-02-27 00:04:07 + (Wed, 27 Feb 2013)
Log Message:
---
== Sequencer ==

This fixes the placement code of new files added to the sequencer timeline.

The old code tried to guess the strip position from the current mouse
pointer position.

Annoying effect: if you add a new strip using the menu, especially if the
file editor pops up, the strip ends up in nowheres land (most likely around
track 40, frame -200).

New behaviour: strips are always placed at cfra, which is the
sequencer equivalent to the 3D cursor (and that's where new objects in 
3D editing end up).

Bonus feature: we try our best to guess the right track by finding the
nearest strip by type.

The patch was inspired by 
[#32766] VSE: Add Strip on Current Frame

Thanks to venomgfx for the idea!

Modified Paths:
--
trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
===
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
2013-02-26 23:12:42 UTC (rev 54893)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
2013-02-27 00:04:07 UTC (rev 54894)
@@ -126,23 +126,53 @@
}
 }
 
-static void sequencer_generic_invoke_xy__internal(bContext *C, wmOperator *op, 
wmEvent *event, int flag)
+static int sequencer_generic_invoke_xy_guess_channel(bContext * C, wmOperator 
*op, int type)
 {
+   Sequence *tgt = NULL;
+   Sequence *seq;
+   Scene *scene = CTX_data_scene(C);
+   Editing *ed = BKE_sequencer_editing_get(scene, TRUE);
+   int cfra = (int) CFRA;
+   int proximity = INT_MAX;
+
+   if (!ed || !ed->seqbasep) {
+   return 1;
+   }
+
+   for (seq = ed->seqbasep->first; seq; seq = seq->next) {
+   if ((type == -1 || seq->type == type) 
+   && seq->enddisp < cfra 
+   && cfra - seq->enddisp < proximity) {
+   tgt = seq;
+   proximity = cfra - seq->enddisp;
+   }
+   }
+   
+   if (tgt) {
+   return tgt->machine;
+   }
+   return 1;
+}
+
+static void sequencer_generic_invoke_xy__internal(bContext *C, wmOperator *op, 
wmEvent *event, int flag, int type)
+{
View2D *v2d = UI_view2d_fromcontext(C);
+   Scene *scene = CTX_data_scene(C);

float mval_v2d[2];
+   int cfra = (int) CFRA;

-   UI_view2d_region_to_view(v2d, event->mval[0], event->mval[1], 
&mval_v2d[0], &mval_v2d[1]);
-
/* effect strips don't need a channel initialized from the mouse */
if (!(flag & SEQPROP_NOCHAN)) {
-   RNA_int_set(op->ptr, "channel", (int)mval_v2d[1] + 0.5f);
+   RNA_int_set(op->ptr, "channel", 
+   sequencer_generic_invoke_xy_guess_channel(
+   C, op, type));
}
 
-   RNA_int_set(op->ptr, "frame_start", (int)mval_v2d[0]);
+   RNA_int_set(op->ptr, "frame_start", cfra);

if ((flag & SEQPROP_ENDFRAME) && RNA_struct_property_is_set(op->ptr, 
"frame_end") == 0)
-   RNA_int_set(op->ptr, "frame_end", (int)mval_v2d[0] + 25);  // 
XXX arbitary but ok for now.
+   RNA_int_set(op->ptr, "frame_end", cfra + 25);  // XXX arbitary 
but ok for now.
 
if (!(flag & SEQPROP_NOPATHS)) {
sequencer_generic_invoke_path__internal(C, op, "filepath");
@@ -277,7 +307,7 @@
if (!RNA_struct_property_is_set(op->ptr, "scene"))
return WM_enum_search_invoke(C, op, event);
 
-   sequencer_generic_invoke_xy__internal(C, op, event, 0);
+   sequencer_generic_invoke_xy__internal(C, op, event, 0, SEQ_TYPE_SCENE);
return sequencer_add_scene_strip_exec(C, op);
// needs a menu
// return WM_menu_invoke(C, op, event);
@@ -375,7 +405,7 @@
if (!RNA_struct_property_is_set(op->ptr, "clip"))
return WM_enum_search_invoke(C, op, event);
 
-   sequencer_generic_invoke_xy__internal(C, op, event, 0);
+   sequencer_generic_invoke_xy__internal(C, op, event, 0, 
SEQ_TYPE_MOVIECLIP);
return sequencer_add_movieclip_strip_exec(C, op);
// needs a menu
// return WM_menu_invoke(C, op, event);
@@ -472,7 +502,7 @@
if (!RNA_struct_property_is_set(op->ptr, "mask"))
return WM_enum_search_invoke(C, op, event);
 
-   sequencer_generic_invoke_xy__internal(C, op, event, 0);
+   sequencer_generic_invoke_xy__internal(C, op, event, 0, SEQ_TYPE_MASK);
return sequencer_add_mask_strip_exec(C, op);
// needs a menu
// return WM_menu_invoke(C, op, event);
@@ -587,11 +617,11 @@
if ((RNA_struct_property_is_set(op->ptr, "fi

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54619] trunk/blender/source/blender/ editors/space_sequencer/sequencer_edit.c: == Sequencer ==

2013-02-17 Thread Peter Schlaile
Revision: 54619
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54619
Author:   schlaile
Date: 2013-02-17 22:13:00 + (Sun, 17 Feb 2013)
Log Message:
---
== Sequencer ==

Made my last fix a little bit faster and more elegant by not playing around 
with seq->tmp (only reseting it to NULL, like the old code).

Modified Paths:
--
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c   
2013-02-17 21:44:13 UTC (rev 54618)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c   
2013-02-17 22:13:00 UTC (rev 54619)
@@ -827,18 +827,14 @@
 static int cut_seq_list(Scene *scene, ListBase *slist, int cutframe,
 Sequence * (*cut_seq)(Scene *, Sequence *, int))
 {
-   int did_something = FALSE;
Sequence *seq, *seq_next_iter;
+   Sequence *seq_first_new = NULL;

-   for (seq = slist->first; seq; seq = seq->next) {
-   seq->tmp = NULL;
-   }
-   
seq = slist->first;
 
-   while (seq && !seq->tmp) {
+   while (seq && seq != seq_first_new) {
seq_next_iter = seq->next; /* we need this because we may 
remove seq */
-   /* only handle strips not marked as new */
+   seq->tmp = NULL;
if (seq->flag & SELECT) {
if (cutframe > seq->startdisp && 
cutframe < seq->enddisp)
@@ -846,28 +842,24 @@
Sequence *seqn = cut_seq(scene, seq, cutframe);
if (seqn) {
BLI_addtail(slist, seqn);
-   seqn->tmp = seq; /* mark as new */
-   did_something = TRUE;
+   seq_first_new = seq_first_new ?: seqn;
}
}
else if (seq->enddisp <= cutframe) {
/* do nothing */
}
else if (seq->startdisp >= cutframe) {
-   /* move to tail and mark as new */
+   /* move to tail */
BLI_remlink(slist, seq);
BLI_addtail(slist, seq);
-   seq->tmp = seq;
+
+   seq_first_new = seq_first_new ?: seq;
}
}
seq = seq_next_iter;
}
 
-   for (; seq; seq = seq->next) {
-   seq->tmp = NULL;
-   }
-
-   return did_something;
+   return (seq_first_new != NULL);
 }
 
 static int insert_gap(Scene *scene, int gap, int cfra)

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54618] trunk/blender/source/blender/ editors/space_sequencer/sequencer_edit.c: == Sequencer ==

2013-02-17 Thread Peter Schlaile
Revision: 54618
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54618
Author:   schlaile
Date: 2013-02-17 21:44:13 + (Sun, 17 Feb 2013)
Log Message:
---
== Sequencer ==

This fixes a bug in sequencer cut tool:

* if you cut two strips of the same name class (MVI_.MOV and MVI_.001) 
  the two new generated strips will end up with the same name.
  (easy test case: add a MOV file with it's accompanying audio track to the
  timeline and then cut both strips at once into two pieces)
  
* visible problem: your animation data will get messed up on the way, since
  the animation system doesn't know, which strip it should assign the
  animation.
  
Problem was caused by generating a new list of sequences within the 
cut_seq_list() function:

Since dupli_seq() can't see the members of the new list of sequences, it
won't be able to assign unique names in all cases.

Modified Paths:
--
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c   
2013-02-17 19:38:08 UTC (rev 54617)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c   
2013-02-17 21:44:13 UTC (rev 54618)
@@ -817,40 +817,56 @@
 
 
 /* like duplicate, but only duplicate and cut overlapping strips,
- * strips to the left of the cutframe are ignored and strips to the right are 
moved into the new list */
-static int cut_seq_list(Scene *scene, ListBase *old, ListBase *new, int 
cutframe,
+ * strips to the left of the cutframe are ignored and strips to the right 
+ * are moved to the end of slist
+ * we have to work on the same slist (not using a seperate list), since
+ * otherwise dupli_seq can't check for duplicate names properly and
+ * may generate strips with the same name (which will mess up animdata)
+ */
+
+static int cut_seq_list(Scene *scene, ListBase *slist, int cutframe,
 Sequence * (*cut_seq)(Scene *, Sequence *, int))
 {
int did_something = FALSE;
Sequence *seq, *seq_next_iter;

-   seq = old->first;
+   for (seq = slist->first; seq; seq = seq->next) {
+   seq->tmp = NULL;
+   }

-   while (seq) {
+   seq = slist->first;
+
+   while (seq && !seq->tmp) {
seq_next_iter = seq->next; /* we need this because we may 
remove seq */
-   
-   seq->tmp = NULL;
+   /* only handle strips not marked as new */
if (seq->flag & SELECT) {
if (cutframe > seq->startdisp && 
cutframe < seq->enddisp)
{
Sequence *seqn = cut_seq(scene, seq, cutframe);
if (seqn) {
-   BLI_addtail(new, seqn);
+   BLI_addtail(slist, seqn);
+   seqn->tmp = seq; /* mark as new */
+   did_something = TRUE;
}
-   did_something = TRUE;
}
else if (seq->enddisp <= cutframe) {
/* do nothing */
}
else if (seq->startdisp >= cutframe) {
-   /* move into new list */
-   BLI_remlink(old, seq);
-   BLI_addtail(new, seq);
+   /* move to tail and mark as new */
+   BLI_remlink(slist, seq);
+   BLI_addtail(slist, seq);
+   seq->tmp = seq;
}
}
seq = seq_next_iter;
}
+
+   for (; seq; seq = seq->next) {
+   seq->tmp = NULL;
+   }
+
return did_something;
 }
 
@@ -1488,25 +1504,21 @@
Editing *ed = BKE_sequencer_editing_get(scene, FALSE);
int cut_side, cut_hard, cut_frame;
 
-   ListBase newlist;
int changed;
 
cut_frame = RNA_int_get(op->ptr, "frame");
cut_hard = RNA_enum_get(op->ptr, "type");
cut_side = RNA_enum_get(op->ptr, "side");

-   newlist.first = newlist.last = NULL;
-
if (cut_hard == SEQ_CUT_HARD) {
-   changed = cut_seq_list(scene, ed->seqbasep, &newlist, 
cut_frame, cut_seq_hard);
+   changed = cut_seq_list(scene, ed->seqbasep, cut_frame, 
cut_seq_hard);
}
else {
-   changed = cut_seq_list(scene, ed->seqbasep, &newlist, 
cut_frame, cut_seq_soft);
+   changed = cut_seq_list(scene, ed->seqbasep, cut_frame, 
cut_seq_soft);
 

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54441] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: [#34013] [video sequence editor] Offset and crop of strips are wrong

2013-02-10 Thread Peter Schlaile
Revision: 54441
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54441
Author:   schlaile
Date: 2013-02-10 21:01:30 + (Sun, 10 Feb 2013)
Log Message:
---
[#34013] [video sequence editor] Offset and crop of strips are wrong

Applied patch by jehan after confirming the issue.

Thanks for the patch!

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2013-02-10 
20:47:44 UTC (rev 54440)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2013-02-10 
21:01:30 UTC (rev 54441)
@@ -1820,8 +1820,6 @@
StripCrop c = {0};
StripTransform t = {0};
int sx, sy, dx, dy;
-   double xscale = 1.0;
-   double yscale = 1.0;
 
if (is_proxy_image) {
double f = 
seq_rendersize_to_scale_factor(context.preview_render_size);
@@ -1838,21 +1836,23 @@
t = *seq->strip->transform;
}
 
-   xscale = context.scene->r.xsch ? ((double)context.rectx / 
(double)context.scene->r.xsch) : 1.0;
-   yscale = context.scene->r.ysch ? ((double)context.recty / 
(double)context.scene->r.ysch) : 1.0;
+   if (is_preprocessed) {
+   double xscale = context.scene->r.xsch ? 
((double)context.rectx / (double)context.scene->r.xsch) : 1.0;
+   double yscale = context.scene->r.ysch ? 
((double)context.recty / (double)context.scene->r.ysch) : 1.0;
+   if (seq->flag & SEQ_USE_TRANSFORM) {
+   t.xofs *= xscale;
+   t.yofs *= yscale;
+   }
+   if (seq->flag & SEQ_USE_CROP) {
+   c.left *= xscale;
+   c.right *= xscale;
+   c.top *= yscale;
+   c.bottom *= yscale;
+   }
+   }
 
-   xscale /= (double)context.rectx / (double)ibuf->x;
-   yscale /= (double)context.recty / (double)ibuf->y;
-
-   c.left *= xscale; c.right *= xscale;
-   c.top *= yscale; c.bottom *= yscale;
-
-   t.xofs *= xscale; t.yofs *= yscale;
-
sx = ibuf->x - c.left - c.right;
sy = ibuf->y - c.top - c.bottom;
-   dx = sx;
-   dy = sy;
 
if (seq->flag & SEQ_USE_TRANSFORM) {
if (is_preprocessed) {
@@ -1864,6 +1864,10 @@
dy = context.scene->r.ysch;
}
}
+   else {
+   dx = sx;
+   dy = sy;
+   }
 
if (c.top  + c.bottom >= ibuf->y ||
c.left + c.right  >= ibuf->x ||

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52718] trunk/blender/source/blender/imbuf /intern: == FFMPEG ==

2012-12-02 Thread Peter Schlaile
Revision: 52718
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52718
Author:   schlaile
Date: 2012-12-02 15:15:44 + (Sun, 02 Dec 2012)
Log Message:
---
== FFMPEG ==

This fixes a memory leak caused by the last packet on stream EOF not freed.
(Memory leak occurs on ffmpeg heap managed by av_malloc / av_free, so it is
invisible to Blender)

Also: clean up the code a little bit (anim->next_packet was never really used,
so could be moved into a local variable)

Modified Paths:
--
trunk/blender/source/blender/imbuf/intern/IMB_anim.h
trunk/blender/source/blender/imbuf/intern/anim_movie.c
trunk/blender/source/blender/imbuf/intern/indexer.c

Modified: trunk/blender/source/blender/imbuf/intern/IMB_anim.h
===
--- trunk/blender/source/blender/imbuf/intern/IMB_anim.h2012-12-02 
15:15:00 UTC (rev 52717)
+++ trunk/blender/source/blender/imbuf/intern/IMB_anim.h2012-12-02 
15:15:44 UTC (rev 52718)
@@ -178,7 +178,6 @@
struct ImBuf *last_frame;
int64_t last_pts;
int64_t next_pts;
-   AVPacket next_packet;
 #endif
 
 #ifdef WITH_REDCODE

Modified: trunk/blender/source/blender/imbuf/intern/anim_movie.c
===
--- trunk/blender/source/blender/imbuf/intern/anim_movie.c  2012-12-02 
15:15:00 UTC (rev 52717)
+++ trunk/blender/source/blender/imbuf/intern/anim_movie.c  2012-12-02 
15:15:44 UTC (rev 52718)
@@ -557,7 +557,6 @@
anim->last_frame = 0;
anim->last_pts = -1;
anim->next_pts = -1;
-   anim->next_packet.stream_index = -1;
 
anim->pFormatCtx = pFormatCtx;
anim->pCodecCtx = pCodecCtx;
@@ -764,41 +763,39 @@
}
 }
 
-/* decode one video frame also considering the packet read into next_packet */
+/* decode one video frame */
 
 static int ffmpeg_decode_video_frame(struct anim *anim)
 {
int rval = 0;
+   AVPacket next_packet;
 
+   memset(&next_packet, 0, sizeof(AVPacket));
+
av_log(anim->pFormatCtx, AV_LOG_DEBUG, "  DECODE VIDEO FRAME\n");
 
-   if (anim->next_packet.stream_index == anim->videoStream) {
-   av_free_packet(&anim->next_packet);
-   anim->next_packet.stream_index = -1;
-   }
-   
-   while ((rval = av_read_frame(anim->pFormatCtx, &anim->next_packet)) >= 
0) {
+   while ((rval = av_read_frame(anim->pFormatCtx, &next_packet)) >= 0) {
av_log(anim->pFormatCtx, 
   AV_LOG_DEBUG, 
   "%sREAD: strID=%d (VID: %d) dts=%lld pts=%lld "
   "%s\n",
-  (anim->next_packet.stream_index == anim->videoStream)
+  (next_packet.stream_index == anim->videoStream)
   ? "->" : "  ",
-  anim->next_packet.stream_index, 
+  next_packet.stream_index, 
   anim->videoStream,
-  (anim->next_packet.dts == AV_NOPTS_VALUE) ? -1 :
-  (long long int)anim->next_packet.dts,
-  (anim->next_packet.pts == AV_NOPTS_VALUE) ? -1 :
-  (long long int)anim->next_packet.pts,
-  (anim->next_packet.flags & AV_PKT_FLAG_KEY) ? 
+  (next_packet.dts == AV_NOPTS_VALUE) ? -1 :
+  (long long int)next_packet.dts,
+  (next_packet.pts == AV_NOPTS_VALUE) ? -1 :
+  (long long int)next_packet.pts,
+  (next_packet.flags & AV_PKT_FLAG_KEY) ? 
   " KEY" : "");
-   if (anim->next_packet.stream_index == anim->videoStream) {
+   if (next_packet.stream_index == anim->videoStream) {
anim->pFrameComplete = 0;
 
avcodec_decode_video2(
anim->pCodecCtx,
anim->pFrame, &anim->pFrameComplete,
-   &anim->next_packet);
+   &next_packet);
 
if (anim->pFrameComplete) {
anim->next_pts = av_get_pts_from_frame(
@@ -816,20 +813,24 @@
break;
}
}
-   av_free_packet(&anim->next_packet);
-   anim->next_packet.stream_index = -1;
+   av_free_packet(&next_packet);
}
+
+   /* this sets size and data fields to zero,
+  which is necessary to decode the remaining data
+  in the decoder engine after EOF. It also prevents a memory
+  leak, since av_read_frame spills out a full size packet even
+  on EOF... (and: it's save to call on NULL packets) */
+
+   av_free_packet(&next_packet);

if (rval == AVERROR_EOF) {
-   anim->next_p

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50474] trunk/blender/source/blender/imbuf /intern: == FFMPEG ==

2012-09-07 Thread Peter Schlaile
Revision: 50474
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50474
Author:   schlaile
Date: 2012-09-07 21:41:38 + (Fri, 07 Sep 2012)
Log Message:
---
== FFMPEG ==

This fixes [#32399] VSE doesn't show last 3 frames of Quicktime movie.

Some decoders store frames internally until EOF.
So one has to feed the decoding engine with empty packets after EOF
until all frames could be extracted properly.

Modified Paths:
--
trunk/blender/source/blender/imbuf/intern/anim_movie.c
trunk/blender/source/blender/imbuf/intern/indexer.c

Modified: trunk/blender/source/blender/imbuf/intern/anim_movie.c
===
--- trunk/blender/source/blender/imbuf/intern/anim_movie.c  2012-09-07 
17:59:45 UTC (rev 50473)
+++ trunk/blender/source/blender/imbuf/intern/anim_movie.c  2012-09-07 
21:41:38 UTC (rev 50474)
@@ -801,6 +801,34 @@
anim->next_packet.stream_index = -1;
}

+   if (rval == AVERROR_EOF) {
+   anim->next_packet.size = 0;
+   anim->next_packet.data = 0;
+
+   anim->pFrameComplete = 0;
+
+   avcodec_decode_video2(
+   anim->pCodecCtx,
+   anim->pFrame, &anim->pFrameComplete,
+   &anim->next_packet);
+
+   if (anim->pFrameComplete) {
+   anim->next_pts = av_get_pts_from_frame(
+   anim->pFormatCtx, anim->pFrame);
+
+   av_log(anim->pFormatCtx,
+  AV_LOG_DEBUG,
+  "  FRAME DONE (after EOF): next_pts=%lld "
+  "pkt_pts=%lld, guessed_pts=%lld\n",
+  (anim->pFrame->pts == AV_NOPTS_VALUE) ?
+  -1 : (long long int)anim->pFrame->pts,
+  (anim->pFrame->pkt_pts == AV_NOPTS_VALUE) ?
+  -1 : (long long int)anim->pFrame->pkt_pts,
+  (long long int)anim->next_pts);
+   rval = 0;
+   }
+   }
+
if (rval < 0) {
anim->next_packet.stream_index = -1;
 

Modified: trunk/blender/source/blender/imbuf/intern/indexer.c
===
--- trunk/blender/source/blender/imbuf/intern/indexer.c 2012-09-07 17:59:45 UTC 
(rev 50473)
+++ trunk/blender/source/blender/imbuf/intern/indexer.c 2012-09-07 21:41:38 UTC 
(rev 50474)
@@ -723,6 +723,17 @@
 
IMB_Timecode_Type tcs_in_use;
IMB_Proxy_Size proxy_sizes_in_use;
+
+   unsigned long long seek_pos;
+   unsigned long long last_seek_pos;
+   unsigned long long seek_pos_dts;
+   unsigned long long seek_pos_pts;
+   unsigned long long last_seek_pos_dts;
+   unsigned long long start_pts;
+   double frame_rate;
+   double pts_time_base;
+   int frameno, frameno_gapless;
+   int start_pts_set;
 } FFmpegIndexBuilderContext;
 
 static IndexBuildContext *index_ffmpeg_create_context(struct anim *anim, 
IMB_Timecode_Type tcs_in_use,
@@ -839,20 +850,63 @@
MEM_freeN(context);
 }
 
+static void index_rebuild_ffmpeg_proc_decoded_frame(
+   FFmpegIndexBuilderContext *context, 
+   AVPacket * curr_packet,
+   AVFrame *in_frame)
+{
+   int i;
+   unsigned long long s_pos = context->seek_pos;
+   unsigned long long s_dts = context->seek_pos_dts;
+   unsigned long long pts = av_get_pts_from_frame(context->iFormatCtx, 
in_frame);
+
+   for (i = 0; i < context->num_proxy_sizes; i++) {
+   add_to_proxy_output_ffmpeg(context->proxy_ctx[i], in_frame);
+   }
+
+   if (!context->start_pts_set) {
+   context->start_pts = pts;
+   context->start_pts_set = TRUE;
+   }
+
+   context->frameno = floor((pts - context->start_pts) 
+* context->pts_time_base 
+* context->frame_rate + 0.5f);
+
+   /* decoding starts *always* on I-Frames,
+* so: P-Frames won't work, even if all the
+* information is in place, when we seek
+* to the I-Frame presented *after* the P-Frame,
+* but located before the P-Frame within
+* the stream */
+
+   if (pts < context->seek_pos_pts) {
+   s_pos = context->last_seek_pos;
+   s_dts = context->last_seek_pos_dts;
+   }
+
+   for (i = 0; i < context->num_indexers; i++) {
+   if (context->tcs_in_use & tc_types[i]) {
+   int tc_frameno = context->frameno;
+
+   if (tc_types[i] == IMB_TC_RECORD_RUN_NO_GAPS)
+   tc_frameno = context->frameno_gapless;
+   
+   IMB_index_builder_proc_frame(
+   context-

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49842] branches/soc-2011-tomato/source/ blender/compositor/operations/COM_InpaintOperation.cpp: == Inpaint Node ==

2012-08-12 Thread Peter Schlaile
Revision: 49842
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49842
Author:   schlaile
Date: 2012-08-12 15:59:40 + (Sun, 12 Aug 2012)
Log Message:
---
== Inpaint Node ==

Fixed several small (stupid) issues with the inpaint node:

* on pixel order building, some ranges got wrong and origin was considered
  several times.

* the convolution kernel didn't consider all pixels (+1,0),(-1,0),(0,1) and 
(0-1)
  were omited, leading to suboptimal results (sometimes even black areas)

* alpha channel is now only affected an areas considered by inpaint.
  That's only important, if you choose low iteration counts.

Modified Paths:
--

branches/soc-2011-tomato/source/blender/compositor/operations/COM_InpaintOperation.cpp

Modified: 
branches/soc-2011-tomato/source/blender/compositor/operations/COM_InpaintOperation.cpp
===
--- 
branches/soc-2011-tomato/source/blender/compositor/operations/COM_InpaintOperation.cpp
  2012-08-12 14:57:19 UTC (rev 49841)
+++ 
branches/soc-2011-tomato/source/blender/compositor/operations/COM_InpaintOperation.cpp
  2012-08-12 15:59:40 UTC (rev 49842)
@@ -142,7 +142,7 @@
}

for (int j = height - 1; j >= 0; j--) {
-   for (int i = width; i >= 0; i--) {
+   for (int i = width - 1; i >= 0; i--) {
int r = m[j * width + i];

if (i + 1 < width) 
@@ -184,8 +184,7 @@
 
for (int dx = -1; dx <= 1; dx++) {
for (int dy = -1; dy <= 1; dy++) {
-   if (dx != 0 && dy != 0) {
-
+   if (dx != 0 || dy != 0) {
int x_ofs = x + dx;
int y_ofs = y + dy;
 
@@ -210,6 +209,8 @@
}
 
mul_v3_v3fl(this->get_pixel(x, y), pix, 1.0f / n);
+
+   this->get_pixel(x, y)[3] = 1.0f;
 }
 
 void *InpaintSimpleOperation::initializeTileData(rcti *rect)
@@ -243,8 +244,7 @@
 void InpaintSimpleOperation::executePixel(float output[4], int x, int y, void 
*data)
 {
this->clamp_xy(x, y);
-   copy_v3_v3(output, this->get_pixel(x, y));
-   output[3] = 1.0f;
+   copy_v4_v4(output, this->get_pixel(x, y));
 }
 
 void InpaintSimpleOperation::deinitExecution()

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49358] branches/soc-2011-tomato/source/ blender: == compositor ==

2012-07-29 Thread Peter Schlaile
ato/source/blender/blenkernel/intern/node.c
2012-07-29 15:06:50 UTC (rev 49357)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/node.c
2012-07-29 15:48:38 UTC (rev 49358)
@@ -1892,6 +1892,7 @@
register_node_type_cmp_bilateralblur(ttype);
register_node_type_cmp_vecblur(ttype);
register_node_type_cmp_dilateerode(ttype);
+   register_node_type_cmp_inpaint(ttype);
register_node_type_cmp_defocus(ttype);

register_node_type_cmp_valtorgb(ttype);

Modified: branches/soc-2011-tomato/source/blender/compositor/CMakeLists.txt
===
--- branches/soc-2011-tomato/source/blender/compositor/CMakeLists.txt   
2012-07-29 15:06:50 UTC (rev 49357)
+++ branches/soc-2011-tomato/source/blender/compositor/CMakeLists.txt   
2012-07-29 15:48:38 UTC (rev 49358)
@@ -286,6 +286,8 @@
nodes/COM_FilterNode.h
nodes/COM_DilateErodeNode.cpp
nodes/COM_DilateErodeNode.h
+   nodes/COM_InpaintNode.cpp
+   nodes/COM_InpaintNode.h
nodes/COM_BlurNode.cpp
nodes/COM_BlurNode.h
nodes/COM_BokehBlurNode.cpp
@@ -590,6 +592,8 @@
operations/COM_ConvolutionEdgeFilterOperation.cpp
operations/COM_DilateErodeOperation.cpp
operations/COM_DilateErodeOperation.h
+   operations/COM_InpaintOperation.cpp
+   operations/COM_InpaintOperation.h
operations/COM_GlareThresholdOperation.cpp
operations/COM_GlareThresholdOperation.h
operations/COM_GlareBaseOperation.cpp

Modified: 
branches/soc-2011-tomato/source/blender/compositor/intern/COM_Converter.cpp
===
--- branches/soc-2011-tomato/source/blender/compositor/intern/COM_Converter.cpp 
2012-07-29 15:06:50 UTC (rev 49357)
+++ branches/soc-2011-tomato/source/blender/compositor/intern/COM_Converter.cpp 
2012-07-29 15:48:38 UTC (rev 49358)
@@ -74,6 +74,7 @@
 #include "COM_HueSaturationValueNode.h"
 #include "COM_IDMaskNode.h"
 #include "COM_ImageNode.h"
+#include "COM_InpaintNode.h"
 #include "COM_InvertNode.h"
 #include "COM_KeyingNode.h"
 #include "COM_KeyingScreenNode.h"
@@ -303,6 +304,9 @@
case CMP_NODE_DILATEERODE:
node = new DilateErodeNode(b_node);
break;
+   case CMP_NODE_INPAINT:
+   node = new InpaintNode(b_node);
+   break;
case CMP_NODE_LENSDIST:
node = new LensDistortionNode(b_node);
break;

Added: 
branches/soc-2011-tomato/source/blender/compositor/nodes/COM_InpaintNode.cpp
===
--- 
branches/soc-2011-tomato/source/blender/compositor/nodes/COM_InpaintNode.cpp
(rev 0)
+++ 
branches/soc-2011-tomato/source/blender/compositor/nodes/COM_InpaintNode.cpp
2012-07-29 15:48:38 UTC (rev 49358)
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2011, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor: Peter Schlaile
+ * Jeroen Bakker 
+ * Monique Dewanchand
+ */
+
+#include "COM_InpaintNode.h"
+#include "DNA_scene_types.h"
+#include "COM_ExecutionSystem.h"
+#include "COM_InpaintOperation.h"
+#include "BLI_math.h"
+
+InpaintNode::InpaintNode(bNode *editorNode) : Node(editorNode)
+{
+   /* pass */
+}
+
+void InpaintNode::convertToOperations(ExecutionSystem *graph, 
CompositorContext *context)
+{
+   
+   bNode *editorNode = this->getbNode();
+
+   /* if (editorNode->custom1 == CMP_NODE_INPAINT_SIMPLE) { */
+   if (true) {
+   InpaintSimpleOperation *operation = new 
InpaintSimpleOperation();
+   operation->setbNode(editorNode);
+   operation->setIterations(editorNode->custom2);
+   
this->getInputSocket(0)->relinkConnections(operation->getInputSocket(0), 0, 
graph);
+   
this->getOutputSocket(0)->relinkConnections(operation->getOutputSocket(0));
+   graph->addOperation(operation);
+   }
+}

Added:

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47096] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: == Sequencer / Color balance ==

2012-05-27 Thread Peter Schlaile
Revision: 47096
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47096
Author:   schlaile
Date: 2012-05-27 20:57:24 + (Sun, 27 May 2012)
Log Message:
---
== Sequencer / Color balance ==

Make the color balance inner working more accurate in the byte -> byte
case, probably also fixing (can't check I'm on 32bit) the bug mentioned 
on yellow's blog:

http://blendervse.wordpress.com/2012/04/02/waiving-the-fullrange-flag/

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2012-05-27 
20:13:59 UTC (rev 47095)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2012-05-27 
20:57:24 UTC (rev 47096)
@@ -1553,7 +1553,7 @@
for (y = 0; y < 256; y++) {
float v = color_balance_fl((float)y * (1.0f / 255.0f), lift, 
gain, gamma, mul);
CLAMP(v, 0.0f, 1.0f);
-   table[y] = v * 255;
+   table[y] = round(v * 255);
}
 }
 

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46823] trunk/blender/source/blender/ compositor/operations: == Compositor ==

2012-05-20 Thread Peter Schlaile
Revision: 46823
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46823
Author:   schlaile
Date: 2012-05-20 21:24:08 + (Sun, 20 May 2012)
Log Message:
---
== Compositor ==

This fixes occasional crashes on uninitialized memory, when we open a blend 
file which has movie or image input nodes pointing to none existent 
source files.

Modified Paths:
--
trunk/blender/source/blender/compositor/operations/COM_ImageOperation.cpp

trunk/blender/source/blender/compositor/operations/COM_MovieClipOperation.cpp

Modified: 
trunk/blender/source/blender/compositor/operations/COM_ImageOperation.cpp
===
--- trunk/blender/source/blender/compositor/operations/COM_ImageOperation.cpp   
2012-05-20 21:23:26 UTC (rev 46822)
+++ trunk/blender/source/blender/compositor/operations/COM_ImageOperation.cpp   
2012-05-20 21:24:08 UTC (rev 46823)
@@ -98,6 +98,10 @@
 void BaseImageOperation::determineResolution(unsigned int resolution[], 
unsigned int preferredResolution[])
 {
ImBuf *stackbuf = getImBuf();
+
+resolution[0] = 0;
+resolution[1] = 0;
+
if (stackbuf) {
resolution[0] = stackbuf->x;
resolution[1] = stackbuf->y;

Modified: 
trunk/blender/source/blender/compositor/operations/COM_MovieClipOperation.cpp
===
--- 
trunk/blender/source/blender/compositor/operations/COM_MovieClipOperation.cpp   
2012-05-20 21:23:26 UTC (rev 46822)
+++ 
trunk/blender/source/blender/compositor/operations/COM_MovieClipOperation.cpp   
2012-05-20 21:24:08 UTC (rev 46823)
@@ -67,6 +67,10 @@
 void MovieClipOperation::determineResolution(unsigned int resolution[], 
unsigned int preferredResolution[])
 {
ImBuf *ibuf;
+
+resolution[0] = 0;
+resolution[1] = 0;
+
if (this->movieClip) {
ibuf = BKE_movieclip_get_ibuf(this->movieClip, 
this->movieClipUser);
if (ibuf) {

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45068] trunk/blender: == Sequencer ==

2012-03-21 Thread Peter Schlaile
Revision: 45068
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45068
Author:   schlaile
Date: 2012-03-21 18:02:29 + (Wed, 21 Mar 2012)
Log Message:
---
== Sequencer ==

This adds movieclip input support to the sequencer, thereby making
undistorted and stabilized footage available without a seperate render step.

Also: removes some old cruft code from the sequencer:

* new_tstripdata wasn't used anymore
* StripElems were allocated for SCENE strips on full length, wasting memory
  Added a comment, that hopefully makes things a little bit clearer:
  StripElems are *only* usefull for MOVIE + IMAGE strips for all other strip
  types one can set this pointer to NULL. (If that should cause otherwise
  problems, then the code that doesn't check for NULL is to blame!)

Modified Paths:
--
trunk/blender/release/scripts/presets/interface_theme/back_to_black.xml
trunk/blender/release/scripts/presets/interface_theme/blender_24x.xml
trunk/blender/release/scripts/presets/interface_theme/elsyiun.xml
trunk/blender/release/scripts/presets/interface_theme/hexagon.xml
trunk/blender/release/scripts/presets/interface_theme/ubuntu_ambiance.xml
trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
trunk/blender/source/blender/blenkernel/BKE_movieclip.h
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/movieclip.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/blenloader/intern/readfile.c
trunk/blender/source/blender/editors/include/UI_resources.h
trunk/blender/source/blender/editors/interface/resources.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
trunk/blender/source/blender/makesdna/DNA_sequence_types.h
trunk/blender/source/blender/makesdna/DNA_userdef_types.h
trunk/blender/source/blender/makesrna/RNA_access.h
trunk/blender/source/blender/makesrna/RNA_enum_types.h
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
trunk/blender/source/blender/makesrna/intern/rna_userdef.c
trunk/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: 
trunk/blender/release/scripts/presets/interface_theme/back_to_black.xml
===
--- trunk/blender/release/scripts/presets/interface_theme/back_to_black.xml 
2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/release/scripts/presets/interface_theme/back_to_black.xml 
2012-03-21 18:02:29 UTC (rev 45068)
@@ -412,6 +412,7 @@
keyframe="#ff8500"
meta_strip="#6d9183"
movie_strip="#516987"
+   movieclip_strip="#20208f"
plugin_strip="#7e7e50"
scene_strip="#4e983e"
transition_strip="#a25f6f"

Modified: trunk/blender/release/scripts/presets/interface_theme/blender_24x.xml
===
--- trunk/blender/release/scripts/presets/interface_theme/blender_24x.xml   
2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/release/scripts/presets/interface_theme/blender_24x.xml   
2012-03-21 18:02:29 UTC (rev 45068)
@@ -412,6 +412,7 @@
keyframe="#ff8500"
meta_strip="#6d9183"
movie_strip="#516987"
+   movieclip_strip="#20208f"
plugin_strip="#7e7e50"
scene_strip="#4e983e"
transition_strip="#a25f6f"

Modified: trunk/blender/release/scripts/presets/interface_theme/elsyiun.xml
===
--- trunk/blender/release/scripts/presets/interface_theme/elsyiun.xml   
2012-03-21 17:34:31 UTC (rev 45067)
+++ trunk/blender/release/scripts/presets/interface_theme/elsyiun.xml   
2012-03-21 18:02:29 UTC (rev 45068)
@@ -412,6 +412,7 @@
keyframe="#ff8500"
meta_strip="#6d9183"
movie_strip="#516987"
+   movieclip_strip="#20208f"
plugin_strip="#7e7e50"
scene_strip="#4e983e"
transition_strip="#a25f6f"

Modified: trunk/blender/release/scripts/presets/interface_theme/hexagon.xml
===
--- trunk/blender/release/scripts/presets/interface_theme/h

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44973] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: == Sequencer ==

2012-03-18 Thread Peter Schlaile
Revision: 44973
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44973
Author:   schlaile
Date: 2012-03-18 19:32:26 + (Sun, 18 Mar 2012)
Log Message:
---
== Sequencer ==

Small fix for the last fix. Mixed up x and y scale... oh dear.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2012-03-18 
18:56:53 UTC (rev 44972)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2012-03-18 
19:32:26 UTC (rev 44973)
@@ -1729,7 +1729,7 @@
((double) context.recty / 
 (double) context.scene->r.ysch) : 1.0;
 
-   c.left *= xscale; c.right *= yscale;
+   c.left *= xscale; c.right *= xscale;
c.top *= yscale; c.bottom *= yscale;
 
t.xofs *= xscale; t.yofs *= yscale;

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44966] trunk/blender/source/blender/ makesrna/intern/rna_sequencer.c: == Sequencer ==

2012-03-18 Thread Peter Schlaile
Revision: 44966
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44966
Author:   schlaile
Date: 2012-03-18 11:43:22 + (Sun, 18 Mar 2012)
Log Message:
---
== Sequencer ==

Fixes typos in RECORD_RUN_NO_GAPS timecode description.

Modified Paths:
--
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2012-03-18 11:13:28 UTC (rev 44965)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2012-03-18 11:43:22 UTC (rev 44966)
@@ -825,8 +825,8 @@
{SEQ_PROXY_TC_INTERP_REC_DATE_FREE_RUN, "FREE_RUN_REC_DATE", 0, 
"Free Run (rec date)",
"Interpolate a global 
timestamp using the "
"record date and time 
written by recording device"},
-   {SEQ_PROXY_TC_RECORD_RUN_NO_GAPS, "FREE_RUN_NO_GAPS", 0, "Free 
Run No Gaps",
-   "Record run, but ignore 
timecode, "
+   {SEQ_PROXY_TC_RECORD_RUN_NO_GAPS, "RECORD_RUN_NO_GAPS", 0, 
"Record Run No Gaps",
+   "Like record run, but 
ignore timecode, "
"changes in framerate 
or dropouts"},
{0, NULL, 0, NULL, NULL}};


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44965] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: == Sequencer ==

2012-03-18 Thread Peter Schlaile
Revision: 44965
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44965
Author:   schlaile
Date: 2012-03-18 11:13:28 + (Sun, 18 Mar 2012)
Log Message:
---
== Sequencer ==

Fix for:
[#29758] Sequencer `Image Offset` error with render percentage

also:
* make preprocess parameters completely independent from render resolution
  (they are always relative to *final* resolution now)
* fix yesterdays fix for proxy resolution rendering (the case of unbuild
  proxies wasn't handled correctly)

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2012-03-18 
09:35:09 UTC (rev 44964)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2012-03-18 
11:13:28 UTC (rev 44965)
@@ -1687,7 +1687,8 @@
 }
 
 static ImBuf * input_preprocess(
-   SeqRenderData context, Sequence *seq, float UNUSED(cfra), ImBuf * ibuf)
+   SeqRenderData context, Sequence *seq, float UNUSED(cfra), ImBuf * ibuf,
+   int is_proxy_image, int is_preprocessed)
 {
float mul;
 
@@ -1701,12 +1702,17 @@
StripCrop c= {0};
StripTransform t= {0};
int sx,sy,dx,dy;
+   double xscale = 1.0;
+   double yscale = 1.0;
 
-   double f = seq_rendersize_to_scale_factor(
-   context.preview_render_size);
+   if (is_proxy_image) {
+   double f = seq_rendersize_to_scale_factor(
+   context.preview_render_size);
 
-   if (f != 1.0) {
-   IMB_scalefastImBuf(ibuf, ibuf->x / f, ibuf->y / f);
+   if (f != 1.0) {
+   IMB_scalefastImBuf(
+   ibuf, ibuf->x / f, ibuf->y / f);
+   }
}
 
if(seq->flag & SEQ_USE_CROP && seq->strip->crop) {
@@ -1716,23 +1722,43 @@
t = *seq->strip->transform;
}
 
+   xscale = context.scene->r.xsch ? 
+   ((double) context.rectx / 
+(double) context.scene->r.xsch) : 1.0;
+   yscale = context.scene->r.ysch ? 
+   ((double) context.recty / 
+(double) context.scene->r.ysch) : 1.0;
+
+   c.left *= xscale; c.right *= yscale;
+   c.top *= yscale; c.bottom *= yscale;
+
+   t.xofs *= xscale; t.yofs *= yscale;
+
sx = ibuf->x - c.left - c.right;
sy = ibuf->y - c.top - c.bottom;
dx = sx;
dy = sy;
 
if (seq->flag & SEQ_USE_TRANSFORM) {
-   dx = context.scene->r.xsch;
-   dy = context.scene->r.ysch;
+   if (is_preprocessed) {
+   dx = context.rectx;
+   dy = context.recty;
+   } else {
+   dx = context.scene->r.xsch;
+   dy = context.scene->r.ysch;
+   }
}
 
-   if (c.top + c.bottom >= ibuf->y || c.left + c.right >= ibuf->x 
||
-   t.xofs >= dx || t.yofs >= dy) {
+   if (c.top+c.bottom >= ibuf->y || c.left+c.right >= ibuf->x ||
+   t.xofs >= dx || t.yofs >= dy) {
make_black_ibuf(ibuf);
} else {
-   ImBuf * i = IMB_allocImBuf(dx, dy,32, ibuf->rect_float 
? IB_rectfloat : IB_rect);
+   ImBuf * i = IMB_allocImBuf(
+   dx, dy, 32, 
+   ibuf->rect_float ? IB_rectfloat : IB_rect);
 
-   IMB_rectcpy(i, ibuf, t.xofs, t.yofs, c.left, c.bottom, 
sx, sy);
+   IMB_rectcpy(i, ibuf, 
+   t.xofs, t.yofs, c.left, c.bottom, sx, sy);

IMB_freeImBuf(ibuf);
 
@@ -2111,9 +2137,11 @@
ImBuf * ibuf = NULL;
char name[FILE_MAX];
int use_preprocess = input_have_to_preprocess(context, seq, cfra);
+   int is_proxy_image = FALSE;
float nr = give_stripelem_index(seq, cfra);
/* all effects are handled similarly with the exception of speed effect 
*/
int type = (seq->type & SEQ_EFFECT && seq->type != SEQ_SPEED) ? 
SEQ_EFFECT : seq->type;
+   int is_preprocessed = !ELEM3(type, SEQ_IMAGE, SEQ_MOVIE, SEQ_SCENE);
 
ibuf = seq_stripelem_cache_get(context, seq, cfra, SEQ_STRIPELEM_IBUF);
 
@@ -2125,8 +2153,10 @@
if (ibuf == NULL)
ibuf = copy_from_ibuf_still(context, 

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44946] trunk/blender/source/blender: == Sequencer ==

2012-03-17 Thread Peter Schlaile
Revision: 44946
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44946
Author:   schlaile
Date: 2012-03-17 19:31:28 + (Sat, 17 Mar 2012)
Log Message:
---
== Sequencer ==

Bugfix: [#28159] sequencer strip crop values on proxy not scene render size

Also: IMB saturation change moved into imbuf-module.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/imbuf/IMB_imbuf.h
trunk/blender/source/blender/imbuf/intern/divers.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2012-03-17 
19:14:08 UTC (rev 44945)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2012-03-17 
19:31:28 UTC (rev 44946)
@@ -1171,6 +1171,20 @@
return IMB_PROXY_25;
 }
 
+static double seq_rendersize_to_scale_factor(int size)
+{
+   if (size >= 99) {
+   return 1.0;
+   }
+   if (size >= 75) {
+   return 0.75;
+   }
+   if (size >= 50) {
+   return 0.50;
+   }
+   return 0.25;
+}
+
 static void seq_open_anim_file(Sequence * seq)
 {
char name[FILE_MAX];
@@ -1688,6 +1702,13 @@
StripTransform t= {0};
int sx,sy,dx,dy;
 
+   double f = seq_rendersize_to_scale_factor(
+   context.preview_render_size);
+
+   if (f != 1.0) {
+   IMB_scalefastImBuf(ibuf, ibuf->x / f, ibuf->y / f);
+   }
+
if(seq->flag & SEQ_USE_CROP && seq->strip->crop) {
c = *seq->strip->crop;
}
@@ -1728,29 +1749,7 @@
}
 
if(seq->sat != 1.0f) {
-   /* inline for now, could become an imbuf function */
-   int i;
-   unsigned char *rct= (unsigned char *)ibuf->rect;
-   float *rctf= ibuf->rect_float;
-   const float sat= seq->sat;
-   float hsv[3];
-
-   if(rct) {
-   float rgb[3];
-   for (i = ibuf->x * ibuf->y; i > 0; i--, rct+=4) {
-   rgb_uchar_to_float(rgb, rct);
-   rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, 
hsv+2);
-   hsv_to_rgb(hsv[0], hsv[1] * sat, hsv[2], rgb, 
rgb+1, rgb+2);
-   rgb_float_to_uchar(rct, rgb);
-   }
-   }
-
-   if(rctf) {
-   for (i = ibuf->x * ibuf->y; i > 0; i--, rctf+=4) {
-   rgb_to_hsv(rctf[0], rctf[1], rctf[2], hsv, 
hsv+1, hsv+2);
-   hsv_to_rgb(hsv[0], hsv[1] * sat, hsv[2], rctf, 
rctf+1, rctf+2);
-   }
-   }
+   IMB_saturation(ibuf, seq->sat);
}
 
mul = seq->mul;

Modified: trunk/blender/source/blender/imbuf/IMB_imbuf.h
===
--- trunk/blender/source/blender/imbuf/IMB_imbuf.h  2012-03-17 19:14:08 UTC 
(rev 44945)
+++ trunk/blender/source/blender/imbuf/IMB_imbuf.h  2012-03-17 19:31:28 UTC 
(rev 44946)
@@ -375,6 +375,7 @@
 void IMB_convert_profile(struct ImBuf *ibuf, int profile);
 float *IMB_float_profile_ensure(struct ImBuf *ibuf, int profile, int *alloc);
 void IMB_color_to_bw(struct ImBuf *ibuf);
+void IMB_saturation(struct ImBuf *ibuf, float sat);
 
 /* converting pixel buffers */
 void IMB_buffer_byte_from_float(unsigned char *rect_to, const float *rect_from,

Modified: trunk/blender/source/blender/imbuf/intern/divers.c
===
--- trunk/blender/source/blender/imbuf/intern/divers.c  2012-03-17 19:14:08 UTC 
(rev 44945)
+++ trunk/blender/source/blender/imbuf/intern/divers.c  2012-03-17 19:31:28 UTC 
(rev 44946)
@@ -750,3 +750,30 @@
buf[i] = MIN2(1.0, buf[i]);
}
 }
+
+/ alter saturation */
+
+void IMB_saturation(ImBuf * ibuf, float sat)
+{
+   int i;
+   unsigned char *rct= (unsigned char *)ibuf->rect;
+   float *rctf= ibuf->rect_float;
+   float hsv[3];
+
+   if(rct) {
+   float rgb[3];
+   for (i = ibuf->x * ibuf->y; i > 0; i--, rct+=4) {
+   rgb_uchar_to_float(rgb, rct);
+   rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+   hsv_to_rgb(hsv[0], hsv[1] * sat, hsv[2], rgb, rgb+1, 
rgb+2);
+   rgb_float_to_uchar(rct, rgb);
+   }
+   }
+
+   if(rctf) {
+   for (i = ibuf->x * ibuf->y; i > 0; i--, rctf+=4) {
+   rgb_to_hsv(rctf[0], rctf[1], rctf[2], hsv, hsv+1, 
hsv+2);
+   hsv_to_r

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42012] trunk/blender/source/blender/imbuf /intern: == Sequencer / FFMPEG ==

2011-11-20 Thread Peter Schlaile
Revision: 42012
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42012
Author:   schlaile
Date: 2011-11-20 16:08:56 + (Sun, 20 Nov 2011)
Log Message:
---
== Sequencer / FFMPEG ==

This fixed two issues:

* RAW DV-seeking has to be done using DTS. Sounds silly, but ffmpeg
  tracks internal state in RAW DV format decoder and runs mad, if
  we seek by byte. Don't know, why I haven't noticed that, when I
  added it.
  
* real fix(tm) for #29295
  problem was: we did AVFrame read ahead, and the pattern
  read_frame -> decode -> read_frame -> do color conversion of first frame
  works everywhere but RAW RGB-files which do some pointer shuffling
  within ffmpeg to save a memcpy...
  
  I removed read ahead completely, since it didn't work like originally
  intented. Might come back later, but the original purpose (making
  resyncing easier if we are completely lost in stream) it never
  fullfilled.

Modified Paths:
--
trunk/blender/source/blender/imbuf/intern/IMB_anim.h
trunk/blender/source/blender/imbuf/intern/anim_movie.c

Modified: trunk/blender/source/blender/imbuf/intern/IMB_anim.h
===
--- trunk/blender/source/blender/imbuf/intern/IMB_anim.h2011-11-20 
16:05:51 UTC (rev 42011)
+++ trunk/blender/source/blender/imbuf/intern/IMB_anim.h2011-11-20 
16:08:56 UTC (rev 42012)
@@ -173,6 +173,7 @@
AVCodecContext *pCodecCtx;
AVCodec *pCodec;
AVFrame *pFrame;
+   int pFrameComplete;
AVFrame *pFrameRGB;
AVFrame *pFrameDeinterlaced;
struct SwsContext *img_convert_ctx;
@@ -181,7 +182,6 @@
struct ImBuf * last_frame;
int64_t last_pts;
int64_t next_pts;
-   int64_t next_undecoded_pts;
AVPacket next_packet;
 #endif
 

Modified: trunk/blender/source/blender/imbuf/intern/anim_movie.c
===
--- trunk/blender/source/blender/imbuf/intern/anim_movie.c  2011-11-20 
16:05:51 UTC (rev 42011)
+++ trunk/blender/source/blender/imbuf/intern/anim_movie.c  2011-11-20 
16:08:56 UTC (rev 42012)
@@ -504,7 +504,6 @@
anim->last_frame = 0;
anim->last_pts = -1;
anim->next_pts = -1;
-   anim->next_undecoded_pts = -1;
anim->next_packet.stream_index = -1;
 
anim->pFormatCtx = pFormatCtx;
@@ -513,6 +512,7 @@
anim->videoStream = videoStream;
 
anim->pFrame = avcodec_alloc_frame();
+   anim->pFrameComplete = FALSE;
anim->pFrameDeinterlaced = avcodec_alloc_frame();
anim->pFrameRGB = avcodec_alloc_frame();
 
@@ -602,6 +602,10 @@
 
ibuf->profile = IB_PROFILE_SRGB;
 
+   if (!anim->pFrameComplete) {
+   return;
+   }
+
/* This means the data wasnt read properly, 
   this check stops crashing */
if (input->data[0]==0 && input->data[1]==0 
@@ -611,6 +615,12 @@
return;
}
 
+   av_log(anim->pFormatCtx, AV_LOG_DEBUG, 
+  "  POSTPROC: anim->pFrame planes: %p %p %p %p\n",
+  input->data[0], input->data[1], input->data[2],
+  input->data[3]);
+
+
if (anim->ib_flags & IB_animdeinterlace) {
if (avpicture_deinterlace(
(AVPicture*) 
@@ -715,42 +725,15 @@
}
 }
 
-/* decode one video frame and load the next packet into anim->packet,
-   so that we can obtain next_pts and next undecoded pts */
+/* decode one video frame also considering the packet read into next_packet */
 
 static int ffmpeg_decode_video_frame(struct anim * anim)
 {
-   int frameFinished = 0;
int rval = 0;
 
av_log(anim->pFormatCtx, AV_LOG_DEBUG, "  DECODE VIDEO FRAME\n");
 
-   anim->next_undecoded_pts = -1;
-
if (anim->next_packet.stream_index == anim->videoStream) {
-   av_log(anim->pFormatCtx, AV_LOG_DEBUG, 
-  "  DECODE: cached next packet\n");
-
-   avcodec_decode_video2(anim->pCodecCtx, 
- anim->pFrame, &frameFinished, 
- &anim->next_packet);
-
-   if (frameFinished) {
-   av_log(anim->pFormatCtx, 
-  AV_LOG_DEBUG, 
-  "  FRAME DONE: "
-   "next_pts=%lld pkt_pts=%lld\n",
-   (anim->pFrame->pts == AV_NOPTS_VALUE) ? 
-   -1 : (long long int)anim->pFrame->pts,
-   (anim->pFrame->pkt_pts == AV_NOPTS_VALUE) ?
-   -1 : (long long int)anim->pFrame->pkt_pts);
-   anim->next_pts = 
-   av_get_pts_from_frame(anim->pFormatCtx,
- anim->pFrame);
-
-   ffmpeg_postproc

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41116] trunk/blender/source/blender/ blenloader/intern/readfile.c: == Sequencer ==

2011-10-19 Thread Peter Schlaile
Revision: 41116
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41116
Author:   schlaile
Date: 2011-10-19 18:21:08 + (Wed, 19 Oct 2011)
Log Message:
---
== Sequencer ==

do_versions fix: hd audio tracks within metastrips were not properly
upgraded from 2.49 files, resulting in broken unusable tracks, which were 
rendered as black strips as a bonus.

Modified Paths:
--
trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===
--- trunk/blender/source/blender/blenloader/intern/readfile.c   2011-10-19 
17:08:35 UTC (rev 41115)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c   2011-10-19 
18:21:08 UTC (rev 41116)
@@ -10215,8 +10215,7 @@
{
if(scene->ed && scene->ed->seqbasep)
{
-   for(seq = scene->ed->seqbasep->first; seq; seq 
= seq->next)
-   {
+   SEQ_BEGIN(scene->ed, seq) {
if(seq->type == SEQ_HD_SOUND)
{
char str[FILE_MAX];
@@ -10236,6 +10235,7 @@
 seq->strip->dir);
}
}
+   SEQ_END
}
}
 

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [40136] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: == Sequencer ==

2011-09-11 Thread Peter Schlaile
Revision: 40136
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=40136
Author:   schlaile
Date: 2011-09-11 21:46:24 + (Sun, 11 Sep 2011)
Log Message:
---
== Sequencer ==

Fixed silly bug, that activated proxies at the wrong time.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2011-09-11 
21:41:30 UTC (rev 40135)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2011-09-11 
21:46:24 UTC (rev 40136)
@@ -1260,7 +1260,7 @@
size_flags = seq->strip->proxy->build_size_flags;
 
/* only use proxies, if they are enabled (even if present!) */
-   if (psize != IMB_PROXY_NONE && ((size_flags & psize) != psize)) {
+   if (psize == IMB_PROXY_NONE || ((size_flags & psize) != psize)) {
return NULL;
}
 

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39756] trunk/blender/source/blender/imbuf /intern/indexer.c: == Sequencer / proxies ==

2011-08-28 Thread Peter Schlaile
Revision: 39756
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39756
Author:   schlaile
Date: 2011-08-28 19:58:33 + (Sun, 28 Aug 2011)
Log Message:
---
== Sequencer / proxies ==

fixed crash pointed out by blendervse:
100%-proxy could lead to a segfault under certain conditions.

Modified Paths:
--
trunk/blender/source/blender/imbuf/intern/indexer.c

Modified: trunk/blender/source/blender/imbuf/intern/indexer.c
===
--- trunk/blender/source/blender/imbuf/intern/indexer.c 2011-08-28 18:54:02 UTC 
(rev 39755)
+++ trunk/blender/source/blender/imbuf/intern/indexer.c 2011-08-28 19:58:33 UTC 
(rev 39756)
@@ -573,11 +573,15 @@
  ctx->frame->data, ctx->frame->linesize);
}
 
-   ctx->frame->pts = ctx->cfra++;
+   frame = ctx->sws_ctx ? (frame ? ctx->frame : 0) : frame;
 
+   if (frame) {
+   frame->pts = ctx->cfra++;
+   }
+
outsize = avcodec_encode_video(
ctx->c, ctx->video_buffer, ctx->video_buffersize, 
-   ctx->sws_ctx ? (frame ? ctx->frame : 0) : frame);
+   frame);
 
if (outsize < 0) {
fprintf(stderr, "Error encoding proxy frame %d for '%s'\n", 

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39750] trunk/blender/source/blender/imbuf /intern: == Sequencer ==

2011-08-28 Thread Peter Schlaile
Revision: 39750
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39750
Author:   schlaile
Date: 2011-08-28 15:09:58 + (Sun, 28 Aug 2011)
Log Message:
---
== Sequencer ==

Forgotten files for proxy commit. Sorry.

Added Paths:
---
trunk/blender/source/blender/imbuf/intern/IMB_indexer.h
trunk/blender/source/blender/imbuf/intern/indexer.c
trunk/blender/source/blender/imbuf/intern/indexer_dv.c

Added: trunk/blender/source/blender/imbuf/intern/IMB_indexer.h
===
--- trunk/blender/source/blender/imbuf/intern/IMB_indexer.h 
(rev 0)
+++ trunk/blender/source/blender/imbuf/intern/IMB_indexer.h 2011-08-28 
15:09:58 UTC (rev 39750)
@@ -0,0 +1,135 @@
+/**
+ * IMB_indexer.h
+ *
+ * $Id: IMB_indexer.h 
+ *
+ * * BEGIN GPL LICENSE BLOCK *
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *
+ * Contributor(s): Peter Schlaile
+ *
+ * * END GPL LICENSE BLOCK *
+ */
+
+
+#ifndef IMB_INDEXER_H
+#define IMB_INDEXER_H
+
+#ifdef WIN32
+#include 
+#endif
+
+#include 
+#include 
+#include "BKE_utildefines.h"
+#include "IMB_anim.h"
+
+/*
+  seperate animation index files to solve the following problems:
+
+  a) different timecodes within one file (like DTS/PTS, Timecode-Track, 
+ "implicit" timecodes within DV-files and HDV-files etc.)
+  b) seeking difficulties within ffmpeg for files with timestamp holes
+  c) broken files that miss several frames / have varying framerates
+  d) use proxies accordingly
+
+  ... we need index files, that provide us with 
+  
+  the binary(!) position, where we have to seek into the file *and*
+  the continuous frame number (ignoring the holes) starting from the 
+  beginning of the file, so that we know, which proxy frame to serve.
+
+  This index has to be only built once for a file and is written into
+  the BL_proxy directory structure for later reuse in different blender files.
+
+*/
+
+typedef struct anim_index_entry {
+   int frameno;
+   unsigned long long seek_pos;
+   unsigned long long seek_pos_dts;
+   unsigned long long pts;
+} anim_index_entry;
+
+struct anim_index {
+   char name[256];
+
+   int num_entries;
+   struct anim_index_entry * entries;
+};
+
+struct anim_index_builder;
+
+typedef struct anim_index_builder {
+   FILE * fp;
+   char name[FILE_MAXDIR + FILE_MAXFILE];
+   char temp_name[FILE_MAXDIR + FILE_MAXFILE];
+
+   void * private_data;
+
+   void (*delete_priv_data)(struct anim_index_builder * idx);
+   void (*proc_frame)(struct anim_index_builder * idx, 
+  unsigned char * buffer,
+  int data_size, 
+  struct anim_index_entry * entry);
+} anim_index_builder;
+
+anim_index_builder * IMB_index_builder_create(const char * name);
+void IMB_index_builder_add_entry(anim_index_builder * fp, 
+int frameno, unsigned long long seek_pos,
+unsigned long long seek_pos_dts,
+unsigned long long pts);
+
+void IMB_index_builder_proc_frame(anim_index_builder * fp, 
+ unsigned char * buffer,
+ int data_size,
+ int frameno, unsigned long long seek_pos,
+ unsigned long long seek_pos_dts,
+ unsigned long long pts);
+
+void IMB_index_builder_finish(anim_index_builder * fp, int rollback);
+
+struct anim_index * IMB_indexer_open(const char * name);
+unsigned long long IMB_indexer_get_seek_pos(
+   struct anim_index * idx, int frameno_index);
+unsigned long long IMB_indexer_get_seek_pos_dts(
+   struct anim_index * idx, int frameno_index);
+
+int IMB_indexer_get_frame_index(struct anim_index * idx, int frameno);
+unsigned long long IMB_indexer_get_pts(struct anim_index * idx, 
+  int frame_index);
+int IMB_indexer_get_duration(struct anim_index * idx);
+
+int IMB_indexer_can_scan(struct anim_index * idx, 
+int old_frame_index, int new_frame_index);
+
+vo

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39749] trunk/blender: == Sequencer ==

2011-08-28 Thread Peter Schlaile
Revision: 39749
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39749
Author:   schlaile
Date: 2011-08-28 14:46:03 + (Sun, 28 Aug 2011)
Log Message:
---
== Sequencer ==

This patch adds:

* support for proxy building again (missing feature from Blender 2.49)
  additionally to the way, Blender 2.49 worked, you can select several
  strips at once and make Blender build proxies in the background (using
  the job system)
  Also a new thing: movie proxies are now build into AVI files, and
  the proxy system is moved into ImBuf-library, so that other parts
  of blender can also benefit from it.
  
* Timecode support: to fix seeking issues with files, that have
  a) varying frame rates
  b) very large GOP lengths
  c) are broken inbetween
  d) use different time code tracks
  
  the proxy builder can now also build timecode indices, which are
  used (optionally) for seeking.
  
  For the first time, it is possible, to do frame exact seeking on
  all file types.
  
* Support for different video-streams in one video file (can be
  selected in sequencer, other parts of blender can also use it,
  but UI has to be added accordingly)

* IMPORTANT: this patch *requires* ffmpeg 0.7 or newer, since
  older versions don't support the pkt_pts field, that is essential
  for building timecode indices.
  
  Windows and Mac libs are already updated, Linux-users have to build
  their own ffmpeg verions until distros keep up.

Modified Paths:
--
trunk/blender/intern/ffmpeg/ffmpeg_compat.h
trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
trunk/blender/source/blender/blenkernel/BKE_image.h
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/image.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/blenloader/intern/readfile.c
trunk/blender/source/blender/editors/interface/interface_templates.c
trunk/blender/source/blender/editors/space_image/image_buttons.c
trunk/blender/source/blender/editors/space_sequencer/SConscript
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_intern.h
trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
trunk/blender/source/blender/imbuf/CMakeLists.txt
trunk/blender/source/blender/imbuf/IMB_imbuf.h
trunk/blender/source/blender/imbuf/intern/IMB_anim.h
trunk/blender/source/blender/imbuf/intern/allocimbuf.c
trunk/blender/source/blender/imbuf/intern/anim_movie.c
trunk/blender/source/blender/imbuf/intern/filter.c
trunk/blender/source/blender/imbuf/intern/thumbs.c
trunk/blender/source/blender/imbuf/intern/util.c
trunk/blender/source/blender/makesdna/DNA_sequence_types.h
trunk/blender/source/blender/makesdna/DNA_space_types.h
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
trunk/blender/source/blender/makesrna/intern/rna_space.c
trunk/blender/source/blender/windowmanager/WM_api.h
trunk/blender/source/blender/windowmanager/intern/wm_jobs.c

Modified: trunk/blender/intern/ffmpeg/ffmpeg_compat.h
===
--- trunk/blender/intern/ffmpeg/ffmpeg_compat.h 2011-08-28 14:21:44 UTC (rev 
39748)
+++ trunk/blender/intern/ffmpeg/ffmpeg_compat.h 2011-08-28 14:46:03 UTC (rev 
39749)
@@ -71,6 +71,7 @@
 #define avio_open url_fopen
 #define avio_tell url_ftell
 #define avio_close url_fclose
+#define avio_size url_fsize
 #endif
 
 /* there are some version inbetween, which have avio_... functions but no
@@ -130,4 +131,19 @@
 }
 #endif
 
+static inline
+int64_t av_get_pts_from_frame(AVFormatContext *avctx, AVFrame * picture)
+{
+   int64_t pts = picture->pkt_pts;
+
+   if (pts == AV_NOPTS_VALUE) {
+   pts = picture->pkt_dts;
+   }
+   if (pts == AV_NOPTS_VALUE) {
+   pts = 0;
+   }
+   
+   return pts;
+}
+
 #endif

Modified: trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
===
--- trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py  
2011-08-28 14:21:44 UTC (rev 39748)
+++ trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py  
2011-08-28 14:46:03 UTC (rev 39749)
@@ -60,6 +60,7 @@
 
 layout.separator()
 layout.operator("sequencer.refresh_all")
+layout.template_running_jobs()
 elif st.view_type == 'SEQUENCER_PREVIEW':
 layout.separator()
 layout.operator("sequencer.refresh_all")
@@ -241,6 +242,7 @@
 layout.operator("sequencer.images_separate")
 layout.operator("sequencer.offset_clear")
 layout.operator("sequencer.deinterlace_selected_movies")
+layout.operator("sequencer.rebuild_proxy")
 layout.separator()
 
 layout.operat

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36982] trunk/blender/intern/ffmpeg/ ffmpeg_compat.h: == FFMPEG ==

2011-05-28 Thread Peter Schlaile
Revision: 36982
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36982
Author:   schlaile
Date: 2011-05-28 14:16:56 + (Sat, 28 May 2011)
Log Message:
---
== FFMPEG ==

Did some fine-tuning for AVOption -> AVOption2 crazyness

Modified Paths:
--
trunk/blender/intern/ffmpeg/ffmpeg_compat.h

Modified: trunk/blender/intern/ffmpeg/ffmpeg_compat.h
===
--- trunk/blender/intern/ffmpeg/ffmpeg_compat.h 2011-05-28 14:15:48 UTC (rev 
36981)
+++ trunk/blender/intern/ffmpeg/ffmpeg_compat.h 2011-05-28 14:16:56 UTC (rev 
36982)
@@ -40,7 +40,7 @@
 #define FFMPEG_HAVE_AVIO 1
 #endif
 
-#if (LIBAVFORMAT_VERSION_MAJOR > 53) || ((LIBAVFORMAT_VERSION_MAJOR >= 53) && 
(LIBAVFORMAT_VERSION_MINOR >= 1))
+#if (LIBAVCODEC_VERSION_MAJOR > 53) || ((LIBAVCODEC_VERSION_MAJOR == 53) && 
(LIBAVCODEC_VERSION_MINOR > 1)) || ((LIBAVCODEC_VERSION_MAJOR == 53) && 
(LIBAVCODEC_VERSION_MINOR == 1) && (LIBAVCODEC_VERSION_MICRO >= 1))
 #define FFMPEG_HAVE_DEFAULT_VAL_UNION 1
 #endif
 

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36963] trunk/blender/intern/ffmpeg/ ffmpeg_compat.h: == FFMPEG ==

2011-05-27 Thread Peter Schlaile
Revision: 36963
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36963
Author:   schlaile
Date: 2011-05-28 00:07:33 + (Sat, 28 May 2011)
Log Message:
---
== FFMPEG ==

Small fix for a very old bug in swscaler color space support detection.

Modified Paths:
--
trunk/blender/intern/ffmpeg/ffmpeg_compat.h

Modified: trunk/blender/intern/ffmpeg/ffmpeg_compat.h
===
--- trunk/blender/intern/ffmpeg/ffmpeg_compat.h 2011-05-27 23:51:40 UTC (rev 
36962)
+++ trunk/blender/intern/ffmpeg/ffmpeg_compat.h 2011-05-28 00:07:33 UTC (rev 
36963)
@@ -61,8 +61,8 @@
 #define FFMPEG_HAVE_AVMEDIA_TYPES 1
 #endif
 
-#if (LIBAVCODEC_VERSION_MAJOR >= 52) && (LIBAVCODEC_VERSION_MINOR >= 29) && \
-(LIBSWSCALE_VERSION_MAJOR >= 0) && (LIBSWSCALE_VERSION_MINOR >= 10)
+#if ((LIBAVCODEC_VERSION_MAJOR > 52) || (LIBAVCODEC_VERSION_MAJOR >= 52) && 
(LIBAVCODEC_VERSION_MINOR >= 29)) && \
+   ((LIBSWSCALE_VERSION_MAJOR > 0) || (LIBSWSCALE_VERSION_MAJOR >= 0) && 
(LIBSWSCALE_VERSION_MINOR >= 10))
 #define FFMPEG_SWSCALE_COLOR_SPACE_SUPPORT
 #endif
 

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36961] trunk/blender/source/gameengine/ VideoTexture/VideoFFmpeg.cpp: == FFMPEG ==

2011-05-27 Thread Peter Schlaile
Revision: 36961
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36961
Author:   schlaile
Date: 2011-05-27 23:46:47 + (Fri, 27 May 2011)
Log Message:
---
== FFMPEG ==
Revert of "SVN commit: /data/svn/bf-blender [36957]
trunk/blender/source/gameengine/ VideoTexture/VideoFFmpeg.cpp: fix for
ffmpeg linking in BGE ( patch by Jens Verwiebe (jensverwiebe) over IRC)"

Sorry folks, that patch breaks current ffmpeg GIT version.

Good news: it's all handled now automagically by ffmpeg_compat.h in 
intern/ffmpeg

so: everything should be fine and dandy for very old and very new versions.



Modified Paths:
--
trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp

Modified: trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp
===
--- trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp
2011-05-27 23:33:40 UTC (rev 36960)
+++ trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp
2011-05-27 23:46:47 UTC (rev 36961)
@@ -641,7 +641,7 @@
if (m_captRate <= 0.f)
m_captRate = defFrameRate;
sprintf(rateStr, "%f", m_captRate);
-   av_parse_video_frame_rate(&frameRate, rateStr);
+   av_parse_video_rate(&frameRate, rateStr);
// populate format parameters
// need to specify the time base = inverse of rate
formatParams.time_base.num = frameRate.den;

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36960] trunk/blender: == FFMPEG ==

2011-05-27 Thread Peter Schlaile
Revision: 36960
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36960
Author:   schlaile
Date: 2011-05-27 23:33:40 + (Fri, 27 May 2011)
Log Message:
---
== FFMPEG ==

Added central compatibility header file, which enables blender to compile
against very old ffmpeg versions as well as very new versions using the
*NEW* API. (Old API functions are simulated using macros and inline functions)

Added a whole lot of additional checks, tested against 6 different versions
down the timeline, hopefully, now finally all is well.

Modified Paths:
--
trunk/blender/intern/audaspace/CMakeLists.txt
trunk/blender/intern/audaspace/SConscript
trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
trunk/blender/source/blender/blenkernel/CMakeLists.txt
trunk/blender/source/blender/blenkernel/SConscript
trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
trunk/blender/source/blender/imbuf/CMakeLists.txt
trunk/blender/source/blender/imbuf/SConscript
trunk/blender/source/blender/imbuf/intern/anim_movie.c
trunk/blender/source/blender/imbuf/intern/util.c
trunk/blender/source/gameengine/VideoTexture/CMakeLists.txt
trunk/blender/source/gameengine/VideoTexture/SConscript
trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h

Added Paths:
---
trunk/blender/intern/ffmpeg/
trunk/blender/intern/ffmpeg/ffmpeg_compat.h

Modified: trunk/blender/intern/audaspace/CMakeLists.txt
===
--- trunk/blender/intern/audaspace/CMakeLists.txt   2011-05-27 22:21:14 UTC 
(rev 36959)
+++ trunk/blender/intern/audaspace/CMakeLists.txt   2011-05-27 23:33:40 UTC 
(rev 36960)
@@ -26,6 +26,7 @@
FX SRC
${PTHREADS_INC}
${LIBSAMPLERATE_INC}
+   ../ffmpeg
 )
 
 set(SRC

Modified: trunk/blender/intern/audaspace/SConscript
===
--- trunk/blender/intern/audaspace/SConscript   2011-05-27 22:21:14 UTC (rev 
36959)
+++ trunk/blender/intern/audaspace/SConscript   2011-05-27 23:33:40 UTC (rev 
36960)
@@ -8,7 +8,7 @@
 
 if env['WITH_BF_FFMPEG']:
 sources += env.Glob('ffmpeg/*.cpp')
-incs += ' ffmpeg ' + env['BF_FFMPEG_INC']
+incs += ' ffmpeg  #/intern/ffmpeg ' + env['BF_FFMPEG_INC']
 defs.append('WITH_FFMPEG')
 
 if env['WITH_BF_SDL']:

Modified: trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
===
--- trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp  2011-05-27 
22:21:14 UTC (rev 36959)
+++ trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp  2011-05-27 
23:33:40 UTC (rev 36960)
@@ -39,6 +39,7 @@
 extern "C" {
 #include 
 #include 
+#include "ffmpeg_compat.h"
 }
 
 int AUD_FFMPEGReader::decode(AVPacket* packet, AUD_Buffer& buffer)

Added: trunk/blender/intern/ffmpeg/ffmpeg_compat.h
===
--- trunk/blender/intern/ffmpeg/ffmpeg_compat.h (rev 0)
+++ trunk/blender/intern/ffmpeg/ffmpeg_compat.h 2011-05-27 23:33:40 UTC (rev 
36960)
@@ -0,0 +1,133 @@
+#ifndef __ffmpeg_compat_h_included__
+#define __ffmpeg_compat_h_included__ 1
+
+/*
+ * $Id$
+ *
+ * compatibility macros to make every ffmpeg installation appear
+ * like the most current installation (wrapping some functionality sometimes)
+ * it also includes all ffmpeg header files at once, no need to do it 
+ * seperately.
+ *
+ * Copyright (c) 2011 Peter Schlaile
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+
+#include 
+#include 
+#include 
+
+#if (LIBAVFORMAT_VERSION_MAJOR > 52) || ((LIBAVFORMAT_VERSION_MAJOR >= 52) && 
(LIBAVFORMAT_VERSION_MINOR >= 101))
+#define FFMPEG_HAVE_PARSE_UTILS 1
+#include 
+#endif
+
+#include 
+#include 
+
+#if (LIBAVFORMAT_VERSION_MAJOR > 52) || ((LIBAVFORMAT_VERSION_MAJOR >= 52) && 
(LIBAVFORMAT_VERSION_MINOR >= 105))
+#define FFMPEG_HAVE_AVIO 1
+#endif
+
+#if (LIBAVFORMAT_VERSION_MAJOR > 53) || ((LIBAVFORMAT_VERSION_MAJOR >= 53) && 
(LIBAVFORMAT_VERSION_MINOR >= 1))
+#define FFMPEG_HAVE_DEFAULT_VAL_UNION 1
+#endif
+
+#if (LIBAVFORMAT_VERSION_MAJOR > 52) || ((LIBAVFORMAT_VERSION_MAJOR >= 52) && 
(LIBAVFORMAT_VERSION_MINOR >= 101))
+#define FFMPEG_HAV

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36944] trunk/blender/source: == FFMPEG ==

2011-05-27 Thread Peter Schlaile
Revision: 36944
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36944
Author:   schlaile
Date: 2011-05-27 07:47:42 + (Fri, 27 May 2011)
Log Message:
---
== FFMPEG ==

Fixed and added additional ffmpeg cruft checking. Oh dear.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
trunk/blender/source/blender/imbuf/intern/anim_movie.c
trunk/blender/source/blender/imbuf/intern/util.c
trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h

Modified: trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
===
--- trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
2011-05-27 07:24:38 UTC (rev 36943)
+++ trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
2011-05-27 07:47:42 UTC (rev 36944)
@@ -61,14 +61,18 @@
 #include "IMB_imbuf_types.h"
 #include "IMB_imbuf.h"
 
-#if (LIBAVFORMAT_VERSION_MAJOR >= 52) && (LIBAVFORMAT_VERSION_MINOR >= 105)
+#if (LIBAVFORMAT_VERSION_MAJOR > 52) || ((LIBAVFORMAT_VERSION_MAJOR >= 52) && 
(LIBAVFORMAT_VERSION_MINOR >= 105))
 #define FFMPEG_HAVE_AVIO 1
 #endif
 
-#if (LIBAVFORMAT_VERSION_MAJOR >= 53) && (LIBAVFORMAT_VERSION_MINOR >= 3)
+#if (LIBAVFORMAT_VERSION_MAJOR > 53) || ((LIBAVFORMAT_VERSION_MAJOR >= 53) && 
(LIBAVFORMAT_VERSION_MINOR >= 1))
 #define FFMPEG_HAVE_DEFAULT_VAL_UNION 1
 #endif
 
+#if (LIBAVFORMAT_VERSION_MAJOR > 52) || ((LIBAVFORMAT_VERSION_MAJOR >= 52) && 
(LIBAVFORMAT_VERSION_MINOR >= 101))
+#define FFMPEG_HAVE_AV_DUMP_FORMAT 1
+#endif
+
 #ifndef FFMPEG_HAVE_AVIO
 #define AVIO_FLAG_WRITE URL_WRONLY
 #define avio_open url_fopen
@@ -82,6 +86,10 @@
 #define AVIO_FLAG_WRITE URL_WRONLY
 #endif
 
+#ifndef FFMPEG_HAVE_AV_DUMP_FORMAT
+#define av_dump_format dump_format
+#endif
+
 extern void do_init_ffmpeg(void);
 
 static int ffmpeg_type = 0;

Modified: trunk/blender/source/blender/imbuf/intern/anim_movie.c
===
--- trunk/blender/source/blender/imbuf/intern/anim_movie.c  2011-05-27 
07:24:38 UTC (rev 36943)
+++ trunk/blender/source/blender/imbuf/intern/anim_movie.c  2011-05-27 
07:47:42 UTC (rev 36944)
@@ -108,6 +108,14 @@
 #define FFMPEG_SWSCALE_COLOR_SPACE_SUPPORT
 #endif
 
+#if (LIBAVFORMAT_VERSION_MAJOR > 52) || ((LIBAVFORMAT_VERSION_MAJOR >= 52) && 
(LIBAVFORMAT_VERSION_MINOR >= 101))
+#define FFMPEG_HAVE_AV_DUMP_FORMAT 1
+#endif
+
+#ifndef FFMPEG_HAVE_AV_DUMP_FORMAT
+#define av_dump_format dump_format
+#endif
+
 #endif //WITH_FFMPEG
 
 #ifdef WITH_REDCODE

Modified: trunk/blender/source/blender/imbuf/intern/util.c
===
--- trunk/blender/source/blender/imbuf/intern/util.c2011-05-27 07:24:38 UTC 
(rev 36943)
+++ trunk/blender/source/blender/imbuf/intern/util.c2011-05-27 07:47:42 UTC 
(rev 36944)
@@ -62,8 +62,17 @@
 #include 
 #include 
 #include 
+
+#if (LIBAVFORMAT_VERSION_MAJOR > 52) || ((LIBAVFORMAT_VERSION_MAJOR >= 52) && 
(LIBAVFORMAT_VERSION_MINOR >= 101))
+#define FFMPEG_HAVE_AV_DUMP_FORMAT 1
 #endif
 
+#ifndef FFMPEG_HAVE_AV_DUMP_FORMAT
+#define av_dump_format dump_format
+#endif
+
+#endif
+
 #define UTIL_DEBUG 0
 
 const char *imb_ext_image[] = {

Modified: trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h
===
--- trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h  2011-05-27 
07:24:38 UTC (rev 36943)
+++ trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h  2011-05-27 
07:47:42 UTC (rev 36944)
@@ -34,7 +34,9 @@
 #include 
 #include 
 #include 
+#if (LIBAVFORMAT_VERSION_MAJOR > 52) || ((LIBAVFORMAT_VERSION_MAJOR >= 52) && 
(LIBAVFORMAT_VERSION_MINOR >= 101))
 #include 
+#endif
 #include 
 #include "DNA_listBase.h"
 #include "BLI_threads.h"

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36940] trunk/blender/source/blender/ blenkernel/intern/writeffmpeg.c: == FFMPEG ==

2011-05-26 Thread Peter Schlaile
Revision: 36940
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36940
Author:   schlaile
Date: 2011-05-26 23:51:02 + (Thu, 26 May 2011)
Log Message:
---
== FFMPEG ==

... and another funny version patch, since OpenSuse obviously used some version 
"in-between"

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c

Modified: trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
===
--- trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
2011-05-26 23:29:40 UTC (rev 36939)
+++ trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
2011-05-26 23:51:02 UTC (rev 36940)
@@ -76,6 +76,12 @@
 #define avio_close url_fclose
 #endif
 
+/* make OpenSuSe special "in-between" ffmpeg 0.6.2 version(tm) happy... 
+   Agh */
+#ifndef AVIO_FLAG_WRITE
+#define AVIO_FLAG_WRITE URL_WRONLY
+#endif
+
 extern void do_init_ffmpeg(void);
 
 static int ffmpeg_type = 0;

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36938] trunk/blender/source/blender/ blenkernel/intern/writeffmpeg.c: == FFMPEG ==

2011-05-26 Thread Peter Schlaile
Revision: 36938
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36938
Author:   schlaile
Date: 2011-05-26 23:19:15 + (Thu, 26 May 2011)
Log Message:
---
== FFMPEG ==

Added some API compatibility code again, since some API-changes weren't even 
documented 
(they even didn't do a proper version-bump, arghh!)

If it breaks again, please tell!

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c

Modified: trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
===
--- trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
2011-05-26 22:48:06 UTC (rev 36937)
+++ trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
2011-05-26 23:19:15 UTC (rev 36938)
@@ -61,6 +61,21 @@
 #include "IMB_imbuf_types.h"
 #include "IMB_imbuf.h"
 
+#if (LIBAVFORMAT_VERSION_MAJOR >= 52) && (LIBAVFORMAT_VERSION_MINOR >= 105)
+#define FFMPEG_HAVE_AVIO 1
+#endif
+
+#if (LIBAVFORMAT_VERSION_MAJOR >= 53) && (LIBAVFORMAT_VERSION_MINOR >= 3)
+#define FFMPEG_HAVE_DEFAULT_VAL_UNION 1
+#endif
+
+#ifndef FFMPEG_HAVE_AVIO
+#define AVIO_FLAG_WRITE URL_WRONLY
+#define avio_open url_fopen
+#define avio_tell url_ftell
+#define avio_close url_fclose
+#endif
+
 extern void do_init_ffmpeg(void);
 
 static int ffmpeg_type = 0;
@@ -1051,12 +1066,20 @@
switch (o->type) {
case FF_OPT_TYPE_INT:
case FF_OPT_TYPE_INT64:
+#ifdef FFMPEG_HAVE_DEFAULT_VAL_UNION
val.i = o->default_val.i64;
+#else
+   val.i = o->default_val;
+#endif
idp_type = IDP_INT;
break;
case FF_OPT_TYPE_DOUBLE:
case FF_OPT_TYPE_FLOAT:
+#ifdef FFMPEG_HAVE_DEFAULT_VAL_UNION
val.f = o->default_val.dbl;
+#else
+   val.f = o->default_val;
+#endif
idp_type = IDP_FLOAT;
break;
case FF_OPT_TYPE_STRING:

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


Re: [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36932] trunk/blender/source/blender: split BLO_library_append_named_part into 2 function, one that adds objects into the scene and another that j

2011-05-26 Thread Peter Schlaile

split BLO_library_append_named_part into 2 function, one that adds objects into 
the scene and another that just links/appends.

Modified Paths:
--
   trunk/blender/source/blender/blenloader/BLO_readfile.h
   trunk/blender/source/blender/blenloader/intern/readfile.c
   trunk/blender/source/blender/python/intern/bpy_library.c
   trunk/blender/source/blender/windowmanager/intern/wm_operators.c



this commit breaks game engine compile. Fix is attached, don't know, if it 
works, so please check and commit.


Cheers,
Peter


Peter Schlaile
diff --git a/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp b/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
index 684ed0b..2cd4e4b 100644
--- a/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
+++ b/blender/source/gameengine/Converter/KX_BlenderSceneConverter.cpp
@@ -994,7 +994,7 @@ bool KX_BlenderSceneConverter::LinkBlendFile(BlendHandle *bpy_openlib, const cha
 	int i=0;
 	LinkNode *n= names;
 	while(n) {
-		BLO_library_append_named_part(C, main_tmp, &bpy_openlib, (char *)n->link, idcode, 0);
+		BLO_library_append_named_part_ex(C, main_tmp, &bpy_openlib, (char *)n->link, idcode, 0);
 		n= (LinkNode *)n->next;
 		i++;
 	}
@@ -1012,7 +1012,7 @@ bool KX_BlenderSceneConverter::LinkBlendFile(BlendHandle *bpy_openlib, const cha
 		int i=0;
 		LinkNode *n= names;
 		while(n) {
-			BLO_library_append_named_part(C, main_tmp, &bpy_openlib, (char *)n->link, ID_AC, 0);
+			BLO_library_append_named_part_ex(C, main_tmp, &bpy_openlib, (char *)n->link, ID_AC, 0);
 			n= (LinkNode *)n->next;
 			i++;
 		}
___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36934] trunk/blender: == FFMPEG ==

2011-05-26 Thread Peter Schlaile
Revision: 36934
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36934
Author:   schlaile
Date: 2011-05-26 21:57:02 + (Thu, 26 May 2011)
Log Message:
---
== FFMPEG ==

* removed a lot of old cruft code for ancient ffmpeg versions
* made it compile again against latest ffmpeg / libav GIT
  (also shouldn't break distro ffmpegs, since those API changes
  have been introduced over a year ago. If it nevertheless breaks,
  please send me an email)

Modified Paths:
--
trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
trunk/blender/source/blender/imbuf/intern/anim_movie.c
trunk/blender/source/blender/imbuf/intern/util.c
trunk/blender/source/blender/makesrna/intern/rna_scene.c
trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.cpp
trunk/blender/source/gameengine/VideoTexture/VideoFFmpeg.h

Modified: trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
===
--- trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp  2011-05-26 
21:04:01 UTC (rev 36933)
+++ trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp  2011-05-26 
21:57:02 UTC (rev 36934)
@@ -52,6 +52,10 @@
 
int read_length, data_size;
 
+   AVPacket tmp_pkt;
+   
+   av_init_packet(&tmp_pkt);
+
// as long as there is still data in the package
while(audio_pkg_size > 0)
{
@@ -64,16 +68,15 @@
 
// read samples from the packet
data_size = buf_size - buf_pos;
-   /*read_length = avcodec_decode_audio3(m_codecCtx,
-   (int16_t*)(((data_t*)buffer.getBuffer())+buf_pos),
-   &data_size,
-   packet);*/
-   read_length = avcodec_decode_audio2(m_codecCtx,
-   
(int16_t*)(((data_t*)buffer.getBuffer()) + buf_pos),
-   &data_size,
-   audio_pkg_data,
-   audio_pkg_size);
 
+   tmp_pkt.data = audio_pkg_data;
+   tmp_pkt.size = audio_pkg_size;
+
+   read_length = avcodec_decode_audio3(
+   m_codecCtx,
+   (int16_t*)(((data_t*)buffer.getBuffer()) + buf_pos),
+   &data_size, &tmp_pkt);
+
// read error, next packet!
if(read_length < 0)
break;
@@ -112,7 +115,7 @@
 
for(unsigned int i = 0; i < m_formatCtx->nb_streams; i++)
{
-   if((m_formatCtx->streams[i]->codec->codec_type == 
CODEC_TYPE_AUDIO)
+   if((m_formatCtx->streams[i]->codec->codec_type == 
AVMEDIA_TYPE_AUDIO)
&& (m_stream < 0))
{
m_stream=i;

Modified: trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
===
--- trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
2011-05-26 21:04:01 UTC (rev 36933)
+++ trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
2011-05-26 21:57:02 UTC (rev 36934)
@@ -39,19 +39,6 @@
 #include 
 #include 
 
-#if LIBAVFORMAT_VERSION_INT < (49 << 16)
-#define FFMPEG_OLD_FRAME_RATE 1
-#else
-#define FFMPEG_CODEC_IS_POINTER 1
-#define FFMPEG_CODEC_TIME_BASE  1
-#endif
-
-#if LIBAVFORMAT_VERSION_INT >= (52 << 16)
-#define OUTFILE_PB (outfile->pb)
-#else
-#define OUTFILE_PB (&outfile->pb)
-#endif
-
 #if defined(WIN32) && (!(defined snprintf))
 #define snprintf _snprintf
 #endif
@@ -114,24 +101,12 @@
}
 }
 
-#ifdef FFMPEG_CODEC_IS_POINTER
-static AVCodecContext* get_codec_from_stream(AVStream* stream)
-{
-   return stream->codec;
-}
-#else
-static AVCodecContext* get_codec_from_stream(AVStream* stream)
-{
-   return &stream->codec;
-}
-#endif
-
 static int write_audio_frame(void) 
 {
AVCodecContext* c = NULL;
AVPacket pkt;
 
-   c = get_codec_from_stream(audio_stream);
+   c = audio_stream->codec;
 
av_init_packet(&pkt);
pkt.size = 0;
@@ -153,17 +128,15 @@
 
if(c->coded_frame && c->coded_frame->pts != AV_NOPTS_VALUE)
{
-#ifdef FFMPEG_CODEC_TIME_BASE
pkt.pts = av_rescale_q(c->coded_frame->pts,
-  c->time_base, 
audio_stream->time_base);
-#else
-   pkt.pts = c->coded_frame->pts;
-#endif
+  c->time_base, audio_stream->time_base);
fprintf(stderr, "Audio Frame PTS: %d\n", (int)pkt.pts);
}
 
pkt.stream_index = audio_stream->index;
-   pkt.flags |= PKT_FLAG_KEY;
+
+   pkt.flags |= AV_PKT_FLAG_KEY;
+
if (av_interleaved_write_frame(outfile, &pkt) != 0) {
   

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36734] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: This fixes:

2011-05-17 Thread Peter Schlaile
Revision: 36734
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36734
Author:   schlaile
Date: 2011-05-17 18:37:44 + (Tue, 17 May 2011)
Log Message:
---
This fixes:
[#27422] Strobe setting does not work with effect strip
[#27421] Some Settings of Adjustment Layers are not Functional.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2011-05-17 
16:21:06 UTC (rev 36733)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2011-05-17 
18:37:44 UTC (rev 36734)
@@ -977,16 +977,22 @@
int sta = seq->start;
int end = seq->start+seq->len-1;
 
-   if(seq->len == 0) return -1;
+   if (seq->type & SEQ_EFFECT) {
+   end = seq->enddisp;
+   } 
 
+   if(end < sta) {
+   return -1;
+   }
+
if(seq->flag&SEQ_REVERSE_FRAMES) {  
/*reverse frame in this sequence */
-   if(cfra <= sta) nr= seq->len-1;
+   if(cfra <= sta) nr= end - sta;
else if(cfra >= end) nr= 0;
else nr= end - cfra;
} else {
if(cfra <= sta) nr= 0;
-   else if(cfra >= end) nr= seq->len-1;
+   else if(cfra >= end) nr= end - sta;
else nr= cfra - sta;
}

@@ -2036,8 +2042,9 @@
break;
}
case SEQ_EFFECT:
-   {   
-   ibuf = seq_render_effect_strip_impl(context, seq, cfra);
+   {
+   ibuf = seq_render_effect_strip_impl(
+   context, seq, seq->start + nr);
break;
}
case SEQ_IMAGE:

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36717] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: == Sequencer ==

2011-05-16 Thread Peter Schlaile
Revision: 36717
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36717
Author:   schlaile
Date: 2011-05-16 17:54:55 + (Mon, 16 May 2011)
Log Message:
---
== Sequencer ==

This fixes one part of [#27353] VSE crashes on large M4V

StripData was alloced in full length for MOVIE and SOUND-tracks, which only
use the first element for filename storage. (StripData as an array is only
used in IMAGE strips).

Fixed the crash and documented accordingly.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2011-05-16 
17:14:47 UTC (rev 36716)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2011-05-16 
17:54:55 UTC (rev 36717)
@@ -1003,7 +1003,11 @@
 {
StripElem *se= seq->strip->stripdata;
 
-   if(seq->type != SEQ_MOVIE) { /* movie use the first */
+   if(seq->type == SEQ_IMAGE) { /* only 
+   IMAGE strips use the whole array,
+   MOVIE strips use only 
+   the first element, all other strips
+   don't use this... */
int nr = (int) give_stripelem_index(seq, cfra);
 
if (nr == -1 || se == NULL) return NULL;
@@ -3505,7 +3509,8 @@
strip->len = seq->len = ceil(info.length * FPS);
strip->us= 1;
 
-   strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), 
"stripelem");
+   /* we only need 1 element to store the filename */
+   strip->stripdata= se= MEM_callocN(sizeof(StripElem), "stripelem");
 
BLI_split_dirfile(seq_load->path, strip->dir, se->name);
 
@@ -3554,7 +3559,8 @@
strip->len = seq->len = IMB_anim_get_duration( an );
strip->us= 1;
 
-   strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), 
"stripelem");
+   /* we only need 1 element for MOVIE strips */
+   strip->stripdata= se= MEM_callocN(sizeof(StripElem), "stripelem");
 
BLI_split_dirfile(seq_load->path, strip->dir, se->name);
 

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36716] trunk/blender: [PATCH] == Sequencer ==

2011-05-16 Thread Peter Schlaile
Revision: 36716
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36716
Author:   schlaile
Date: 2011-05-16 17:14:47 + (Mon, 16 May 2011)
Log Message:
---
[PATCH] == Sequencer ==

This patch adds adjustment layer tracks to the sequencer and does some cleaning
up of the code.

What's an adjustment layer?

Think of it as an effect track, which takes no explicit input, but alters
the output of everything down the layer stack.

So: you can add several stages of color correction with it.

And: you can even use it with metastrips to group several adjustments together.

Modified Paths:
--
trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/seqeffects.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
trunk/blender/source/blender/makesdna/DNA_sequence_types.h
trunk/blender/source/blender/makesrna/RNA_access.h
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py
===
--- trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py  
2011-05-16 13:34:42 UTC (rev 36715)
+++ trunk/blender/release/scripts/startup/bl_ui/space_sequencer.py  
2011-05-16 17:14:47 UTC (rev 36716)
@@ -213,6 +213,7 @@
 layout.operator("sequencer.effect_strip_add", text="Color").type = 
'COLOR'
 layout.operator("sequencer.effect_strip_add", text="Speed 
Control").type = 'SPEED'
 layout.operator("sequencer.effect_strip_add", text="Multicam 
Selector").type = 'MULTICAM'
+layout.operator("sequencer.effect_strip_add", text="Adjustment 
Layer").type = 'ADJUSTMENT'
 
 
 class SEQUENCER_MT_strip(bpy.types.Menu):
@@ -391,7 +392,7 @@
   'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
   'PLUGIN',
   'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED',
-  'MULTICAM'}
+  'MULTICAM', 'ADJUSTMENT'}
 
 def draw(self, context):
 layout = self.layout
@@ -530,7 +531,7 @@
   'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
   'PLUGIN',
   'WIPE', 'GLOW', 'TRANSFORM', 'COLOR',
-  'MULTICAM', 'SPEED'}
+  'MULTICAM', 'SPEED', 'ADJUSTMENT'}
 
 def draw(self, context):
 layout = self.layout
@@ -680,7 +681,7 @@
   'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
   'PLUGIN',
   'WIPE', 'GLOW', 'TRANSFORM', 'COLOR',
-  'MULTICAM', 'SPEED'}
+  'MULTICAM', 'SPEED', 'ADJUSTMENT'}
 
 def draw(self, context):
 layout = self.layout

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2011-05-16 
13:34:42 UTC (rev 36715)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2011-05-16 
17:14:47 UTC (rev 36716)
@@ -268,6 +268,10 @@
 void seq_sound_init(struct Scene *scene, struct Sequence *seq);
 struct Sequence *seq_foreground_frame_get(struct Scene *scene, int frame);
 struct ListBase *seq_seqbase(struct ListBase *seqbase, struct Sequence *seq);
+struct Sequence *seq_metastrip(
+   ListBase * seqbase /* = ed->seqbase */, 
+   struct Sequence * meta /* = NULL */, struct Sequence *seq);
+
 void seq_offset_animdata(struct Scene *scene, struct Sequence *seq, int ofs);
 void seq_dupe_animdata(struct Scene *scene, char *name_from, char *name_to);
 int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test, struct 
Scene *evil_scene);

Modified: trunk/blender/source/blender/blenkernel/intern/seqeffects.c
===
--- trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2011-05-16 
13:34:42 UTC (rev 36715)
+++ trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2011-05-16 
17:14:47 UTC (rev 36716)
@@ -2859,6 +2859,83 @@
 }
 
 /* **
+   ADJUSTMENT
+   ** */
+
+/* no effect inputs for adjustment, we use give_ibuf_seq */
+static int num_inputs_adjustment(void)
+{
+   return 0;
+}
+
+static int early_out_adjustment(struct Sequence *UNUSED(seq), float 

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36197] trunk/blender/source/blender/ blenkernel: == Sequencer ==

2011-04-17 Thread Peter Schlaile
Revision: 36197
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36197
Author:   schlaile
Date: 2011-04-17 10:05:27 + (Sun, 17 Apr 2011)
Log Message:
---
== Sequencer ==

Fixes Fix for [#25713] VSE shows and renders wrong straight alpha gradient even 
after convert to pr
(see revision: 34540, fix by Janne)

By not breaking the seqcache interface API.

Added comments to header file, so that it is easier to understand, how the
cache API is supposed to work.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/seqcache.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2011-04-17 
08:38:27 UTC (rev 36196)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2011-04-17 
10:05:27 UTC (rev 36197)
@@ -217,9 +217,16 @@
 
 void seq_stripelem_cache_cleanup(void);
 
+/* returned ImBuf is properly refed and has to be freed */
 struct ImBuf * seq_stripelem_cache_get(
SeqRenderData context, struct Sequence * seq, 
float cfra, seq_stripelem_ibuf_t type);
+
+/* passed ImBuf is properly refed, so ownership is *not* 
+   transfered to the cache.
+   you can pass the same ImBuf multiple times to the cache without problems.
+*/
+   
 void seq_stripelem_cache_put(
SeqRenderData context, struct Sequence * seq, 
float cfra, seq_stripelem_ibuf_t type, struct ImBuf * nval);

Modified: trunk/blender/source/blender/blenkernel/intern/seqcache.c
===
--- trunk/blender/source/blender/blenkernel/intern/seqcache.c   2011-04-17 
08:38:27 UTC (rev 36196)
+++ trunk/blender/source/blender/blenkernel/intern/seqcache.c   2011-04-17 
10:05:27 UTC (rev 36197)
@@ -237,9 +237,7 @@
key->cfra = cfra - seq->start;
key->type = type;
 
-   /* Normally we want our own version, but start and end stills are 
duplicates of the original. */
-   if(ELEM(type, SEQ_STRIPELEM_IBUF_STARTSTILL, 
SEQ_STRIPELEM_IBUF_ENDSTILL)==0)
-   IMB_refImBuf(i);
+   IMB_refImBuf(i);
 
e = (seqCacheEntry*) BLI_mempool_alloc(entrypool);
 

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2011-04-17 
08:38:27 UTC (rev 36196)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2011-04-17 
10:05:27 UTC (rev 36197)
@@ -1720,16 +1720,25 @@
 static void copy_to_ibuf_still(SeqRenderData context, Sequence * seq, float nr,
   ImBuf * ibuf)
 {
-   if (nr == 0) {
-   seq_stripelem_cache_put(
-   context, seq, seq->start, 
-   SEQ_STRIPELEM_IBUF_STARTSTILL, IMB_dupImBuf(ibuf));
-   } 
+   if (nr == 0 || nr == seq->len - 1) {
+   /* we have to store a copy, since the passed ibuf
+  could be preprocessed afterwards (thereby silently
+  changing the cached image... */
+   ibuf = IMB_dupImBuf(ibuf);
 
-   if (nr == seq->len - 1) {
-   seq_stripelem_cache_put(
-   context, seq, seq->start, 
-   SEQ_STRIPELEM_IBUF_ENDSTILL, IMB_dupImBuf(ibuf));
+   if (nr == 0) {
+   seq_stripelem_cache_put(
+   context, seq, seq->start, 
+   SEQ_STRIPELEM_IBUF_STARTSTILL, ibuf);
+   } 
+
+   if (nr == seq->len - 1) {
+   seq_stripelem_cache_put(
+   context, seq, seq->start, 
+   SEQ_STRIPELEM_IBUF_ENDSTILL, ibuf);
+   }
+
+   IMB_freeImBuf(ibuf);
}
 }
 

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34659] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: This fixes: [#25608] Video Sequence Editor: problem using cut on a strip with a c

2011-02-05 Thread Peter Schlaile
Revision: 34659
  
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34659
Author:   schlaile
Date: 2011-02-05 15:11:29 + (Sat, 05 Feb 2011)
Log Message:
---
This fixes: [#25608] Video Sequence Editor: problem using cut on a strip with a 
custom proxy file.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2011-02-05 
15:05:17 UTC (rev 34658)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2011-02-05 
15:11:29 UTC (rev 34659)
@@ -3541,6 +3541,7 @@
 
if (seq->strip->proxy) {
seqn->strip->proxy = MEM_dupallocN(seq->strip->proxy);
+   seqn->strip->proxy->anim = 0;
}
 
if (seq->strip->color_balance) {

___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33974] trunk/blender/release/scripts/ui/ space_sequencer.py: == Sequencer ==

2010-12-31 Thread Peter Schlaile
Revision: 33974
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33974
Author:   schlaile
Date: 2010-12-31 23:44:17 +0100 (Fri, 31 Dec 2010)

Log Message:
---
== Sequencer ==

Made anim_start / anim_endofs editable again within UI.

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-12-31 20:01:38 UTC 
(rev 33973)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-12-31 22:44:17 UTC 
(rev 33974)
@@ -608,7 +608,12 @@
 col.prop(strip.crop, "max_x")
 
 col = layout.column(align=True)
-col.label(text="Trim Duration:")
+col.label(text="Trim Duration (hard):")
+col.prop(strip, "animation_offset_start", text="Start")
+col.prop(strip, "animation_offset_end", text="End")
+
+col = layout.column(align=True)
+col.label(text="Trim Duration (soft):")
 col.prop(strip, "frame_offset_start", text="Start")
 col.prop(strip, "frame_offset_end", text="End")
 


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33733] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: == Sequencer ==

2010-12-17 Thread Peter Schlaile
Revision: 33733
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33733
Author:   schlaile
Date: 2010-12-17 09:53:49 +0100 (Fri, 17 Dec 2010)

Log Message:
---
== Sequencer ==

Sequence effect rendering of color generator did some rather strange 
fall through, because of a missing break statement. (Noone got hurt, but 
better add that break, just in case)

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-12-17 
08:08:35 UTC (rev 33732)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-12-17 
08:53:49 UTC (rev 33733)
@@ -1770,6 +1770,7 @@
case EARLY_NO_INPUT:
out = sh.execute(context, seq, cfra, fac, facf, 
 NULL, NULL, NULL);
+   break;
case EARLY_DO_EFFECT:
for(i=0; i<3; i++) {
if(input[i])


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33732] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: This fixes

2010-12-17 Thread Peter Schlaile
Revision: 33732
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33732
Author:   schlaile
Date: 2010-12-17 09:08:35 +0100 (Fri, 17 Dec 2010)

Log Message:
---
This fixes
[#25011] Opacity IPO not refreshing with still images

(should be better named: animation of any prefiltering parameters using 
still images didn't work out as expected)

And this issue by private mail by Ton:

"I tried to debug a memory-free error; very simple case:

- add image strip
- click on strip at 2 places
- quit blender"

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-12-17 
07:06:27 UTC (rev 33731)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-12-17 
08:08:35 UTC (rev 33732)
@@ -1683,8 +1683,7 @@
ibuf = seq_stripelem_cache_get(
context, seq, seq->start, 
SEQ_STRIPELEM_IBUF_STARTSTILL);
-   }
-   if (nr == seq->len - 1) {
+   } else if (nr == seq->len - 1) {
ibuf = seq_stripelem_cache_get(
context, seq, seq->start, 
SEQ_STRIPELEM_IBUF_ENDSTILL);
@@ -1705,7 +1704,8 @@
seq_stripelem_cache_put(
context, seq, seq->start, 
SEQ_STRIPELEM_IBUF_STARTSTILL, ibuf);
-   }
+   } 
+
if (nr == seq->len - 1) {
seq_stripelem_cache_put(
context, seq, seq->start, 
@@ -1969,14 +1969,15 @@
 
ibuf = seq_stripelem_cache_get(context, seq, cfra, SEQ_STRIPELEM_IBUF);
 
-   if (ibuf == NULL)
-   ibuf = copy_from_ibuf_still(context, seq, nr);
-   
-   /* currently, we cache preprocessed images */
+   /* currently, we cache preprocessed images in SEQ_STRIPELEM_IBUF,
+  but not(!) on SEQ_STRIPELEM_IBUF_ENDSTILL and ..._STARTSTILL */
if (ibuf)
use_preprocess = FALSE;
 
if (ibuf == NULL)
+   ibuf = copy_from_ibuf_still(context, seq, nr);
+   
+   if (ibuf == NULL)
ibuf = seq_proxy_fetch(context, seq, cfra);
 
if(ibuf == NULL) switch(type) {


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33489] trunk/blender/release/scripts/ui/ space_sequencer.py: Partial bugfix for [#25037] , brought back Select menu in Sequencer

2010-12-05 Thread Peter Schlaile
Revision: 33489
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33489
Author:   schlaile
Date: 2010-12-05 18:56:15 +0100 (Sun, 05 Dec 2010)

Log Message:
---
Partial bugfix for [#25037] , brought back Select menu in Sequencer 
header...

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-12-05 16:39:48 UTC 
(rev 33488)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-12-05 17:56:15 UTC 
(rev 33489)
@@ -42,8 +42,6 @@
 sub = row.row(align=True)
 sub.menu("SEQUENCER_MT_view")
 
-row.separator()
-
 if (st.view_type == 'SEQUENCER') or (st.view_type == 
'SEQUENCER_PREVIEW'):
 sub.menu("SEQUENCER_MT_select")
 sub.menu("SEQUENCER_MT_marker")


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33487] trunk/blender/release/scripts/ presets/ffmpeg: Probably bugfix for [#25050] Outputing mpeg ( audio in AC3 format) causes

2010-12-05 Thread Peter Schlaile
Revision: 33487
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33487
Author:   schlaile
Date: 2010-12-05 17:14:34 +0100 (Sun, 05 Dec 2010)

Log Message:
---
Probably bugfix for [#25050] Outputing mpeg (audio in AC3 format) causes 
audio to become buggy.

Added sensible audio preset settings for ffmpeg rendering

Modified Paths:
--
trunk/blender/release/scripts/presets/ffmpeg/DV.py
trunk/blender/release/scripts/presets/ffmpeg/DVD.py
trunk/blender/release/scripts/presets/ffmpeg/SVCD.py
trunk/blender/release/scripts/presets/ffmpeg/VCD.py

Modified: trunk/blender/release/scripts/presets/ffmpeg/DV.py
===
--- trunk/blender/release/scripts/presets/ffmpeg/DV.py  2010-12-05 14:13:57 UTC 
(rev 33486)
+++ trunk/blender/release/scripts/presets/ffmpeg/DV.py  2010-12-05 16:14:34 UTC 
(rev 33487)
@@ -8,3 +8,6 @@
 bpy.context.scene.render.resolution_y = 480
 else:
 bpy.context.scene.render.resolution_y = 576
+
+bpy.context.scene.render.ffmpeg_audio_mixrate = 48000
+bpy.context.scene.render.ffmpeg_audio_codec = "PCM"

Modified: trunk/blender/release/scripts/presets/ffmpeg/DVD.py
===
--- trunk/blender/release/scripts/presets/ffmpeg/DVD.py 2010-12-05 14:13:57 UTC 
(rev 33486)
+++ trunk/blender/release/scripts/presets/ffmpeg/DVD.py 2010-12-05 16:14:34 UTC 
(rev 33487)
@@ -17,3 +17,7 @@
 bpy.context.scene.render.ffmpeg_buffersize = 224*8
 bpy.context.scene.render.ffmpeg_packetsize = 2048
 bpy.context.scene.render.ffmpeg_muxrate = 1008
+
+bpy.context.scene.render.ffmpeg_audio_codec = "AC3"
+bpy.context.scene.render.ffmpeg_audio_bitrate = 448
+bpy.context.scene.render.ffmpeg_audio_mixrate = 48000

Modified: trunk/blender/release/scripts/presets/ffmpeg/SVCD.py
===
--- trunk/blender/release/scripts/presets/ffmpeg/SVCD.py2010-12-05 
14:13:57 UTC (rev 33486)
+++ trunk/blender/release/scripts/presets/ffmpeg/SVCD.py2010-12-05 
16:14:34 UTC (rev 33487)
@@ -17,3 +17,7 @@
 bpy.context.scene.render.ffmpeg_buffersize = 224*8
 bpy.context.scene.render.ffmpeg_packetsize = 2324
 bpy.context.scene.render.ffmpeg_muxrate = 0
+
+bpy.context.scene.render.ffmpeg_audio_bitrate = 224
+bpy.context.scene.render.ffmpeg_audio_mixrate = 44100
+bpy.context.scene.render.ffmpeg_audio_codec = "MP2"

Modified: trunk/blender/release/scripts/presets/ffmpeg/VCD.py
===
--- trunk/blender/release/scripts/presets/ffmpeg/VCD.py 2010-12-05 14:13:57 UTC 
(rev 33486)
+++ trunk/blender/release/scripts/presets/ffmpeg/VCD.py 2010-12-05 16:14:34 UTC 
(rev 33487)
@@ -17,3 +17,7 @@
 bpy.context.scene.render.ffmpeg_buffersize = 40*8
 bpy.context.scene.render.ffmpeg_packetsize = 2324
 bpy.context.scene.render.ffmpeg_muxrate = 2352 * 75 * 8
+
+bpy.context.scene.render.ffmpeg_audio_bitrate = 224
+bpy.context.scene.render.ffmpeg_audio_mixrate = 44100
+bpy.context.scene.render.ffmpeg_audio_codec = "MP2"


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33366] trunk/blender: == Sequencer ==

2010-11-28 Thread Peter Schlaile
Revision: 33366
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33366
Author:   schlaile
Date: 2010-11-28 19:23:21 +0100 (Sun, 28 Nov 2010)

Log Message:
---
== Sequencer ==

This fixes Orig Dimension display (mostly).
* orx, ory both didn't get calculated, if dimension already matched
* putting them into Strip instead of StripData ment, that using images
  of different dimensions in one strip could lead to incorrect results

Still TODO: on file open, timeline display happens before preview 
display which means: orig_width and height are calculated after the 
first draw of N-keys dialog. You have to hit refresh (or scrub one 
frame) to get the right values displayed.

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
trunk/blender/source/blender/makesdna/DNA_sequence_types.h
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-11-28 18:22:23 UTC 
(rev 33365)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-11-28 18:23:21 UTC 
(rev 33366)
@@ -384,10 +384,18 @@
 
 col.label(text="Frame Offset %d:%d" % (strip.frame_offset_start, 
strip.frame_offset_end))
 col.label(text="Frame Still %d:%d" % (strip.frame_still_start, 
strip.frame_still_end))
-if strip.type in ('MOVIE', 'IMAGE'):
-col.label(text="Orig Dim: %dx%d" % (strip.orig_width, 
strip.orig_height))
 
+elem = False
+
+if strip.type == 'IMAGE':
+elem = strip.getStripElem(frame_current)
+elif strip.type == 'MOVIE':
+elem = strip.elements[0]
 
+if elem and elem.orig_width > 0 and elem.orig_height > 0:
+col.label(text="Orig Dim: %dx%d" % (elem.orig_width, 
elem.orig_height))
+
+
 class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
 bl_label = "Effect Strip"
 

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-11-28 
18:22:23 UTC (rev 33365)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-11-28 
18:23:21 UTC (rev 33366)
@@ -1558,9 +1558,6 @@
 {
float mul;
 
-   seq->strip->orx= ibuf->x;
-   seq->strip->ory= ibuf->y;
-
if((seq->flag & SEQ_FILTERY) && seq->type != SEQ_MOVIE) {
IMB_filtery(ibuf);
}
@@ -2054,6 +2051,9 @@
IMB_convert_profile(ibuf, 
IB_PROFILE_NONE);
 
copy_to_ibuf_still(context, seq, nr, ibuf);
+
+   s_elem->orig_width  = ibuf->x;
+   s_elem->orig_height = ibuf->y;
}
break;
}
@@ -2073,7 +2073,10 @@
/* we don't need both (speed reasons)! */
if (ibuf && ibuf->rect_float && ibuf->rect)
imb_freerectImBuf(ibuf);
-
+   if (ibuf) {
+   seq->strip->stripdata->orig_width = 
ibuf->x;
+   seq->strip->stripdata->orig_height = 
ibuf->y;
+   }
}
copy_to_ibuf_still(context, seq, nr, ibuf);
break;

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c   
2010-11-28 18:22:23 UTC (rev 33365)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c   
2010-11-28 18:23:21 UTC (rev 33366)
@@ -2561,18 +2561,15 @@
if(active_seq==NULL)
return OPERATOR_CANCELLED;
 
-   switch (active_seq->type) {
+   StripElem * se = 0;
+
+   if (active_seq->strip) {
+   switch (active_seq->type) {
case SEQ_IMAGE:
+   se = give_stripelem(active_seq, scene->r.cfra);
+   break;
case SEQ_MOVIE:
-   if (active_seq->strip) {
-   // prevent setting the render size if sequence 
values aren't initialized
-   if ( (active_seq->strip->orx>0) && 
(active_seq->strip->ory>0) ) {
-   scene->r.xsch= active_seq->strip->orx;
-   scene->r.ysch= active_seq->strip->ory;
- 

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33223] trunk/blender: == Sequencer ==

2010-11-21 Thread Peter Schlaile
Revision: 33223
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33223
Author:   schlaile
Date: 2010-11-21 21:00:31 +0100 (Sun, 21 Nov 2010)

Log Message:
---
== Sequencer ==

* documented and rewrote the render interface of the sequencer.
  (now, the geometry / render_type / etc. settings are stored within a
  seperate structure called SeqRenderData that is passed within the code.)

* that fixes
  * cache problems, since the caching system didn't keep track of
proxy files vs. final renders.
  * is a necessary step, to bring back frame blending in speed effect
(the SeqRenderData structure elements are already there)
  * will make motion blur render options available within the sequencer!

* this patch also fixes:
  * "easy retiming" using speed effects. (in Blender 2.49, you could 
add a speed effect and resize the source track to retime it to that
length)
  * adds labels for the Original dimensions for Image + Movie tracks
(worked in 2.49, too)

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/seqcache.c
trunk/blender/source/blender/blenkernel/intern/seqeffects.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
trunk/blender/source/blender/render/intern/source/pipeline.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-11-21 19:29:08 UTC 
(rev 33222)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-11-21 20:00:31 UTC 
(rev 33223)
@@ -384,6 +384,8 @@
 
 col.label(text="Frame Offset %d:%d" % (strip.frame_offset_start, 
strip.frame_offset_end))
 col.label(text="Frame Still %d:%d" % (strip.frame_still_start, 
strip.frame_still_end))
+if strip.type in ('MOVIE', 'IMAGE'):
+col.label(text="Orig Dim: %dx%d" % (strip.orig_width, 
strip.orig_height))
 
 
 class SEQUENCER_PT_effect(SequencerButtonsPanel, bpy.types.Panel):
@@ -443,12 +445,14 @@
 row.prop(strip, "use_only_boost")
 
 elif strip.type == 'SPEED':
-layout.prop(strip, "use_as_speed")
-if strip.use_as_speed:
-layout.prop(strip, "speed_factor")
-else:
-layout.prop(strip, "speed_factor", text="Frame number")
-layout.prop(strip, "scale_to_length")
+layout.prop(strip, "use_default_fade", "Stretch to input strip 
length")
+if not strip.use_default_fade:
+layout.prop(strip, "use_as_speed")
+if strip.use_as_speed:
+layout.prop(strip, "speed_factor")
+else:
+layout.prop(strip, "speed_factor", text="Frame number")
+layout.prop(strip, "scale_to_length")
 
 #doesn't work currently
 #layout.prop(strip, "use_frame_blend")
@@ -573,6 +577,7 @@
 col = split.column()
 col.prop(strip, "filepath", text="")
 col.prop(strip, "mpeg_preseek", text="MPEG Preseek")
+
 # TODO, sound???
 # end drawing filename
 

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-11-21 
19:29:08 UTC (rev 33222)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-11-21 
20:00:31 UTC (rev 33223)
@@ -83,7 +83,23 @@
seq_end(&iter); \
}
 
+typedef struct SeqRenderData {
+   struct Main *bmain;
+   struct Scene *scene;
+   int rectx;
+   int recty;
+   int preview_render_size;
+   int motion_blur_samples;
+   float motion_blur_shutter;
+} SeqRenderData;
 
+SeqRenderData seq_new_render_data(
+   struct Main * bmain, struct Scene * scene,
+   int rectx, int recty, int preview_render_size);
+
+int seq_cmp_render_data(SeqRenderData * a, SeqRenderData * b);
+unsigned int seq_hash_render_data(SeqRenderData * a);
+
 /* Wipe effect */
 enum {DO_SINGLE_WIPE, DO_DOUBLE_WIPE, DO_BOX_WIPE, DO_CROSS_WIPE,
DO_IRIS_WIPE,DO_CLOCK_WIPE};
@@ -129,35 +145,39 @@
(mixed cases are handled one layer up...) */

struct ImBuf* (*execute)(
-   struct Main *bmain,
-   struct Scene *scene, struct Sequence *seq, float cfra,
+   SeqRenderData context,
+   struct Sequence *seq, float cfra,
float facf0, float facf1,
-   int x, int y, int preview_render_size,
struct ImBuf *ibuf1, struct ImBuf *ibuf2,
  

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32816] trunk/blender/source/blender/ blenkernel: Sequencer: fix for the fix of: #23318

2010-11-01 Thread Peter Schlaile
Revision: 32816
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32816
Author:   schlaile
Date: 2010-11-01 19:55:12 +0100 (Mon, 01 Nov 2010)

Log Message:
---
Sequencer: fix for the fix of: #23318
also known as: broken multicam strip caused by other fix.

Calculated render_size where it belongs (within the glow effect) and 
restored old functionality.

also: renamed render_size to preview_render_size at all relevant places, 
where the naming wasn't used correctly.

Hopefully it's now a little bit more clear. 

render_size := render size from scene (just rescales width/height)
preview_render_size := preview render size from sequencer preview, 
  controls the resolution and the use of sequencer proxy sources

Modified Paths:
--
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/seqeffects.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-11-01 
18:13:10 UTC (rev 32815)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-11-01 
18:55:12 UTC (rev 32816)
@@ -153,10 +153,10 @@
 void seq_free_clipboard(void);
 struct Editing *seq_give_editing(struct Scene *scene, int alloc);
 char *give_seqname(struct Sequence *seq);
-struct ImBuf *give_ibuf_seq(struct Main *bmain, struct Scene *scene, int 
rectx, int recty, int cfra, int chanshown, int render_size);
-struct ImBuf *give_ibuf_seq_threaded(struct Main *bmain, struct Scene *scene, 
int rectx, int recty, int cfra, int chanshown, int render_size);
-struct ImBuf *give_ibuf_seq_direct(struct Main *bmain, struct Scene *scene, 
int rectx, int recty, int cfra, int render_size, struct Sequence *seq);
-struct ImBuf *give_ibuf_seqbase(struct Main *bmain, struct Scene *scene, int 
rectx, int recty, int cfra, int chan_shown, int render_size, struct ListBase 
*seqbasep);
+struct ImBuf *give_ibuf_seq(struct Main *bmain, struct Scene *scene, int 
rectx, int recty, int cfra, int chanshown, int preview_render_size);
+struct ImBuf *give_ibuf_seq_threaded(struct Main *bmain, struct Scene *scene, 
int rectx, int recty, int cfra, int chanshown, int preview_render_size);
+struct ImBuf *give_ibuf_seq_direct(struct Main *bmain, struct Scene *scene, 
int rectx, int recty, int cfra, int preview_render_size, struct Sequence *seq);
+struct ImBuf *give_ibuf_seqbase(struct Main *bmain, struct Scene *scene, int 
rectx, int recty, int cfra, int chan_shown, int preview_render_size, struct 
ListBase *seqbasep);
 void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown, 
int render_size);
 void calc_sequence(struct Scene *scene, struct Sequence *seq);
 void calc_sequence_disp(struct Scene *scene, struct Sequence *seq);

Modified: trunk/blender/source/blender/blenkernel/intern/seqeffects.c
===
--- trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2010-11-01 
18:13:10 UTC (rev 32815)
+++ trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2010-11-01 
18:55:12 UTC (rev 32816)
@@ -2660,14 +2660,16 @@
 }
 
 static struct ImBuf * do_glow_effect(
-   Main *UNUSED(bmain), Scene *UNUSED(scene), Sequence *seq, float 
UNUSED(cfra),
+   Main *UNUSED(bmain), Scene * scene, Sequence *seq, float UNUSED(cfra),
float facf0, float facf1, int x, int y, 
-   int render_size,
+   int UNUSED(preview_render_size),
struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
struct ImBuf *ibuf3)
 {
struct ImBuf * out = prepare_effect_imbufs(x, y, ibuf1, ibuf2, ibuf3);
 
+   int render_size = 100*x/scene->r.xsch;
+
if (out->rect_float) {
do_glow_effect_float(seq, render_size,
 facf0, facf1, x, y,

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-11-01 
18:13:10 UTC (rev 32815)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-11-01 
18:55:12 UTC (rev 32816)
@@ -1022,7 +1022,7 @@
 
 #define PROXY_MAXFILE (2*FILE_MAXDIR+FILE_MAXFILE)
 
-static int seq_proxy_get_fname(Scene *UNUSED(scene), Sequence * seq, int cfra, 
char * name, int render_size)
+static int seq_proxy_get_fname(Scene *UNUSED(scene), Sequence * seq, int cfra, 
char * name, int preview_render_size)
 {
int frameno;
char dir[FILE_MAXDIR];
@@ -1053,17 +1053,17 @@
switch(seq->type) {
case SEQ_IMAGE:
snprintf(name, PROXY_MAXFILE, "%s/images/%d/%s_proxy", dir,
-   render_size, give_stripelem(seq, 
cfra)->name);
+   pre

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32815] trunk/blender: == FFMPEG ==

2010-11-01 Thread Peter Schlaile
Revision: 32815
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32815
Author:   schlaile
Date: 2010-11-01 19:13:10 +0100 (Mon, 01 Nov 2010)

Log Message:
---
== FFMPEG ==

This fixes a rather subtle seeking issue with ffmpeg and Sony 
XDCAM-footage.

Problem is: MPEG2 streams within an MP4 container can contain a start 
time - at several places. There is a starttime within the video 
and audio streams and one within the container.

FFMpeg commandline tool only uses the container starttime and we used 
the stream starttime. 

The world would be a better place, if those two timestamps always match 
up, since in XDCAM-footage those two starttimes differ in 4 
frames - and the container has the right one.

We now always use the container start time as ffmpeg commandline tool 
does (in the hope, that there is a good explaination for this and this 
is the right thing(tm) to do).

I tested this also with HDV footage, which seems to work with the new 
code, too.

Additional fix: disabled seek_by_bytes again, since it will only work 
correctly, if ffmpeg guessed the HDV bitrate right (which it doesn't). 
If you have seeking issues with HDV and have an older version of ffmpeg 
installed, please upgrade, newer versions have some fixes in them.

Modified Paths:
--
trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
trunk/blender/source/blender/imbuf/intern/anim_movie.c

Modified: trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
===
--- trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp  2010-11-01 
17:00:21 UTC (rev 32814)
+++ trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp  2010-11-01 
18:13:10 UTC (rev 32815)
@@ -246,10 +246,8 @@
 {
if(position >= 0)
{
-   uint64_t st_time = m_formatCtx->streams[m_stream]->start_time;
-   double time_base = 
-   av_q2d(m_formatCtx->streams[m_stream]->time_base);
-   uint64_t seek_pos = position / time_base / m_specs.rate;
+   uint64_t st_time = m_formatCtx->start_time;
+   uint64_t seek_pos = position * AV_TIME_BASE / m_specs.rate;
 
if (seek_pos < 0) {
seek_pos = 0;
@@ -259,9 +257,14 @@
seek_pos += st_time;
}
 
+   double pts_time_base = 
+   av_q2d(m_formatCtx->streams[m_stream]->time_base);
+   uint64_t pts_st_time =
+   ((st_time != AV_NOPTS_VALUE) ? st_time : 0)
+   / pts_time_base / (uint64_t) AV_TIME_BASE;
 
// a value < 0 tells us that seeking failed
-   if(av_seek_frame(m_formatCtx, m_stream, seek_pos,
+   if(av_seek_frame(m_formatCtx, -1, seek_pos,
 AVSEEK_FLAG_BACKWARD | AVSEEK_FLAG_ANY) >= 0)
{
avcodec_flush_buffers(m_codecCtx);
@@ -284,7 +287,7 @@
{
// calculate real position, and 
read to frame!
m_position = (packet.pts - 
-   ((st_time != 
AV_NOPTS_VALUE) ? st_time : 0)) * time_base * m_specs.rate;
+   pts_st_time) * 
pts_time_base * m_specs.rate;
 
if(m_position < position)
{
@@ -307,6 +310,7 @@
}
else
{
+   fprintf(stderr, "seeking failed!\n");
// Seeking failed, do nothing.
}
}

Modified: trunk/blender/source/blender/imbuf/intern/anim_movie.c
===
--- trunk/blender/source/blender/imbuf/intern/anim_movie.c  2010-11-01 
17:00:21 UTC (rev 32814)
+++ trunk/blender/source/blender/imbuf/intern/anim_movie.c  2010-11-01 
18:13:10 UTC (rev 32815)
@@ -839,7 +839,15 @@
}
}
 
+/* disable seek_by_bytes for now, since bitrates are guessed wrong!
+   also: MPEG2TS-seeking was fixed in later versions of ffmpeg, so problem
+   is somewhat fixed by now (until we add correct timecode management code...)
+*/
+#if 0
seek_by_bytes = !!(anim->pFormatCtx->iformat->flags & AVFMT_TS_DISCONT);
+#else
+   seek_by_bytes = FALSE;
+#endif
 
if (position != anim->curposition + 1) { 
 #ifdef FFMPEG_OLD_FRAME_RATE
@@ -851,12 +859,9 @@
av_q2d(anim->pFormatCtx->streams[anim->videoStream]
   ->r_frame_rate);
 #endif
-   double time_base = 
-   av_q2d(anim->pFormatCtx->streams[anim->videoStream]
-  

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32529] trunk/blender/release/scripts/ presets/render: This fixes HDV render presets:

2010-10-16 Thread Peter Schlaile
Revision: 32529
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32529
Author:   schlaile
Date: 2010-10-16 21:29:48 +0200 (Sat, 16 Oct 2010)

Log Message:
---
This fixes HDV render presets:
* according to wikipedia HDV1080p 24p has a framerate of 24/1.001
* HDV comes in NTSC in PAL versions, too (30/1.001 and 25/1) 

Modified Paths:
--
trunk/blender/release/scripts/presets/render/HDV_1080p.py

Added Paths:
---
trunk/blender/release/scripts/presets/render/HDV_NTSC_1080p.py
trunk/blender/release/scripts/presets/render/HDV_PAL_1080p.py

Modified: trunk/blender/release/scripts/presets/render/HDV_1080p.py
===
--- trunk/blender/release/scripts/presets/render/HDV_1080p.py   2010-10-16 
17:30:59 UTC (rev 32528)
+++ trunk/blender/release/scripts/presets/render/HDV_1080p.py   2010-10-16 
19:29:48 UTC (rev 32529)
@@ -5,4 +5,4 @@
 bpy.context.scene.render.pixel_aspect_x = 4
 bpy.context.scene.render.pixel_aspect_y = 3
 bpy.context.scene.render.fps = 24
-bpy.context.scene.render.fps_base = 1
+bpy.context.scene.render.fps_base = 1.001

Added: trunk/blender/release/scripts/presets/render/HDV_NTSC_1080p.py
===
--- trunk/blender/release/scripts/presets/render/HDV_NTSC_1080p.py  
(rev 0)
+++ trunk/blender/release/scripts/presets/render/HDV_NTSC_1080p.py  
2010-10-16 19:29:48 UTC (rev 32529)
@@ -0,0 +1,8 @@
+import bpy
+bpy.context.scene.render.resolution_x = 1440
+bpy.context.scene.render.resolution_y = 1080
+bpy.context.scene.render.resolution_percentage = 100
+bpy.context.scene.render.pixel_aspect_x = 4
+bpy.context.scene.render.pixel_aspect_y = 3
+bpy.context.scene.render.fps = 30
+bpy.context.scene.render.fps_base = 1.001

Added: trunk/blender/release/scripts/presets/render/HDV_PAL_1080p.py
===
--- trunk/blender/release/scripts/presets/render/HDV_PAL_1080p.py   
(rev 0)
+++ trunk/blender/release/scripts/presets/render/HDV_PAL_1080p.py   
2010-10-16 19:29:48 UTC (rev 32529)
@@ -0,0 +1,8 @@
+import bpy
+bpy.context.scene.render.resolution_x = 1440
+bpy.context.scene.render.resolution_y = 1080
+bpy.context.scene.render.resolution_percentage = 100
+bpy.context.scene.render.pixel_aspect_x = 4
+bpy.context.scene.render.pixel_aspect_y = 3
+bpy.context.scene.render.fps = 25
+bpy.context.scene.render.fps_base = 1


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32523] trunk/blender/intern/audaspace/ ffmpeg/AUD_FFMPEGReader.cpp: == Audaspace / FFMPEG ==

2010-10-16 Thread Peter Schlaile
Revision: 32523
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32523
Author:   schlaile
Date: 2010-10-16 17:01:01 +0200 (Sat, 16 Oct 2010)

Log Message:
---
== Audaspace / FFMPEG ==

Audaspace audio seek code wasn't taking start_time into account.
(Most common symptom: HDV MPEG2TS files always start audio playback at the 
beginning regardless of seek position.)

Modified Paths:
--
trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp

Modified: trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
===
--- trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp  2010-10-16 
15:00:04 UTC (rev 32522)
+++ trunk/blender/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp  2010-10-16 
15:01:01 UTC (rev 32523)
@@ -246,13 +246,23 @@
 {
if(position >= 0)
{
+   uint64_t st_time = m_formatCtx->streams[m_stream]->start_time;
+   double time_base = 
+   av_q2d(m_formatCtx->streams[m_stream]->time_base);
+   uint64_t seek_pos = position / time_base / m_specs.rate;
+
+   if (seek_pos < 0) {
+   seek_pos = 0;
+   }
+
+   if (st_time != AV_NOPTS_VALUE) {
+   seek_pos += st_time;
+   }
+
+
// a value < 0 tells us that seeking failed
-   if(av_seek_frame(m_formatCtx,
--1,
-(uint64_t)(((uint64_t)position 
*
-
(uint64_t)AV_TIME_BASE) /
-   
(uint64_t)m_specs.rate),
-AVSEEK_FLAG_BACKWARD | 
AVSEEK_FLAG_ANY) >= 0)
+   if(av_seek_frame(m_formatCtx, m_stream, seek_pos,
+AVSEEK_FLAG_BACKWARD | AVSEEK_FLAG_ANY) >= 0)
{
avcodec_flush_buffers(m_codecCtx);
m_position = position;
@@ -273,9 +283,8 @@
if(packet.pts != AV_NOPTS_VALUE)
{
// calculate real position, and 
read to frame!
-   m_position = packet.pts *
-   
av_q2d(m_formatCtx->streams[m_stream]->time_base) *
-   m_specs.rate;
+   m_position = (packet.pts - 
+   ((st_time != 
AV_NOPTS_VALUE) ? st_time : 0)) * time_base * m_specs.rate;
 
if(m_position < position)
{


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32144] trunk/blender/source/blender/ blenkernel/intern/writeffmpeg.c: Fix: [#24006] writeffmpeg doesn' t flush delayed frames - fix attached

2010-09-27 Thread Peter Schlaile
Revision: 32144
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32144
Author:   schlaile
Date: 2010-09-27 09:37:36 +0200 (Mon, 27 Sep 2010)

Log Message:
---
Fix: [#24006] writeffmpeg doesn't flush delayed frames - fix attached
and [#20843] FFmpeg H264 preset gives "Couldn't initialize codec"

Thanks to Leo Sutic for the patch!

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c

Modified: trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
===
--- trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
2010-09-27 07:01:08 UTC (rev 32143)
+++ trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
2010-09-27 07:37:36 UTC (rev 32144)
@@ -160,7 +160,7 @@
pkt.stream_index = audio_stream->index;
pkt.flags |= PKT_FLAG_KEY;
if (av_interleaved_write_frame(outfile, &pkt) != 0) {
-   // XXX error("Error writing audio packet");
+   fprintf(stderr, "Error writing audio packet!\n");
return -1;
}
return 0;
@@ -290,7 +290,9 @@
packet.data = video_buffer;
packet.size = outsize;
ret = av_interleaved_write_frame(outfile, &packet);
-   } else ret = 0;
+   } else {
+   ret = 0;
+   }
 
if (ret != 0) {
success= 0;
@@ -778,6 +780,69 @@
return 1;
 }
 
+/**
+ * Writes any delayed frames in the encoder. This function is called before 
+ * closing the encoder.
+ *
+ * 
+ * Since an encoder may use both past and future frames to predict 
+ * inter-frames (H.264 B-frames, for example), it can output the frames 
+ * in a different order from the one it was given.
+ * For example, when sending frames 1, 2, 3, 4 to the encoder, it may write
+ * them in the order 1, 4, 2, 3 - first the two frames used for predition, 
+ * and then the bidirectionally-predicted frames. What this means in practice 
+ * is that the encoder may not immediately produce one output frame for each 
+ * input frame. These delayed frames must be flushed before we close the 
+ * stream. We do this by calling avcodec_encode_video with NULL for the last 
+ * parameter.
+ * 
+ */
+void flush_ffmpeg(void)
+{
+   int outsize = 0;
+   int ret = 0;
+   
+   AVCodecContext* c = get_codec_from_stream(video_stream);
+   /* get the delayed frames */
+   while (1) {
+   AVPacket packet;
+   av_init_packet(&packet);
+   
+   outsize = avcodec_encode_video(c, video_buffer, 
video_buffersize, NULL);
+   if (outsize < 0) {
+   fprintf(stderr, "Error encoding delayed frame %d\n", 
outsize);
+   break;
+   }
+   if (outsize == 0) {
+   break;
+   }
+   if (c->coded_frame->pts != AV_NOPTS_VALUE) {
+#ifdef FFMPEG_CODEC_TIME_BASE
+   packet.pts = av_rescale_q(c->coded_frame->pts,
+ c->time_base,
+ video_stream->time_base);
+#else
+   packet.pts = c->coded_frame->pts;
+#endif
+   fprintf(stderr, "Video Frame PTS: %d\n", 
(int)packet.pts);
+   } else {
+   fprintf(stderr, "Video Frame PTS: not set\n");
+   }
+   if (c->coded_frame->key_frame) {
+   packet.flags |= PKT_FLAG_KEY;
+   }
+   packet.stream_index = video_stream->index;
+   packet.data = video_buffer;
+   packet.size = outsize;
+   ret = av_interleaved_write_frame(outfile, &packet);
+   if (ret != 0) {
+   fprintf(stderr, "Error writing delayed frame %d\n", 
ret);
+   break;
+   }
+   }
+   avcodec_flush_buffers(get_codec_from_stream(video_stream));
+}
+
 /* **
* public interface
** */
@@ -888,7 +953,6 @@
return success;
 }
 
-
 void end_ffmpeg(void)
 {
int i;
@@ -905,6 +969,11 @@
audio_mixdown_device = 0;
}

+   if (video_stream && get_codec_from_stream(video_stream)) {
+   fprintf(stderr, "Flushing delayed frames...\n");
+   flush_ffmpeg ();
+   }
+   
if (outfile) {
av_write_trailer(outfile);
}
@@ -913,8 +982,8 @@
 
if (video_stream && get_codec_from_stream(video_stream)) {
avcodec_close(get_codec_from_stream(video_stream));
+   printf("zero video stream %p\n", video_stream);
 

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31768] trunk/blender/source/blender/ editors/space_sequencer/sequencer_ops.c: This fixes: [#23260] VSE Marking with shortcuts doesn't work

2010-09-05 Thread Peter Schlaile
Revision: 31768
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31768
Author:   schlaile
Date: 2010-09-05 17:18:45 +0200 (Sun, 05 Sep 2010)

Log Message:
---
This fixes: [#23260] VSE Marking with shortcuts doesn't work

Modified Paths:
--
trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
===
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
2010-09-05 15:15:27 UTC (rev 31767)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
2010-09-05 15:18:45 UTC (rev 31768)
@@ -118,6 +118,12 @@
 
/* operators for sequence */
keymap= WM_keymap_find(keyconf, "Sequencer", SPACE_SEQ, 0);
+
+WM_keymap_add_item(keymap, "MARKER_OT_add", MKEY, KM_PRESS, KM_CTRL | 
KM_ALT, 0);
+WM_keymap_add_item(keymap, "MARKER_OT_move", GKEY, KM_PRESS, KM_CTRL, 
0);
+WM_keymap_add_item(keymap, "MARKER_OT_duplicate", DKEY, KM_PRESS, 
KM_CTRL | KM_SHIFT, 0);
+   WM_keymap_add_item(keymap, "MARKER_OT_delete", XKEY, KM_PRESS, 
KM_SHIFT, 0);
+ 
WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 
0, 0);

WM_keymap_add_item(keymap, "SEQUENCER_OT_select_all_toggle", AKEY, 
KM_PRESS, 0, 0);
@@ -243,9 +249,6 @@
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", HOMEKEY, 
KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 
0, 0);
 
-
-   keymap= WM_keymap_find(keyconf, "SequencerPreview", SPACE_SEQ, 0);
-
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_ghost_border", OKEY, 
KM_PRESS, 0, 0);
 
/* would prefer to use numpad keys for job */


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31760] trunk/blender/source/blender/ editors/transform/transform.h: This fixes: [#23672] If frame offset is too high the strip jumps forward

2010-09-04 Thread Peter Schlaile
Revision: 31760
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31760
Author:   schlaile
Date: 2010-09-04 22:55:31 +0200 (Sat, 04 Sep 2010)

Log Message:
---
This fixes: [#23672] If frame offset is too high the strip jumps forward 
when you try to move it.

Modified Paths:
--
trunk/blender/source/blender/editors/transform/transform.h

Modified: trunk/blender/source/blender/editors/transform/transform.h
===
--- trunk/blender/source/blender/editors/transform/transform.h  2010-09-04 
19:27:04 UTC (rev 31759)
+++ trunk/blender/source/blender/editors/transform/transform.h  2010-09-04 
20:55:31 UTC (rev 31760)
@@ -166,7 +166,7 @@
 typedef struct TransDataSeq {
struct Sequence *seq;
int flag;   /* a copy of seq->flag that may be modified for 
nested strips */
-   short start_offset; /* use this so we can have transform data at the 
strips start, but apply correctly to the start frame  */
+   int start_offset; /* use this so we can have transform data at the 
strips start, but apply correctly to the start frame  */
short sel_flag; /* one of SELECT, SEQ_LEFTSEL and SEQ_RIGHTSEL */
 
 } TransDataSeq;


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31174] trunk/blender/source/blender/ editors/render/render_internal.c: Bugfix: [#23149] Showing cache instead of rendering with the VSE

2010-08-08 Thread Peter Schlaile
Revision: 31174
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31174
Author:   schlaile
Date: 2010-08-08 18:47:58 +0200 (Sun, 08 Aug 2010)

Log Message:
---
Bugfix: [#23149] Showing cache instead of rendering with the VSE

Modified Paths:
--
trunk/blender/source/blender/editors/render/render_internal.c

Modified: trunk/blender/source/blender/editors/render/render_internal.c
===
--- trunk/blender/source/blender/editors/render/render_internal.c   
2010-08-08 16:22:29 UTC (rev 31173)
+++ trunk/blender/source/blender/editors/render/render_internal.c   
2010-08-08 16:47:58 UTC (rev 31174)
@@ -44,6 +44,7 @@
 #include "BKE_main.h"
 #include "BKE_multires.h"
 #include "BKE_report.h"
+#include "BKE_sequencer.h"
 
 #include "WM_api.h"
 #include "WM_types.h"
@@ -413,6 +414,12 @@
BKE_image_signal(ima, NULL, IMA_SIGNAL_FREE);
BKE_image_backup_render(scene, ima);
 
+   /* cleanup sequencer caches before starting user triggered render.
+  otherwise, invalidated cache entries can make their way into
+  the output rendering. We can't put that into RE_BlenderFrame,
+  since sequence rendering can call that recursively... (peter) */
+   seq_stripelem_cache_cleanup();
+
if(RNA_boolean_get(op->ptr, "animation"))
RE_BlenderAnim(re, mainp, scene, lay, scene->r.sfra, 
scene->r.efra, scene->r.frame_step, op->reports);
else
@@ -633,6 +640,12 @@
/* flush multires changes (for sculpt) */
multires_force_render_update(CTX_data_active_object(C));
 
+   /* cleanup sequencer caches before starting user triggered render.
+  otherwise, invalidated cache entries can make their way into
+  the output rendering. We can't put that into RE_BlenderFrame,
+  since sequence rendering can call that recursively... (peter) */
+   seq_stripelem_cache_cleanup();
+
/* get editmode results */
ED_object_exit_editmode(C, 0);  /* 0 = does not exit editmode */
 


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31172] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: This fixes:

2010-08-08 Thread Peter Schlaile
Revision: 31172
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31172
Author:   schlaile
Date: 2010-08-08 16:21:20 +0200 (Sun, 08 Aug 2010)

Log Message:
---
This fixes: 
[#20884] SEQUENCER EFFECT: Animating Speed Control Opacity has no effect
[#21308] SEQUENCER EFFECT: Glow ignores Opacity setting

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-08-08 
13:56:33 UTC (rev 31171)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-08-08 
14:21:20 UTC (rev 31172)
@@ -1460,8 +1460,7 @@
 
mul = seq->mul;
 
-   if(seq->blend_mode == SEQ_BLEND_REPLACE &&
-  !(seq->type & SEQ_EFFECT)) {
+   if(seq->blend_mode == SEQ_BLEND_REPLACE) {
mul *= seq->blend_opacity / 100.0;
}
 


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31171] trunk/blender/source/blender/ makesdna/DNA_sequence_types.h: == Sequencer ==

2010-08-08 Thread Peter Schlaile
Revision: 31171
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31171
Author:   schlaile
Date: 2010-08-08 15:56:33 +0200 (Sun, 08 Aug 2010)

Log Message:
---
== Sequencer ==

Forgotten in last commit: tstripelems removed from DNA.

Modified Paths:
--
trunk/blender/source/blender/makesdna/DNA_sequence_types.h

Modified: trunk/blender/source/blender/makesdna/DNA_sequence_types.h
===
--- trunk/blender/source/blender/makesdna/DNA_sequence_types.h  2010-08-08 
13:55:30 UTC (rev 31170)
+++ trunk/blender/source/blender/makesdna/DNA_sequence_types.h  2010-08-08 
13:56:33 UTC (rev 31171)
@@ -44,15 +44,6 @@
char name[80];
 } StripElem;
 
-typedef struct TStripElem {
-   struct ImBuf *ibuf;
-   struct ImBuf *ibuf_comp;
-   struct TStripElem *se1, *se2, *se3;
-   short ok;
-   short flag;
-   int nr;
-} TStripElem;
-
 typedef struct StripCrop {
int top;
int bottom;
@@ -95,11 +86,6 @@
StripCrop *crop;
StripTransform *transform;
StripColorBalance *color_balance;
-   TStripElem *tstripdata;
-   TStripElem *tstripdata_startstill;
-   TStripElem *tstripdata_endstill;
-   struct ImBuf *ibuf_startstill;
-   struct ImBuf *ibuf_endstill;
 } Strip;
 
 


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31170] trunk/blender/source/blender: == Sequencer ==

2010-08-08 Thread Peter Schlaile
Revision: 31170
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31170
Author:   schlaile
Date: 2010-08-08 15:55:30 +0200 (Sun, 08 Aug 2010)

Log Message:
---
== Sequencer ==

This fixes: [#23184] Problems with speed control effect strip in the 
video sequence editor

Also: got rid of tstripdata caches in DNA.

Fixes some potential crashes in SEQ_IMAGE rendering (s_elem wasn't 
checked for NULL).

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/seqeffects.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/blenloader/intern/readfile.c
trunk/blender/source/blender/editors/space_outliner/outliner.c

Modified: trunk/blender/source/blender/blenkernel/intern/seqeffects.c
===
--- trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2010-08-08 
13:45:16 UTC (rev 31169)
+++ trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2010-08-08 
13:55:30 UTC (rev 31170)
@@ -2968,22 +2968,11 @@
 
fallback_fac = 1.0;

-   /* if there is no IPO, try to make retiming easy by stretching the
+   /* if there is no fcurve, try to make retiming easy by stretching the
   strip */
-   // XXX old animation system - seq
if (!fcu && seq->seq1->enddisp != seq->seq1->start && seq->seq1->len != 
0) {
fallback_fac = (float) seq->seq1->len / 
(float) (seq->seq1->enddisp - seq->seq1->start);
-   /* FIXME: this strip stretching gets screwed by stripdata
-  handling one layer up.
-  
-  So it currently works by enlarging, never by shrinking!
-
-  (IPOs still work, if used correctly)
-   */
-   if (fallback_fac > 1.0) {
-   fallback_fac = 1.0;
-   }
}
 
if ((v->flags & SEQ_SPEED_INTEGRATE) != 0) {
@@ -3006,8 +2995,8 @@
 
cursor += facf;
 
-   if (cursor >= v->length) {
-   v->frameMap[cfra] = v->length - 1;
+   if (cursor >= seq->seq1->len) {
+   v->frameMap[cfra] = seq->seq1->len - 1;
} else {
v->frameMap[cfra] = cursor;
v->lastValidFrame = cfra;
@@ -3033,8 +3022,8 @@
facf = (float) cfra * fallback_fac;
}
facf *= v->globalSpeed;
-   if (facf >= v->length) {
-   facf = v->length - 1;
+   if (facf >= seq->seq1->len) {
+   facf = seq->seq1->len - 1;
} else {
v->lastValidFrame = cfra;
}

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-08-08 
13:45:16 UTC (rev 31169)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-08-08 
13:55:30 UTC (rev 31170)
@@ -899,7 +899,6 @@
 {
float nr;
 
-   if(seq->startdisp >cfra || seq->enddisp <= cfra) return -1;
if(seq->len == 0) return -1;
if(seq->flag&SEQ_REVERSE_FRAMES) {  
/*reverse frame in this sequence */
@@ -1993,7 +1992,7 @@
} else if(seq->type == SEQ_IMAGE) {
StripElem * s_elem = give_stripelem(seq, cfra);
 
-   if(ibuf == 0) {
+   if(ibuf == 0 && s_elem) {
BLI_join_dirfile(name, seq->strip->dir, s_elem->name);
BLI_path_abs(name, G.sce);
 
@@ -2004,7 +2003,8 @@
ibuf = copy_from_ibuf_still(seq,nr,seqrectx,seqrecty);
}
 
-   if (ibuf == 0 && (ibuf=IMB_loadiffname(name, IB_rect))) {
+   if (ibuf == 0 && s_elem && 
+   (ibuf = IMB_loadiffname(name, IB_rect))) {
/* we don't need both (speed reasons)! */
if (ibuf->rect_float && ibuf->rect)
imb_freerectImBuf(ibuf);
@@ -3541,12 +3541,6 @@
 
// XXX: add F-Curve duplication stuff?
 
-   seqn->strip->tstripdata = 0;
-   seqn->strip->tstripdata_startstill = 0;
-   seqn->strip->tstripdata_endstill = 0;
-   seqn->strip->ibuf_startstill = 0;
-   seqn->strip->ibuf_endstill = 0;
-
if (seq->strip->crop) {
seqn->strip->crop = MEM_dupallocN(seq->strip->crop);
}

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===
--- trunk/blender/source/blender/blenloader/int

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30722] trunk/blender/source/blender/ blenkernel: == Sequencer ==

2010-07-25 Thread Peter Schlaile
Revision: 30722
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30722
Author:   schlaile
Date: 2010-07-25 19:19:55 +0200 (Sun, 25 Jul 2010)

Log Message:
---
== Sequencer ==

Some cleanup on effects:

- converted interface to float cfra
- made effects return their own ImBufs, which has the following 
  advantages:
  * code in sequencer.c is a lot more readable.
  * multicam saves one memcpy of an image
  * prepares things for GPU-rendering

Modified Paths:
--
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/seqeffects.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-07-25 
14:40:18 UTC (rev 30721)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-07-25 
17:19:55 UTC (rev 30722)
@@ -107,15 +107,14 @@
0: no early out, 
1: out = ibuf1, 
2: out = ibuf2 */
-   int (*early_out)(struct Sequence *seq,
-float facf0, float facf1); 
+   int (*early_out)(struct Sequence *seq, float facf0, float facf1); 

/* stores the y-range of the effect IPO */
void (*store_icu_yrange)(struct Sequence * seq,
  short adrcode, float *ymin, float *ymax);

/* stores the default facf0 and facf1 if no IPO is present */
-   void (*get_default_fac)(struct Sequence *seq, int cfra,
+   void (*get_default_fac)(struct Sequence *seq, float cfra,
 float * facf0, float * facf1);

/* execute the effect
@@ -123,11 +122,12 @@
float-rects or byte-rects 
(mixed cases are handled one layer up...) */

-   void (*execute)(struct Scene *scene, struct Sequence *seq, int cfra,
-float facf0, float facf1,
-int x, int y, int preview_render_size,
-struct ImBuf *ibuf1, struct ImBuf *ibuf2,
-struct ImBuf *ibuf3, struct ImBuf *out);
+   struct ImBuf* (*execute)(
+   struct Scene *scene, struct Sequence *seq, float cfra,
+   float facf0, float facf1,
+   int x, int y, int preview_render_size,
+   struct ImBuf *ibuf1, struct ImBuf *ibuf2,
+   struct ImBuf *ibuf3);
 };
 
 /* * prototypes *** */
@@ -164,6 +164,10 @@
 // intern?
 void update_changed_seq_and_deps(struct Scene *scene, struct Sequence 
*changed_seq, int len_change, int ibuf_change);
 
+int input_have_to_preprocess(
+   struct Scene *scene, struct Sequence * seq, 
+   float cfra, int seqrectx, int seqrecty);
+
 /* seqcache.c */
 
 typedef enum {

Modified: trunk/blender/source/blender/blenkernel/intern/seqeffects.c
===
--- trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2010-07-25 
14:40:18 UTC (rev 30721)
+++ trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2010-07-25 
17:19:55 UTC (rev 30722)
@@ -67,7 +67,49 @@
GlowA=3
 };
 
+static struct ImBuf * prepare_effect_imbufs(
+   int x, int y,
+   struct ImBuf *ibuf1, struct ImBuf *ibuf2,
+   struct ImBuf *ibuf3)
+{
+   struct ImBuf * out;
 
+   if (!ibuf1 && !ibuf2 && !ibuf3) {
+   /* hmmm, global float option ? */
+   out = IMB_allocImBuf((short)x, (short)y, 32, IB_rect, 0);
+   } else if ((ibuf1 && ibuf1->rect_float) || 
+  (ibuf2 && ibuf2->rect_float) || 
+  (ibuf3 && ibuf3->rect_float)) {
+   /* if any inputs are rectfloat, output is float too */
+
+   out = IMB_allocImBuf((short)x, (short)y, 32, IB_rectfloat, 0);
+   } else {
+   out = IMB_allocImBuf((short)x, (short)y, 32, IB_rect, 0);
+   }
+   
+   if (ibuf1 && !ibuf1->rect_float && out->rect_float) {
+   IMB_float_from_rect_simple(ibuf1);
+   }
+   if (ibuf2 && !ibuf2->rect_float && out->rect_float) {
+   IMB_float_from_rect_simple(ibuf2);
+   }
+   if (ibuf3 && !ibuf3->rect_float && out->rect_float) {
+   IMB_float_from_rect_simple(ibuf3);
+   }
+   
+   if (ibuf1 && !ibuf1->rect && !out->rect_float) {
+   IMB_rect_from_float(ibuf1);
+   }
+   if (ibuf2 && !ibuf2->rect && !out->rect_float) {
+   IMB_rect_from_float(ibuf2);
+   }
+   if (ibuf3 && !ibuf3->rect && !out->rect_float) {
+   IMB_rect_from_float(ibuf3);
+   }
+   
+   return out;
+}
+
 /* **
PLUGINS
**

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30695] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: Bugfix: the sequencer core rewrite missed preprocessing of images with

2010-07-24 Thread Peter Schlaile
Revision: 30695
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30695
Author:   schlaile
Date: 2010-07-24 21:42:29 +0200 (Sat, 24 Jul 2010)

Log Message:
---
Bugfix: the sequencer core rewrite missed preprocessing of images with 
wrong resolution on input, which can create image distortion and crashes 
on render.

Thanks to Juan Pablo Bouza for spotting this one!

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-07-24 
18:32:57 UTC (rev 30694)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-07-24 
19:42:29 UTC (rev 30695)
@@ -2102,6 +2102,10 @@
(short)seqrectx, (short)seqrecty, 32, IB_rect, 0);
}
 
+   if (ibuf->x != seqrectx || ibuf->y != seqrecty) {
+   use_preprocess = TRUE;
+   }
+
if (use_preprocess) {
ibuf = input_preprocess(scene, seq, cfra, seqrectx,
seqrecty, ibuf);


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30687] trunk/blender/source/blender/ blenkernel/intern/seqcache.c: Bugfix: Small change to hash algorithm hinted by James Ruan on mailing list to

2010-07-24 Thread Peter Schlaile
Revision: 30687
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30687
Author:   schlaile
Date: 2010-07-24 10:47:14 +0200 (Sat, 24 Jul 2010)

Log Message:
---
Bugfix: Small change to hash algorithm hinted by James Ruan on mailing list to 
make hash distribution a little bit better.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/seqcache.c

Modified: trunk/blender/source/blender/blenkernel/intern/seqcache.c
===
--- trunk/blender/source/blender/blenkernel/intern/seqcache.c   2010-07-24 
07:18:31 UTC (rev 30686)
+++ trunk/blender/source/blender/blenkernel/intern/seqcache.c   2010-07-24 
08:47:14 UTC (rev 30687)
@@ -68,7 +68,7 @@
 
rval ^= *(unsigned int*) &key->cfra;
rval += key->type;
-   rval ^= (unsigned int) key->seq;
+   rval ^= ((unsigned int) key->seq) << 6;
 
return rval;
 }


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30664] trunk/blender/source/blender/ makesrna/intern/rna_sequencer.c: Bugfix: [#21479] Insert Keyframe in some Sequence strip properties does

2010-07-23 Thread Peter Schlaile
Revision: 30664
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30664
Author:   schlaile
Date: 2010-07-23 19:48:16 +0200 (Fri, 23 Jul 2010)

Log Message:
---
Bugfix: [#21479] Insert Keyframe in some Sequence strip properties does 
nothing

This fixes Crop and Transform the same hacky way like Color Balance.

Will do a real fix, if I find a clever way. (Those structures must 
provide a Sequence struct backpointer!!)

Cheers,
Peter

Modified Paths:
--
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-07-23 17:26:00 UTC (rev 30663)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-07-23 17:48:16 UTC (rev 30664)
@@ -253,6 +253,70 @@
seq->flag ^= SEQ_USE_CROP;
}
 }
+
+static int transform_seq_cmp_cb(Sequence *seq, void *arg_pt)
+{
+   struct { Sequence *seq; void *transform; } *data= arg_pt;
+
+   if(seq->strip && seq->strip->transform == data->transform) {
+   data->seq= seq;
+   return -1; /* done so bail out */
+   }
+   return 1;
+}
+
+static char *rna_SequenceTransform_path(PointerRNA *ptr)
+{
+   Scene *scene= ptr->id.data;
+   Editing *ed= seq_give_editing(scene, FALSE);
+   Sequence *seq;
+
+   struct { Sequence *seq; void *transform; } data;
+   data.seq= NULL;
+   data.transform= ptr->data;
+
+   /* irritating we need to search for our sequence! */
+   seqbase_recursive_apply(&ed->seqbase, transform_seq_cmp_cb, &data);
+   seq= data.seq;
+
+   if (seq && seq->name+2)
+   return 
BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].transform", seq->name+2);
+   else
+   return BLI_strdup("");
+}
+
+static int crop_seq_cmp_cb(Sequence *seq, void *arg_pt)
+{
+   struct { Sequence *seq; void *crop; } *data= arg_pt;
+
+   if(seq->strip && seq->strip->crop == data->crop) {
+   data->seq= seq;
+   return -1; /* done so bail out */
+   }
+   return 1;
+}
+
+static char *rna_SequenceCrop_path(PointerRNA *ptr)
+{
+   Scene *scene= ptr->id.data;
+   Editing *ed= seq_give_editing(scene, FALSE);
+   Sequence *seq;
+
+   struct { Sequence *seq; void *crop; } data;
+   data.seq= NULL;
+   data.crop= ptr->data;
+
+   /* irritating we need to search for our sequence! */
+   seqbase_recursive_apply(&ed->seqbase, crop_seq_cmp_cb, &data);
+   seq= data.seq;
+
+   if (seq && seq->name+2)
+   return 
BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].crop", seq->name+2);
+   else
+   return BLI_strdup("");
+}
+
+
 /* name functions that ignore the first two characters */
 static void rna_Sequence_name_get(PointerRNA *ptr, char *value)
 {
@@ -625,6 +689,8 @@
RNA_def_property_ui_text(prop, "Right", "");
RNA_def_property_ui_range(prop, 0, 4096, 1, 0);
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");
+
+   RNA_def_struct_path_func(srna, "rna_SequenceCrop_path");
 }
 
 static void rna_def_strip_transform(BlenderRNA *brna)
@@ -647,6 +713,9 @@
RNA_def_property_ui_text(prop, "Offset Y", "");
RNA_def_property_ui_range(prop, -4096, 4096, 1, 0);
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");
+
+   RNA_def_struct_path_func(srna, "rna_SequenceTransform_path");
+
 }
 
 static void rna_def_strip_proxy(BlenderRNA *brna)


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30662] trunk/blender/release/scripts/ui/ space_sequencer.py: Sequencer UI bugfix: translate / crop also work on effect output, UI was

2010-07-23 Thread Peter Schlaile
Revision: 30662
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30662
Author:   schlaile
Date: 2010-07-23 19:09:33 +0200 (Fri, 23 Jul 2010)

Log Message:
---
Sequencer UI bugfix: translate / crop also work on effect output, UI was 
missing

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-07-23 16:57:11 UTC 
(rev 30661)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-07-23 17:09:33 UTC 
(rev 30662)
@@ -486,7 +486,21 @@
 col.prop(strip, "use_effect_default_fade", "Default fade")
 if not strip.use_effect_default_fade:
 col.prop(strip, "effect_fader", text="Effect fader")
+
+layout.prop(strip, "use_translation", text="Image Offset:")
+if strip.use_translation:
+col = layout.column(align=True)
+col.prop(strip.transform, "offset_x", text="X")
+col.prop(strip.transform, "offset_y", text="Y")
 
+layout.prop(strip, "use_crop", text="Image Crop:")
+if strip.use_crop:
+col = layout.column(align=True)
+col.prop(strip.crop, "top")
+col.prop(strip.crop, "left")
+col.prop(strip.crop, "bottom")
+col.prop(strip.crop, "right")
+
 def draw_panel_transform(self, strip):
 layout = self.layout
 col = layout.column()


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30661] trunk/blender/source/blender: == Sequencer ==

2010-07-23 Thread Peter Schlaile
Revision: 30661
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30661
Author:   schlaile
Date: 2010-07-23 18:57:11 +0200 (Fri, 23 Jul 2010)

Log Message:
---
== Sequencer ==

This patch cleans up the sequencer core by replacing the caching system
(TStripElems) with a hash based system, which is:

a) a lot faster
b) a lot more readable
c) a lot more memory conserving

The new caching system is also a good building ground for

a) sub frame precision rendering (even on scene strips)
b) multi core rendering (threaded rendering is still disabled, but can 
   be extended now to arbitrary core numbers)

I tested the code on an extensive editing session today and had no 
crashes during 4 hours of editing. So I consider it very stable.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/blender.c
trunk/blender/source/blender/blenkernel/intern/seqeffects.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
trunk/blender/source/blender/render/intern/source/pipeline.c

Added Paths:
---
trunk/blender/source/blender/blenkernel/intern/seqcache.c

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-07-23 
16:50:25 UTC (rev 30660)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-07-23 
16:57:11 UTC (rev 30661)
@@ -164,6 +164,28 @@
 // intern?
 void update_changed_seq_and_deps(struct Scene *scene, struct Sequence 
*changed_seq, int len_change, int ibuf_change);
 
+/* seqcache.c */
+
+typedef enum {
+   SEQ_STRIPELEM_IBUF,
+   SEQ_STRIPELEM_IBUF_COMP,
+   SEQ_STRIPELEM_IBUF_STARTSTILL,
+   SEQ_STRIPELEM_IBUF_ENDSTILL
+} seq_stripelem_ibuf_t;
+
+void seq_stripelem_cache_init();
+void seq_stripelem_cache_destruct();
+
+void seq_stripelem_cache_cleanup();
+
+struct ImBuf * seq_stripelem_cache_get(
+   struct Sequence * seq, int rectx, int recty, 
+   float cfra, seq_stripelem_ibuf_t type);
+void seq_stripelem_cache_put(
+   struct Sequence * seq, int rectx, int recty, 
+   float cfra, seq_stripelem_ibuf_t type, struct ImBuf * nval);
+
+
 /* seqeffects.c */
 // intern?
 struct SeqEffectHandle get_sequence_blend(struct Sequence *seq);

Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===
--- trunk/blender/source/blender/blenkernel/intern/blender.c2010-07-23 
16:50:25 UTC (rev 30660)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c2010-07-23 
16:57:11 UTC (rev 30661)
@@ -102,6 +102,7 @@
BKE_spacetypes_free();  /* after free main, it uses space 
callbacks */

IMB_exit();
+   seq_stripelem_cache_destruct();

free_nodesystem();  
 }

Added: trunk/blender/source/blender/blenkernel/intern/seqcache.c
===
--- trunk/blender/source/blender/blenkernel/intern/seqcache.c   
(rev 0)
+++ trunk/blender/source/blender/blenkernel/intern/seqcache.c   2010-07-23 
16:57:11 UTC (rev 30661)
@@ -0,0 +1,267 @@
+/**
+* $Id: seqcache.c 29923 2010-07-04 10:51:10Z schlaile $
+ *
+ * * BEGIN GPL LICENSE BLOCK *
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Peter Schlaile  2010
+ *
+ * * END GPL LICENSE BLOCK *
+ */
+
+#include 
+#include 
+#include 
+#include 
+
+#include "MEM_guardedalloc.h"
+#include "MEM_CacheLimiterC-Api.h"
+
+#include "DNA_sequence_types.h"
+#include "BKE_sequencer.h"
+#include "BLI_ghash.h"
+#include "BLI_mempool.h"
+#include 
+
+#include "IMB_imbuf.h"
+#include "IMB_imbuf_types.h"
+
+typedef struct seqCacheKey 
+{
+   struct Sequence * seq;
+   int rectx;
+   int recty;
+   float cfra;
+   seq_stripelem_ibuf_t type;
+} seqCacheKey;
+
+typedef struct seqCacheEntry
+{
+   ImBuf * ibuf;
+   MEM_CacheLimiterHandleC * c_handl

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30636] trunk/blender/source/blender/ makesrna/intern/CMakeLists.txt: Broke cmake on Userpref patch...

2010-07-22 Thread Peter Schlaile
Revision: 30636
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30636
Author:   schlaile
Date: 2010-07-22 17:16:20 +0200 (Thu, 22 Jul 2010)

Log Message:
---
Broke cmake on Userpref patch... sorry.

Modified Paths:
--
trunk/blender/source/blender/makesrna/intern/CMakeLists.txt

Modified: trunk/blender/source/blender/makesrna/intern/CMakeLists.txt
===
--- trunk/blender/source/blender/makesrna/intern/CMakeLists.txt 2010-07-22 
15:09:41 UTC (rev 30635)
+++ trunk/blender/source/blender/makesrna/intern/CMakeLists.txt 2010-07-22 
15:16:20 UTC (rev 30636)
@@ -42,6 +42,7 @@
 INCLUDE_DIRECTORIES(
../../../../intern/audaspace/intern
../../../../intern/guardedalloc
+   ../../../../intern/memutil
..
../../makesdna
../../blenkernel


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30634] trunk/blender/source/blender/ makesrna: Bugfix: Mem cache limit wasn't updated, when changed in userpref.

2010-07-22 Thread Peter Schlaile
Revision: 30634
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30634
Author:   schlaile
Date: 2010-07-22 16:02:05 +0200 (Thu, 22 Jul 2010)

Log Message:
---
Bugfix: Mem cache limit wasn't updated, when changed in userpref.

Modified Paths:
--
trunk/blender/source/blender/makesrna/SConscript
trunk/blender/source/blender/makesrna/intern/rna_userdef.c

Modified: trunk/blender/source/blender/makesrna/SConscript
===
--- trunk/blender/source/blender/makesrna/SConscript2010-07-22 12:51:04 UTC 
(rev 30633)
+++ trunk/blender/source/blender/makesrna/SConscript2010-07-22 14:02:05 UTC 
(rev 30634)
@@ -6,7 +6,7 @@
 o = SConscript('intern/SConscript')
 objs += o
 
-incs = '#/intern/guardedalloc #/intern/audaspace/intern ../blenkernel 
../blenlib ../makesdna intern .'
+incs = '#/intern/guardedalloc #/intern/memutil #/intern/audaspace/intern 
../blenkernel ../blenlib ../makesdna intern .'
 incs += ' ../windowmanager ../editors/include ../gpu ../imbuf ../ikplugin'
 incs += ' ../render/extern/include'
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_userdef.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_userdef.c  2010-07-22 
12:51:04 UTC (rev 30633)
+++ trunk/blender/source/blender/makesrna/intern/rna_userdef.c  2010-07-22 
14:02:05 UTC (rev 30634)
@@ -51,6 +51,7 @@
 #include "BKE_global.h"
 
 #include "MEM_guardedalloc.h"
+#include "MEM_CacheLimiterC-Api.h"
 
 static void rna_userdef_update(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
@@ -171,6 +172,11 @@
sound_init(bmain);
 }
 
+static void rna_Userdef_memcache_update(Main *bmain, Scene *scene, PointerRNA 
*ptr)
+{
+   MEM_CacheLimiter_set_maximum(U.memcachelimit * 1024 * 1024);
+}
+
 static void rna_UserDef_weight_color_update(Main *bmain, Scene *scene, 
PointerRNA *ptr)
 {
Object *ob;
@@ -2477,6 +2483,7 @@
RNA_def_property_int_sdna(prop, NULL, "memcachelimit");
RNA_def_property_range(prop, 0, (sizeof(void *) ==8)? 1024*16: 1024); 
/* 32 bit 2 GB, 64 bit 16 GB */
RNA_def_property_ui_text(prop, "Memory Cache Limit", "Memory cache 
limit in sequencer (megabytes)");
+   RNA_def_property_update(prop, 0, "rna_Userdef_memcache_update");
 
prop= RNA_def_property(srna, "frame_server_port", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "frameserverport");


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30620] trunk/blender/source/blender/ makesrna/intern/rna_sequencer.c: == Sequencer ==

2010-07-22 Thread Peter Schlaile
Revision: 30620
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30620
Author:   schlaile
Date: 2010-07-22 10:57:23 +0200 (Thu, 22 Jul 2010)

Log Message:
---
== Sequencer ==

Bugfix: toggling deinterlace properly updates movie files now

Modified Paths:
--
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-07-22 07:23:41 UTC (rev 30619)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-07-22 08:57:23 UTC (rev 30620)
@@ -466,6 +466,16 @@
seq_update_sound(scene, ptr->data);
 }
 
+static void rna_Sequence_update_reopen_files(Main *bmain, Scene *scene, 
PointerRNA *ptr)
+{
+   Editing *ed= seq_give_editing(scene, FALSE);
+
+   free_imbuf_seq(scene, &ed->seqbase, FALSE, FALSE);
+
+   if(RNA_struct_is_a(ptr->type, &RNA_SoundSequence))
+   seq_update_sound(scene, ptr->data);
+}
+
 static void rna_Sequence_mute_update(Main *bmain, Scene *scene, PointerRNA 
*ptr)
 {
Editing *ed= seq_give_editing(scene, FALSE);
@@ -960,6 +970,7 @@
prop= RNA_def_property(srna, "de_interlace", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_FILTERY);
RNA_def_property_ui_text(prop, "De-Interlace", "For video movies to 
remove fields");
+   RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update_reopen_files");
 
prop= RNA_def_property(srna, "premultiply", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_MAKE_PREMUL);


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30537] trunk/blender/source/blender/ editors/datafiles/SConscript: Fixed linking order for datafiles in scons ( introduced with Rev 30531)

2010-07-20 Thread Peter Schlaile
Revision: 30537
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30537
Author:   schlaile
Date: 2010-07-20 15:15:25 +0200 (Tue, 20 Jul 2010)

Log Message:
---
Fixed linking order for datafiles in scons (introduced with Rev 30531)
(blenkernel references the icon data files and had lower priority...)

Revision Links:
--

http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30531

Modified Paths:
--
trunk/blender/source/blender/editors/datafiles/SConscript

Modified: trunk/blender/source/blender/editors/datafiles/SConscript
===
--- trunk/blender/source/blender/editors/datafiles/SConscript   2010-07-20 
12:37:42 UTC (rev 30536)
+++ trunk/blender/source/blender/editors/datafiles/SConscript   2010-07-20 
13:15:25 UTC (rev 30537)
@@ -6,4 +6,4 @@
 incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
 incs += ' #/intern/guardedalloc'
 
-env.BlenderLib ( 'bf_editor_datafiles', sources, Split(incs), [], 
libtype=['core'], priority=[135] )
+env.BlenderLib ( 'bf_editor_datafiles', sources, Split(incs), [], 
libtype=['core'], priority=[235] )


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30534] trunk/blender/source/blender: == Sequencer ==

2010-07-20 Thread Peter Schlaile
Revision: 30534
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30534
Author:   schlaile
Date: 2010-07-20 14:22:45 +0200 (Tue, 20 Jul 2010)

Log Message:
---
== Sequencer ==

Cutting effect strips (esp multicam) didn't free endstill tstripdata.
Doesn't sound like much of a problem, but those can get big on large 
timelines. So every cut eating 3 MB of memory doesn't leave much room 
for editing decisions :)

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-07-20 
12:20:55 UTC (rev 30533)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-07-20 
12:22:45 UTC (rev 30534)
@@ -1142,7 +1142,7 @@
Strip * s = seq->strip;
if (cfra < seq->start) {
se = s->tstripdata_startstill;
-   if (seq->startstill > s->startstill) {
+   if (seq->startstill != s->startstill) {
free_tstripdata(s->startstill, 
s->tstripdata_startstill);
se = 0;
@@ -1159,7 +1159,7 @@
 
} else if (cfra > seq->start + seq->len-1) {
se = s->tstripdata_endstill;
-   if (seq->endstill > s->endstill) {
+   if (seq->endstill != s->endstill) {
free_tstripdata(s->endstill, 
s->tstripdata_endstill);
se = 0;

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c   
2010-07-20 12:20:55 UTC (rev 30533)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c   
2010-07-20 12:22:45 UTC (rev 30534)
@@ -789,6 +789,7 @@

reload_sequence_new_file(scene, seq, FALSE);
calc_sequence(scene, seq);
+   new_tstripdata(seq); 
 
if (!skip_dup) {
/* Duplicate AFTER the first change */
@@ -828,6 +829,7 @@

reload_sequence_new_file(scene, seqn, FALSE);
calc_sequence(scene, seqn);
+   new_tstripdata(seqn);
}
return seqn;
 }
@@ -878,6 +880,7 @@
}

calc_sequence(scene, seq);
+   new_tstripdata(seq);
 
if (!skip_dup) {
/* Duplicate AFTER the first change */
@@ -913,6 +916,7 @@
}

calc_sequence(scene, seqn);
+   new_tstripdata(seqn);
}
return seqn;
 }


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30510] trunk/blender/source/blender: == Sequencer ==

2010-07-19 Thread Peter Schlaile
Revision: 30510
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30510
Author:   schlaile
Date: 2010-07-19 22:01:18 +0200 (Mon, 19 Jul 2010)

Log Message:
---
== Sequencer ==

Bugfix: free_imbuf_seq() was closing IMB anim handles on nearly every 
change of RNA variables. This can be *very* slow, if you twiddle with 
parameters during playback. Especially multicam editing...

Now: we close IMB anim handles only on refresh_all() and filepath 
changes.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
trunk/blender/source/blender/render/intern/source/pipeline.c

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-07-19 
19:57:28 UTC (rev 30509)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-07-19 
20:01:18 UTC (rev 30510)
@@ -191,13 +191,13 @@
 int shuffle_seq(struct ListBase * seqbasep, struct Sequence *test, struct 
Scene *evil_scene);
 int shuffle_seq_time(ListBase * seqbasep, struct Scene *evil_scene);
 int seqbase_isolated_sel_check(struct ListBase *seqbase);
-void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int 
check_mem_usage);
+void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int 
check_mem_usage, int keep_file_handles);
 struct Sequence*seq_dupli_recursive(struct Scene *scene, struct 
Sequence * seq, int dupe_flag);
 int seq_swap(struct Sequence *seq_a, struct Sequence *seq_b);
 
 void seq_update_sound(struct Scene* scene, struct Sequence *seq);
 void seq_update_muting(struct Scene* scene, struct Editing *ed);
-void seqbase_sound_reload(Scene *scene, ListBase *seqbase);
+void seqbase_sound_reload(struct Scene *scene, ListBase *seqbase);
 void seqbase_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq);
 void seqbase_dupli_recursive(struct Scene *scene, ListBase *nseqbase, ListBase 
*seqbase, int dupe_flag);
 

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-07-19 
19:57:28 UTC (rev 30509)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-07-19 
20:01:18 UTC (rev 30510)
@@ -3267,64 +3267,13 @@
}
 }
 
-#if 0
-static void free_imbuf_seq_except(Scene *scene, int cfra)
+void free_imbuf_seq(Scene *scene, ListBase * seqbase, int check_mem_usage,
+   int keep_file_handles)
 {
-   Editing *ed= seq_give_editing(scene, FALSE);
Sequence *seq;
TStripElem *se;
int a;
 
-   if(ed==NULL) return;
-
-   SEQ_BEGIN(ed, seq) {
-   if(seq->strip) {
-   TStripElem * curelem = give_tstripelem(seq, cfra);
-
-   for(a = 0, se = seq->strip->tstripdata; 
-   a < seq->strip->len && se; a++, se++) {
-   if(se != curelem) {
-   free_imbuf_strip_elem(se);
-   }
-   }
-   for(a = 0, se = seq->strip->tstripdata_startstill;
-   a < seq->strip->startstill && se; a++, se++) {
-   if(se != curelem) {
-   free_imbuf_strip_elem(se);
-   }
-   }
-   for(a = 0, se = seq->strip->tstripdata_endstill;
-   a < seq->strip->endstill && se; a++, se++) {
-   if(se != curelem) {
-   free_imbuf_strip_elem(se);
-   }
-   }
-   if(seq->strip->ibuf_startstill) {
-   IMB_freeImBuf(seq->strip->ibuf_startstill);
-   seq->strip->ibuf_startstill = 0;
-   }
-
-   if(seq->strip->ibuf_endstill) {
-   IMB_freeImBuf(seq->strip->ibuf_endstill);
-   seq->strip->ibuf_endstill = 0;
-   }
-
-   if(seq->type==SEQ_MOVIE)
-   if(seq->startdisp > cfra || seq->enddisp < cfra)
-   free_anim_seq(seq);
-   free_proxy_seq(seq);
-   }
-   }
-   SEQ_END
-}
-#endif
-
-void free_imbuf_seq(Scene *scene, ListBase * seqbase, int check_mem_usage)
-{
-   Sequence *seq;
-   TStripElem *se;
-   int

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30507] trunk/blender/source/blender/ editors/space_sequencer/sequencer_ops.c: == Sequencer ==

2010-07-19 Thread Peter Schlaile
Revision: 30507
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30507
Author:   schlaile
Date: 2010-07-19 19:47:58 +0200 (Mon, 19 Jul 2010)

Log Message:
---
== Sequencer ==

Add keyboard shortcuts for multicam editing 
(hit 1-0 (regular, not keypad!) to cut to camera 1-10 during playback)

Modified Paths:
--
trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
===
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
2010-07-19 17:45:03 UTC (rev 30506)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
2010-07-19 17:47:58 UTC (rev 30507)
@@ -167,8 +167,19 @@
RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", 
RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_RIGHT);

WM_keymap_add_item(keymap, "SEQUENCER_OT_snap", SKEY, KM_PRESS, 
KM_SHIFT, 0);
-   
 
+   /* multicam editing keyboard layout, switch to camera 1-10 using
+  regular number keys */
+   {
+   int keys[] = { ONEKEY, TWOKEY, THREEKEY, FOURKEY, FIVEKEY,
+  SIXKEY, SEVENKEY, EIGHTKEY, NINEKEY, ZEROKEY };
+   int i;
+
+   for (i = 1; i <= 10; i++) {
+   RNA_enum_set(WM_keymap_add_item(keymap, 
"SEQUENCER_OT_cut_multicam", keys[i-1], KM_PRESS, 0, 0)->ptr, "camera", i);
+   }
+   }
+
/* Mouse selection, a bit verbose :/ */
WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, 
KM_PRESS, 0, 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_select", 
SELECTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", 1);


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30505] trunk/blender/release/scripts/op/ sequencer.py: == Sequencer ==

2010-07-19 Thread Peter Schlaile
Revision: 30505
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30505
Author:   schlaile
Date: 2010-07-19 19:39:25 +0200 (Mon, 19 Jul 2010)

Log Message:
---
== Sequencer ==

In multicam editing, do not cut to non existent cams (above multicam 
track)

Modified Paths:
--
trunk/blender/release/scripts/op/sequencer.py

Modified: trunk/blender/release/scripts/op/sequencer.py
===
--- trunk/blender/release/scripts/op/sequencer.py   2010-07-19 17:38:20 UTC 
(rev 30504)
+++ trunk/blender/release/scripts/op/sequencer.py   2010-07-19 17:39:25 UTC 
(rev 30505)
@@ -94,7 +94,7 @@
 
 s = context.scene.sequence_editor.active_strip
 
-if s.multicam_source == camera:
+if s.multicam_source == camera or camera >= s.channel:
 return {'FINISHED'}
 
 if not s.select:


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30504] trunk/blender/release/scripts/ui/ space_sequencer.py: == Sequencer ==

2010-07-19 Thread Peter Schlaile
Revision: 30504
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30504
Author:   schlaile
Date: 2010-07-19 19:38:20 +0200 (Mon, 19 Jul 2010)

Log Message:
---
== Sequencer ==

Made mpeg_preseek accessible again.

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-07-19 17:35:02 UTC 
(rev 30503)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-07-19 17:38:20 UTC 
(rev 30504)
@@ -589,6 +589,7 @@
 col.label(text="Path:")
 col = split.column()
 col.prop(strip, "filepath", text="")
+col.prop(strip, "mpeg_preseek", text="MPEG Preseek")
 
 
 class SEQUENCER_PT_input_image(SEQUENCER_PT_input):


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30502] trunk/blender/source/blender/imbuf /intern/anim.c: == FFMPEG ==

2010-07-19 Thread Peter Schlaile
Revision: 30502
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30502
Author:   schlaile
Date: 2010-07-19 18:27:31 +0200 (Mon, 19 Jul 2010)

Log Message:
---
== FFMPEG ==

This is a fix for the following issues in ffmpeg movie reader:

* mpeg transport stream seeking (HDV) failed completely, since ffmpeg
  doesn't want to seek by timestamp (those aren't guaranteed to be 
  strictly monotonic within those file formats)

  We therefore seek by byte and use the bitrate in those cases. 
  This isn't a real fix,
  I will add a seperate index building process, soon, so that we can
  finally seek by timecode properly (optionally with "free run timecode"
  on consumer video camcorders, stay tuned :) )

* Recent versions of ffmpeg do set the ALPHA channel to 0xff properly,
  so we test the first pixel for proper ALPHA and then workaround
  optionally.

Modified Paths:
--
trunk/blender/source/blender/imbuf/intern/anim.c

Modified: trunk/blender/source/blender/imbuf/intern/anim.c
===
--- trunk/blender/source/blender/imbuf/intern/anim.c2010-07-19 15:39:12 UTC 
(rev 30501)
+++ trunk/blender/source/blender/imbuf/intern/anim.c2010-07-19 16:27:31 UTC 
(rev 30502)
@@ -685,6 +685,116 @@
return (0);
 }
 
+static void ffmpeg_postprocess(struct anim * anim, ImBuf * ibuf,
+  int * filter_y)
+{
+   AVFrame * input = anim->pFrame;
+
+   /* This means the data wasnt read properly, 
+  this check stops crashing */
+   if (input->data[0]==0 && input->data[1]==0 
+   && input->data[2]==0 && input->data[3]==0){
+   fprintf(stderr, "ffmpeg_fetchibuf: "
+   "data not read properly...\n");
+   return;
+   }
+
+   if (anim->ib_flags & IB_animdeinterlace) {
+   if (avpicture_deinterlace(
+   (AVPicture*) 
+   anim->pFrameDeinterlaced,
+   (const AVPicture*)
+   anim->pFrame,
+   anim->pCodecCtx->pix_fmt,
+   anim->pCodecCtx->width,
+   anim->pCodecCtx->height)
+   < 0) {
+   *filter_y = 1;
+   } else {
+   input = anim->pFrameDeinterlaced;
+   }
+   }
+   
+   if (ENDIAN_ORDER == B_ENDIAN) {
+   int * dstStride   = anim->pFrameRGB->linesize;
+   uint8_t** dst = anim->pFrameRGB->data;
+   int dstStride2[4] = { dstStride[0], 0, 0, 0 };
+   uint8_t* dst2[4]  = { dst[0], 0, 0, 0 };
+   int x,y,h,w;
+   unsigned char* bottom;
+   unsigned char* top;
+   
+   sws_scale(anim->img_convert_ctx,
+ (const uint8_t * const *)input->data,
+ input->linesize,
+ 0,
+ anim->pCodecCtx->height,
+ dst2,
+ dstStride2);
+   
+   /* workaround: sws_scale bug
+  sets alpha = 0 and compensate
+  for altivec-bugs and flipy... */
+   
+   bottom = (unsigned char*) ibuf->rect;
+   top = bottom + ibuf->x * (ibuf->y-1) * 4;
+   
+   h = (ibuf->y + 1) / 2;
+   w = ibuf->x;
+   
+   for (y = 0; y < h; y++) {
+   unsigned char tmp[4];
+   unsigned int * tmp_l =
+   (unsigned int*) tmp;
+   tmp[3] = 0xff;
+   
+   for (x = 0; x < w; x++) {
+   tmp[0] = bottom[0];
+   tmp[1] = bottom[1];
+   tmp[2] = bottom[2];
+   
+   bottom[0] = top[0];
+   bottom[1] = top[1];
+   bottom[2] = top[2];
+   bottom[3] = 0xff;
+   
+   *(unsigned int*) top = *tmp_l;
+   
+   bottom +=4;
+   top += 4;
+   }
+   top -= 8 * w;
+   }
+   } else {
+   int * dstStride   = anim->pFrameRGB->linesize;
+   uint8_t** dst = anim->pFrameRGB->data;
+   int dstStride2[4] = { -dstStride[0], 0, 0, 0 };
+   uint8_t* dst2[4]  = { dst[0] + (anim->y - 1)*dstStride[0],
+ 0, 0, 0 };
+   int i;
+   unsigned char* r;
+   
+  

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29909] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: == Sequencer ==

2010-07-03 Thread Peter Schlaile
Revision: 29909
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29909
Author:   schlaile
Date: 2010-07-03 23:13:08 +0200 (Sat, 03 Jul 2010)

Log Message:
---
== Sequencer ==

This fixes:
[#22722] Removing a sequence strip doesnt remove assosiated fcurves

by using the same hack that is used for moving curve-data along with the 
strips on grab.

Should be cleaned up (both functions!) by making sequencer-strips 
finally true IDs.

Until that happens, there is only an more or less ugly way of doing 
that.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-07-03 
20:47:03 UTC (rev 29908)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-07-03 
21:13:08 UTC (rev 29909)
@@ -213,6 +213,8 @@
MEM_freeN(strip);
 }
 
+static void seq_free_animdata(Scene *scene, Sequence *seq);
+
 void seq_free_sequence(Scene *scene, Sequence *seq)
 {
if(seq->strip) seq_free_strip(seq->strip);
@@ -236,6 +238,8 @@
sound_remove_scene_sound(scene, seq->scene_sound);
}
 
+   seq_free_animdata(scene, seq);
+
MEM_freeN(seq);
 }
 
@@ -3842,7 +3846,34 @@
}
 }
 
+/* XXX - hackish function needed to remove all fcurves belonging to a 
sequencer strip */
+static void seq_free_animdata(Scene *scene, Sequence *seq)
+{
+   char str[32];
+   FCurve *fcu;
 
+   if(scene->adt==NULL || scene->adt->action==NULL)
+   return;
+
+   sprintf(str, "[\"%s\"]", seq->name+2);
+
+   fcu= scene->adt->action->curves.first; 
+
+   while (fcu) {
+   if(strstr(fcu->rna_path, "sequence_editor.sequences_all[") && 
strstr(fcu->rna_path, str)) {
+   FCurve *next_fcu = fcu->next;
+   
+   BLI_remlink(&scene->adt->action->curves, fcu);
+   free_fcurve(fcu);
+
+   fcu = next_fcu;
+   } else {
+   fcu = fcu->next;
+   }
+   }
+}
+
+
 Sequence *get_seq_by_name(ListBase *seqbase, const char *name, int recursive)
 {
Sequence *iseq=NULL;


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29630] trunk/blender: == Sequencer ==

2010-06-22 Thread Peter Schlaile
Revision: 29630
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29630
Author:   schlaile
Date: 2010-06-22 23:09:50 +0200 (Tue, 22 Jun 2010)

Log Message:
---
== Sequencer ==

Removed "frame_locked"-flag from sequencer completely, since it doesn't 
work any more in Blender 2.5. (All IPOs are frame-locked now anyways.)

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/blenkernel/intern/seqeffects.c
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-06-22 20:04:42 UTC 
(rev 29629)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-06-22 21:09:50 UTC 
(rev 29630)
@@ -351,7 +351,6 @@
 
 row = layout.row()
 row.prop(strip, "lock")
-row.prop(strip, "frame_locked", text="Frame Lock")
 
 col = layout.column()
 col.enabled = not strip.lock

Modified: trunk/blender/source/blender/blenkernel/intern/seqeffects.c
===
--- trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2010-06-22 
20:04:42 UTC (rev 29629)
+++ trunk/blender/source/blender/blenkernel/intern/seqeffects.c 2010-06-22 
21:09:50 UTC (rev 29630)
@@ -2802,7 +2802,7 @@
v = (SpeedControlVars *)seq->effectdata;
v->globalSpeed = 1.0;
v->frameMap = 0;
-   v->flags = SEQ_SPEED_COMPRESS_IPO_Y;
+   v->flags = 0;
v->length = 0;
 }
 
@@ -2925,14 +2925,8 @@
 
for (cfra = 1; cfra < v->length; cfra++) {
if(fcu) {
-   if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) {
-   ctime = seq->startdisp + cfra;
-   div = 1.0;
-   } else {
-   ctime= cfra;
-   div= v->length / 100.0f;
-   if(div==0.0) return;
-   }
+   ctime = seq->startdisp + cfra;
+   div = 1.0;

facf = evaluate_fcurve(fcu, ctime/div);
} else {
@@ -2956,14 +2950,8 @@
for (cfra = 0; cfra < v->length; cfra++) {
 
if(fcu) {
-   if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) {
-   ctime = seq->startdisp + cfra;
-   div = 1.0;
-   } else {
-   ctime= cfra;
-   div= v->length / 100.0f;
-   if(div==0.0) return;
-   }
+   ctime = seq->startdisp + cfra;
+   div = 1.0;

facf = evaluate_fcurve(fcu, ctime / div);
if (v->flags & SEQ_SPEED_COMPRESS_IPO_Y) {

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-06-22 20:04:42 UTC (rev 29629)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-06-22 21:09:50 UTC (rev 29630)
@@ -706,11 +706,6 @@
RNA_def_property_ui_text(prop, "Mute", "");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_mute_update");
 
-   prop= RNA_def_property(srna, "frame_locked", PROP_BOOLEAN, PROP_NONE);
-   RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_IPO_FRAME_LOCKED);
-   RNA_def_property_ui_text(prop, "Frame Locked", "Lock the animation 
curve to the global frame counter");
-   RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");
-
prop= RNA_def_property(srna, "lock", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_LOCK);
RNA_def_property_ui_text(prop, "Lock", "Lock strip so that it can't be 
transformed");


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29283] trunk/blender/source/blender/ editors/space_sequencer/sequencer_draw.c: == Sequencer ==

2010-06-06 Thread Peter Schlaile
Revision: 29283
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29283
Author:   schlaile
Date: 2010-06-06 22:19:22 +0200 (Sun, 06 Jun 2010)

Log Message:
---
== Sequencer ==

Applied: [#22490] Add Passepartout to Sequence Editor for frame ranges
Thanks to Keith Boshoff  (wahooney) for the patch!

Modified Paths:
--
trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
===
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c   
2010-06-06 20:00:44 UTC (rev 29282)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c   
2010-06-06 20:19:22 UTC (rev 29283)
@@ -932,6 +932,33 @@
draw_seq_strip(scene, ar, sseq, last_seq, 120, pixelx);
 }
 
+static void seq_draw_sfra_efra(const bContext *C, SpaceSeq *sseq, ARegion *ar)
+{
+   View2D *v2d= UI_view2d_fromcontext(C);
+   Scene *scene= CTX_data_scene(C);
+   
+   glEnable(GL_BLEND);
+   
+   /* draw darkened area outside of active timeline 
+* frame range used is preview range or scene range */
+   UI_ThemeColorShadeAlpha(TH_BACK, -25, -100);
+
+   if (PSFRA < PEFRA) {
+   glRectf(v2d->cur.xmin, v2d->cur.ymin, (float)PSFRA, 
v2d->cur.ymax);
+   glRectf((float)PEFRA, v2d->cur.ymin, v2d->cur.xmax, 
v2d->cur.ymax);
+   }
+   else {
+   glRectf(v2d->cur.xmin, v2d->cur.ymin, v2d->cur.xmax, 
v2d->cur.ymax);
+   }
+
+   UI_ThemeColorShade(TH_BACK, -60);
+   /* thin lines where the actual frames are */
+   fdrawline((float)PSFRA, v2d->cur.ymin, (float)PSFRA, v2d->cur.ymax);
+   fdrawline((float)PEFRA, v2d->cur.ymin, (float)PEFRA, v2d->cur.ymax);
+   
+   glDisable(GL_BLEND);
+}
+
 /* Draw Timeline/Strip Editor Mode for Sequencer */
 void draw_timeline_seq(const bContext *C, ARegion *ar)
 {
@@ -965,8 +992,9 @@

/* regular grid-pattern over the rest of the view (i.e. frame grid 
lines) */
UI_view2d_constant_grid_draw(C, v2d);
-   
 
+   seq_draw_sfra_efra(C, sseq, ar);
+
/* sequence strips (if there is data available to be drawn) */
if (ed) {
/* draw the data */


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29092] trunk/blender: == Sequencer ==

2010-05-30 Thread Peter Schlaile
Revision: 29092
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29092
Author:   schlaile
Date: 2010-05-30 23:17:59 +0200 (Sun, 30 May 2010)

Log Message:
---
== Sequencer ==

This makes volume range larger and adds an additional attenuation-variable to 
RNA,
which makes volume-changes in dezibel units possible.

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-05-30 20:48:09 UTC 
(rev 29091)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-05-30 21:17:59 UTC 
(rev 29092)
@@ -457,7 +457,7 @@
 row = layout.row(align=True)
 sub = row.row()
 sub.scale_x = 2.0
-   
+  
 if not context.screen.animation_playing:
 sub.operator("screen.animation_play", text="", icon='PLAY')
 else:
@@ -666,6 +666,7 @@
 row.prop(strip.sound, "caching")
 
 layout.prop(strip, "volume")
+layout.prop(strip, "attenuation")
 
 col = layout.column(align=True)
 col.label(text="Trim Duration:")

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-05-30 20:48:09 UTC (rev 29091)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-05-30 21:17:59 UTC (rev 29092)
@@ -40,9 +40,20 @@
 #include "MEM_guardedalloc.h"
 
 #include "WM_types.h"
+#include "BLI_math.h"
 
 #ifdef RNA_RUNTIME
 
+static float to_dB(float x)
+{
+   return logf(x * x + 1e-30f) * 4.34294480f;
+}
+
+static float from_dB(float x)
+{
+   return expf(x * 0.11512925f);
+}
+
 /* build a temp referene to the parent */
 static void meta_tmp_ref(Sequence *seq_par, Sequence *seq)
 {
@@ -393,7 +404,21 @@
return strlen(path)+1;
 }
 
+static float rna_Sequence_attenuation_get(PointerRNA *ptr)
+{
+   Sequence *seq= (Sequence*)(ptr->data);
 
+   return to_dB(seq->volume);
+}
+
+static void rna_Sequence_attenuation_set(PointerRNA *ptr, float value)
+{
+   Sequence *seq= (Sequence*)(ptr->data);
+
+   seq->volume = from_dB(value);
+}
+
+
 /*static void rna_SoundSequence_filename_set(PointerRNA *ptr, const char 
*value)
 {
Sequence *seq= (Sequence*)(ptr->data);
@@ -1045,10 +1070,17 @@
 
prop= RNA_def_property(srna, "volume", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "volume");
-   RNA_def_property_range(prop, 0.0f, 2.0f);
+   RNA_def_property_range(prop, 0.0f, 100.0f);
RNA_def_property_ui_text(prop, "Volume", "Playback volume of the 
sound");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");
 
+   prop= RNA_def_property(srna, "attenuation", PROP_FLOAT, PROP_NONE);
+   RNA_def_property_range(prop, -100.0f, +40.0f);
+   RNA_def_property_ui_text(prop, "Attenuation/db", "Attenuation in 
dezibel");
+   RNA_def_property_float_funcs(prop, "rna_Sequence_attenuation_get", 
"rna_Sequence_attenuation_set", NULL); 
+
+   RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");
+
prop= RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH);
RNA_def_property_ui_text(prop, "File", "");
RNA_def_property_string_funcs(prop, "rna_Sequence_filepath_get", 
"rna_Sequence_filepath_length", 


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29089] trunk/blender/release/scripts/op/ sequencer.py: == Sequencer ==

2010-05-30 Thread Peter Schlaile
Revision: 29089
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29089
Author:   schlaile
Date: 2010-05-30 22:04:24 +0200 (Sun, 30 May 2010)

Log Message:
---
== Sequencer ==

Current SVN crashes, if we are using hard-cuts on multicam tracks. Changing to 
soft cuts for now 
(since it should be the same for effect strips anyways...)

Modified Paths:
--
trunk/blender/release/scripts/op/sequencer.py

Modified: trunk/blender/release/scripts/op/sequencer.py
===
--- trunk/blender/release/scripts/op/sequencer.py   2010-05-30 19:33:26 UTC 
(rev 29088)
+++ trunk/blender/release/scripts/op/sequencer.py   2010-05-30 20:04:24 UTC 
(rev 29089)
@@ -101,7 +101,7 @@
 s.selected = True
 
 cfra = context.scene.frame_current
-bpy.ops.sequencer.cut(frame=cfra, type='HARD', side='RIGHT')
+bpy.ops.sequencer.cut(frame=cfra, type='SOFT', side='RIGHT')
 for s in context.scene.sequence_editor.sequences_all:
 if s.selected and s.type == 'MULTICAM' and s.frame_final_start <= 
cfra and cfra < s.frame_final_end:
 context.scene.sequence_editor.active_strip = s


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29088] trunk/blender: == Sequencer ==

2010-05-30 Thread Peter Schlaile
Revision: 29088
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29088
Author:   schlaile
Date: 2010-05-30 21:33:26 +0200 (Sun, 30 May 2010)

Log Message:
---
== Sequencer ==

This fixes loading of hard trimmed audio files in readfile
and adds trim options to N-keys for audio files.

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-05-30 19:29:58 UTC 
(rev 29087)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-05-30 19:33:26 UTC 
(rev 29088)
@@ -457,6 +457,7 @@
 row = layout.row(align=True)
 sub = row.row()
 sub.scale_x = 2.0
+   
 if not context.screen.animation_playing:
 sub.operator("screen.animation_play", text="", icon='PLAY')
 else:
@@ -666,7 +667,12 @@
 
 layout.prop(strip, "volume")
 
+col = layout.column(align=True)
+col.label(text="Trim Duration:")
+col.prop(strip, "animation_start_offset", text="Start")
+col.prop(strip, "animation_end_offset", text="End")
 
+
 class SEQUENCER_PT_scene(SequencerButtonsPanel):
 bl_label = "Scene"
 

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===
--- trunk/blender/source/blender/blenloader/intern/readfile.c   2010-05-30 
19:29:58 UTC (rev 29087)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c   2010-05-30 
19:33:26 UTC (rev 29088)
@@ -4174,7 +4174,7 @@
if(seq->ipo) seq->ipo= newlibadr_us(fd, 
sce->id.lib, seq->ipo);
if(seq->scene) {
seq->scene= newlibadr(fd, sce->id.lib, 
seq->scene);
-   seq->scene_sound = 
sound_scene_add_scene_sound(sce, seq, seq->startdisp, seq->enddisp, 
seq->startofs);
+   seq->scene_sound = 
sound_scene_add_scene_sound(sce, seq, seq->startdisp, seq->enddisp, 
seq->startofs + seq->anim_startofs);
}
if(seq->scene_camera) seq->scene_camera= 
newlibadr(fd, sce->id.lib, seq->scene_camera);
if(seq->sound) {
@@ -4185,7 +4185,7 @@
seq->sound= newlibadr(fd, 
sce->id.lib, seq->sound);
if (seq->sound) {
seq->sound->id.us++;
-   seq->scene_sound = 
sound_add_scene_sound(sce, seq, seq->startdisp, seq->enddisp, seq->startofs);
+   seq->scene_sound = 
sound_add_scene_sound(sce, seq, seq->startdisp, seq->enddisp, seq->startofs + 
seq->anim_startofs);
}
}
seq->anim= 0;


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29087] trunk/blender/release/scripts/op/ sequencer.py: == Sequencer ==

2010-05-30 Thread Peter Schlaile
Revision: 29087
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29087
Author:   schlaile
Date: 2010-05-30 21:29:58 +0200 (Sun, 30 May 2010)

Log Message:
---
== Sequencer ==

Multicam editing: don't cut to the camera we are already on...

Modified Paths:
--
trunk/blender/release/scripts/op/sequencer.py

Modified: trunk/blender/release/scripts/op/sequencer.py
===
--- trunk/blender/release/scripts/op/sequencer.py   2010-05-30 19:21:28 UTC 
(rev 29086)
+++ trunk/blender/release/scripts/op/sequencer.py   2010-05-30 19:29:58 UTC 
(rev 29087)
@@ -94,6 +94,9 @@
 
 s = context.scene.sequence_editor.active_strip
 
+if s.multicam_source == camera:
+return {'FINISHED'}
+
 if not s.selected:
 s.selected = True
 
@@ -135,7 +138,6 @@
 register(SequencerCutMulticam)
 register(SequencerDeinterlaceSelectedMovies)
 
-
 def unregister():
 unregister = bpy.types.unregister
 
@@ -143,5 +145,7 @@
 unregister(SequencerCutMulticam)
 unregister(SequencerDeinterlaceSelectedMovies)
 
+ 
+
 if __name__ == "__main__":
 register()


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28557] trunk/blender/release/scripts: == Sequencer ==

2010-05-03 Thread Peter Schlaile
Revision: 28557
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28557
Author:   schlaile
Date: 2010-05-04 00:17:05 +0200 (Tue, 04 May 2010)

Log Message:
---
== Sequencer ==

Added operator (and menu entry) to deinterlace all selected movie strips.
(does also walk into selected meta strips)

Also: small fix for multicam cutting tool (now works also within metas)

Modified Paths:
--
trunk/blender/release/scripts/op/sequencer.py
trunk/blender/release/scripts/ui/space_sequencer.py

Modified: trunk/blender/release/scripts/op/sequencer.py
===
--- trunk/blender/release/scripts/op/sequencer.py   2010-05-03 21:07:57 UTC 
(rev 28556)
+++ trunk/blender/release/scripts/op/sequencer.py   2010-05-03 22:17:05 UTC 
(rev 28557)
@@ -98,19 +98,41 @@
 
 cfra = context.scene.frame_current
 bpy.ops.sequencer.cut(frame=cfra,type='HARD',side='RIGHT')
-for s in context.scene.sequence_editor.sequences:
+for s in context.scene.sequence_editor.sequences_all:
 if s.selected and s.type == 'MULTICAM' and s.frame_final_start <= 
cfra and cfra < s.frame_final_end:
 context.scene.sequence_editor.active_strip = s
 
 context.scene.sequence_editor.active_strip.multicam_source = camera
 return {'FINISHED'}
 
+class SequencerDeinterlaceSelectedMovies(bpy.types.Operator):
+'''Deinterlace all selected movie sources.'''
 
+bl_idname = "sequencer.deinterlace_selected_movies"
+bl_label = "Deinterlace Movies"
+bl_options = {'REGISTER', 'UNDO'}
+
+def poll(self, context):
+if context.scene and context.scene.sequence_editor:
+return True
+else:
+return False
+
+def execute(self, context):
+for s in context.scene.sequence_editor.sequences_all:
+if s.selected and s.type == 'MOVIE':
+s.de_interlace = True
+
+return {'FINISHED'}
+
+
+
 def register():
 register = bpy.types.register
 
 register(SequencerCrossfadeSounds)
 register(SequencerCutMulticam)
+register(SequencerDeinterlaceSelectedMovies)
 
 
 def unregister():
@@ -118,6 +140,7 @@
 
 unregister(SequencerCrossfadeSounds)
 unregister(SequencerCutMulticam)
+unregister(SequencerDeinterlaceSelectedMovies)
 
 if __name__ == "__main__":
 register()

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-05-03 21:07:57 UTC 
(rev 28556)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-05-03 22:17:05 UTC 
(rev 28557)
@@ -236,6 +236,7 @@
 layout.operator("sequencer.cut", text="Cut (hard) at frame").type = 
'HARD'
 layout.operator("sequencer.cut", text="Cut (soft) at frame").type = 
'SOFT'
 layout.operator("sequencer.images_separate")
+layout.operator("sequencer.deinterlace_selected_movies")
 layout.separator()
 
 layout.operator("sequencer.duplicate")


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28535] trunk/blender: == Sequencer ==

2010-05-02 Thread Peter Schlaile
Revision: 28535
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28535
Author:   schlaile
Date: 2010-05-02 19:36:38 +0200 (Sun, 02 May 2010)

Log Message:
---
== Sequencer ==

Made Multicam-Editing really work:
* added a panel within N-keys, so that one can start/stop playback
  and cut between cameras directly from the panel
* made "active_strip" RNA editable, to make that work correctly
  (is usefull anyways :) )

Modified Paths:
--
trunk/blender/release/scripts/op/sequencer.py
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/release/scripts/op/sequencer.py
===
--- trunk/blender/release/scripts/op/sequencer.py   2010-05-02 14:34:37 UTC 
(rev 28534)
+++ trunk/blender/release/scripts/op/sequencer.py   2010-05-02 17:36:38 UTC 
(rev 28535)
@@ -20,6 +20,7 @@
 
 import bpy
 
+from bpy.props import *
 
 class SequencerCrossfadeSounds(bpy.types.Operator):
 '''Do crossfading volume animation of two selected sound strips.'''
@@ -71,12 +72,52 @@
 return {'CANCELLED'}
 
 
+class SequencerCutMulticam(bpy.types.Operator):
+'''Cut multicam strip and select camera.'''
+
+bl_idname = "sequencer.cut_multicam"
+bl_label = "Cut multicam"
+bl_options = {'REGISTER', 'UNDO'}
+
+camera = IntProperty(name="Camera",
+default=1, min=1, max=32, soft_min=1, soft_max=32)
+
+def poll(self, context):
+if context.scene and context.scene.sequence_editor and 
context.scene.sequence_editor.active_strip:
+return context.scene.sequence_editor.active_strip.type == 
'MULTICAM'
+else:
+return False
+
+def execute(self, context):
+camera = self.properties.camera
+
+s = context.scene.sequence_editor.active_strip
+
+if not s.selected:
+s.selected = True
+
+cfra = context.scene.frame_current
+bpy.ops.sequencer.cut(frame=cfra,type='HARD',side='RIGHT')
+for s in context.scene.sequence_editor.sequences:
+if s.selected and s.type == 'MULTICAM' and s.frame_final_start <= 
cfra and cfra < s.frame_final_end:
+context.scene.sequence_editor.active_strip = s
+
+context.scene.sequence_editor.active_strip.multicam_source = camera
+return {'FINISHED'}
+
+
 def register():
-bpy.types.register(SequencerCrossfadeSounds)
+register = bpy.types.register
+
+register(SequencerCrossfadeSounds)
+register(SequencerCutMulticam)
 
 
 def unregister():
-bpy.types.unregister(SequencerCrossfadeSounds)
+unregister = bpy.types.unregister
+
+unregister(SequencerCrossfadeSounds)
+unregister(SequencerCutMulticam)
 
 if __name__ == "__main__":
 register()

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-05-02 14:34:37 UTC 
(rev 28534)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-05-02 17:36:38 UTC 
(rev 28535)
@@ -19,7 +19,6 @@
 # 
 import bpy
 
-
 def act_strip(context):
 try:
 return context.scene.sequence_editor.active_strip
@@ -451,6 +450,19 @@
 elif strip.type == "MULTICAM":
 layout.prop(strip, "multicam_source")
 
+row = layout.row(align=True)
+sub = row.row()
+sub.scale_x = 2.0
+if not context.screen.animation_playing:
+sub.operator("screen.animation_play", text="", icon='PLAY')
+else:
+sub.operator("screen.animation_play", text="", icon='PAUSE')
+
+row.label("Cut To")
+for i in range(1, strip.channel):
+row.operator("sequencer.cut_multicam", text=str(i)).camera = i
+
+
 col = layout.column(align=True)
 if strip.type == 'SPEED':
 col.prop(strip, "speed_fader", text="Speed fader")

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-05-02 14:34:37 UTC (rev 28534)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-05-02 17:36:38 UTC (rev 28535)
@@ -804,6 +804,8 @@

prop= RNA_def_property(srna, "active_strip", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "act_seq");
+   RNA_def_property_flag(prop, PROP_EDITABLE);
+
RNA_def_property_ui_text(prop, "Active Strip", "Sequencers active 
strip");
 }
 


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28528] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: should make problems mentioned in

2010-05-01 Thread Peter Schlaile
Revision: 28528
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28528
Author:   schlaile
Date: 2010-05-01 18:02:59 +0200 (Sat, 01 May 2010)

Log Message:
---
should make problems mentioned in

[#19221] Sequencer animation curves not converted correctly from 2.4

go away.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-05-01 
15:17:30 UTC (rev 28527)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-05-01 
16:02:59 UTC (rev 28528)
@@ -2160,7 +2160,7 @@
   and since G.rendering is uhm, gone... (Peter)
*/
 
-   int rendering = 1;
+   int rendering = G.rendering;
int doseq;
int doseq_gl= G.rendering ? (scene->r.seq_flag & 
R_SEQ_GL_REND) : (scene->r.seq_flag & R_SEQ_GL_PREV);
 


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28527] trunk/blender/source/blender/ blenkernel/intern/ipo.c: Second round of sequencer IPO-conversion to new animation system:

2010-05-01 Thread Peter Schlaile
Revision: 28527
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28527
Author:   schlaile
Date: 2010-05-01 17:17:30 +0200 (Sat, 01 May 2010)

Log Message:
---
Second round of sequencer IPO-conversion to new animation system:
* now non-frame-locked IPOs work, too.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/ipo.c

Modified: trunk/blender/source/blender/blenkernel/intern/ipo.c
===
--- trunk/blender/source/blender/blenkernel/intern/ipo.c2010-05-01 
14:09:45 UTC (rev 28526)
+++ trunk/blender/source/blender/blenkernel/intern/ipo.c2010-05-01 
15:17:30 UTC (rev 28527)
@@ -792,12 +792,12 @@
 /* Allocate memory for RNA-path for some property given a blocktype, adrcode, 
and 'root' parts of path
  * Input:
  * - blocktype, adrcode- determines setting to get
- * - actname, constname,seqname - used to build path
+ * - actname, constname,seq - used to build path
  * Output:
  * - array_index   - index in property's array (if 
applicable) to use
  * - return- the allocated path...
  */
-static char *get_rna_access (int blocktype, int adrcode, char actname[], char 
constname[], char seqname[], int *array_index)
+static char *get_rna_access (int blocktype, int adrcode, char actname[], char 
constname[], Sequence * seq, int *array_index)
 {
DynStr *path= BLI_dynstr_new();
char *propname=NULL, *rpath=NULL;
@@ -919,9 +919,10 @@
/* Constraint in Object */
sprintf(buf, "constraints[\"%s\"]", constname);
}
-   else if (seqname && seqname[0]) {
+   else if (seq) {
/* Sequence names in Scene */
-   sprintf(buf, "sequence_editor.sequences_all[\"%s\"]", seqname);
+   sprintf(buf, "sequence_editor.sequences_all[\"%s\"]", 
+   seq->name+2);
}
else
strcpy(buf, ""); /* empty string */
@@ -1115,9 +1116,9 @@
  * is not relevant, BUT do not free the IPO-Curve itself...
  * actname: name of Action-Channel (if applicable) that IPO-Curve's 
IPO-block belonged to
  * constname: name of Constraint-Channel (if applicable) that IPO-Curve's 
IPO-block belonged to
- *  seqname: name of sequencer-strip (if applicable) that IPO-Curve's 
IPO-block belonged to
+ *  seq: sequencer-strip (if applicable) that IPO-Curve's IPO-block 
belonged to
  */
-static void icu_to_fcurves (ID *id, ListBase *groups, ListBase *list, IpoCurve 
*icu, char *actname, char *constname, char * seqname, int muteipo)
+static void icu_to_fcurves (ID *id, ListBase *groups, ListBase *list, IpoCurve 
*icu, char *actname, char *constname, Sequence * seq, int muteipo)
 {
AdrBit2Path *abp;
FCurve *fcu;
@@ -1240,7 +1241,7 @@
/* get rna-path
 *  - we will need to set the 'disabled' flag if no path is 
able to be made (for now)
 */
-   fcu->rna_path= get_rna_access(icu->blocktype, icu->adrcode, 
actname, constname, seqname, &fcu->array_index);
+   fcu->rna_path= get_rna_access(icu->blocktype, icu->adrcode, 
actname, constname, seq, &fcu->array_index);
if (fcu->rna_path == NULL)
fcu->flag |= FCURVE_DISABLED;

@@ -1312,6 +1313,24 @@
dst->vec[2][0] *= fac;
}
}
+   
+   /* correct values for sequencer curves,
+  that were not locked to frame */
+
+   if (seq && 
+   (seq->flag & SEQ_IPO_FRAME_LOCKED) == 0) {
+   double mul= 
(seq->enddisp-seq->startdisp)/100.0f;
+   double offset= seq->startdisp;
+   
+   dst->vec[0][0] *= mul;
+   dst->vec[0][0] += offset;
+
+   dst->vec[1][0] *= mul;
+   dst->vec[1][0] += offset;
+
+   dst->vec[2][0] *= mul;
+   dst->vec[2][0] += offset;
+   }
}
}
else if (icu->bp) {
@@ -1331,7 +1350,7 @@
  * This does not assume that any ID or AnimData uses it, but does assume that
  * it is given two lists, which it will perform driver/animation-data 
separation.
  */
-static void ipo_to_animato (ID *id, Ipo *ipo, char actname[], char 
constname[], char seqname[], ListBase *animgroups, ListBase *an

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28526] trunk/blender/source/blender/ blenkernel/intern/ipo.c: First round of importing old sequencer IPOs to new animation system:

2010-05-01 Thread Peter Schlaile
Revision: 28526
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28526
Author:   schlaile
Date: 2010-05-01 16:09:45 +0200 (Sat, 01 May 2010)

Log Message:
---
First round of importing old sequencer IPOs to new animation system:
* Frame locked IPOs work now

TODO: non-frame-locked ones :)

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/ipo.c

Modified: trunk/blender/source/blender/blenkernel/intern/ipo.c
===
--- trunk/blender/source/blender/blenkernel/intern/ipo.c2010-05-01 
12:39:06 UTC (rev 28525)
+++ trunk/blender/source/blender/blenkernel/intern/ipo.c2010-05-01 
14:09:45 UTC (rev 28526)
@@ -67,9 +67,9 @@
 #include "BKE_global.h"
 #include "BKE_main.h"
 #include "BKE_nla.h"
+#include "BKE_sequencer.h"
 
 
-
 /* *** */
 /* Old-Data Freeing Tools */
 
@@ -792,12 +792,12 @@
 /* Allocate memory for RNA-path for some property given a blocktype, adrcode, 
and 'root' parts of path
  * Input:
  * - blocktype, adrcode- determines setting to get
- * - actname, constname- used to build path
+ * - actname, constname,seqname - used to build path
  * Output:
  * - array_index   - index in property's array (if 
applicable) to use
  * - return- the allocated path...
  */
-static char *get_rna_access (int blocktype, int adrcode, char actname[], char 
constname[], int *array_index)
+static char *get_rna_access (int blocktype, int adrcode, char actname[], char 
constname[], char seqname[], int *array_index)
 {
DynStr *path= BLI_dynstr_new();
char *propname=NULL, *rpath=NULL;
@@ -919,6 +919,10 @@
/* Constraint in Object */
sprintf(buf, "constraints[\"%s\"]", constname);
}
+   else if (seqname && seqname[0]) {
+   /* Sequence names in Scene */
+   sprintf(buf, "sequence_editor.sequences_all[\"%s\"]", seqname);
+   }
else
strcpy(buf, ""); /* empty string */
BLI_dynstr_append(path, buf);
@@ -,8 +1115,9 @@
  * is not relevant, BUT do not free the IPO-Curve itself...
  * actname: name of Action-Channel (if applicable) that IPO-Curve's 
IPO-block belonged to
  * constname: name of Constraint-Channel (if applicable) that IPO-Curve's 
IPO-block belonged to
+ *  seqname: name of sequencer-strip (if applicable) that IPO-Curve's 
IPO-block belonged to
  */
-static void icu_to_fcurves (ID *id, ListBase *groups, ListBase *list, IpoCurve 
*icu, char *actname, char *constname, int muteipo)
+static void icu_to_fcurves (ID *id, ListBase *groups, ListBase *list, IpoCurve 
*icu, char *actname, char *constname, char * seqname, int muteipo)
 {
AdrBit2Path *abp;
FCurve *fcu;
@@ -1235,7 +1240,7 @@
/* get rna-path
 *  - we will need to set the 'disabled' flag if no path is 
able to be made (for now)
 */
-   fcu->rna_path= get_rna_access(icu->blocktype, icu->adrcode, 
actname, constname, &fcu->array_index);
+   fcu->rna_path= get_rna_access(icu->blocktype, icu->adrcode, 
actname, constname, seqname, &fcu->array_index);
if (fcu->rna_path == NULL)
fcu->flag |= FCURVE_DISABLED;

@@ -1326,7 +1331,7 @@
  * This does not assume that any ID or AnimData uses it, but does assume that
  * it is given two lists, which it will perform driver/animation-data 
separation.
  */
-static void ipo_to_animato (ID *id, Ipo *ipo, char actname[], char 
constname[], ListBase *animgroups, ListBase *anim, ListBase *drivers)
+static void ipo_to_animato (ID *id, Ipo *ipo, char actname[], char 
constname[], char seqname[], ListBase *animgroups, ListBase *anim, ListBase 
*drivers)
 {
IpoCurve *icu;

@@ -1357,7 +1362,7 @@
if (icu->driver) {
/* Blender 2.4x allowed empty drivers, but we don't 
now, since they cause more trouble than they're worth */
if ((icu->driver->ob) || (icu->driver->type == 
IPO_DRIVER_TYPE_PYTHON)) {
-   icu_to_fcurves(id, NULL, drivers, icu, actname, 
constname, ipo->muteipo);
+   icu_to_fcurves(id, NULL, drivers, icu, actname, 
constname, seqname, ipo->muteipo);
}
else {
MEM_freeN(icu->driver);
@@ -1365,7 +1370,7 @@
}
}
else
-   icu_to_fcurves(id, animgroups, anim, icu, actname, 
constname, ipo->muteipo);
+   icu_to_fcurves(id, animgroups, anim, icu, actname, 
constname, seqname, ipo->muteipo);
}

/* if 

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28525] trunk/blender/source/blender/ blenloader/intern/readfile.c: Fixed version patching for unique sequencer names:

2010-05-01 Thread Peter Schlaile
Revision: 28525
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28525
Author:   schlaile
Date: 2010-05-01 14:39:06 +0200 (Sat, 01 May 2010)

Log Message:
---
Fixed version patching for unique sequencer names:
now iteration over all strips (including meta strips) works correctly.

Modified Paths:
--
trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===
--- trunk/blender/source/blender/blenloader/intern/readfile.c   2010-05-01 
11:51:56 UTC (rev 28524)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c   2010-05-01 
12:39:06 UTC (rev 28525)
@@ -6540,6 +6540,21 @@
ob->track = NULL;
 }
 
+static void do_versions_seq_unique_name_all_strips(
+   Scene * sce, ListBase *seqbasep)
+{
+   Sequence * seq = seqbasep->first;
+
+   while(seq) {
+   seqbase_unique_name_recursive(&sce->ed->seqbase, seq);
+   if (seq->seqbase.first) {
+   do_versions_seq_unique_name_all_strips(
+   sce, &seq->seqbase);
+   }
+   seq=seq->next;
+   }
+}
+
 static void do_versions(FileData *fd, Library *lib, Main *main)
 {
/* WATCH IT!!!: pointers from libdata have not been converted */
@@ -10209,22 +10224,16 @@
{
Scene *sce= main->scene.first;
while(sce) {
-   Sequence *seq;
-   
if(sce->r.frame_step==0)
sce->r.frame_step= 1;
if (sce->r.mblur_samples==0)
sce->r.mblur_samples = sce->r.osa;

-   if(sce->ed && sce->ed->seqbasep)
-   {
-   seq=sce->ed->seqbasep->first;
-   while(seq) {
-   
seqbase_unique_name_recursive(&sce->ed->seqbase, seq);
-   seq=seq->next;
-   }
+   if (sce->ed && sce->ed->seqbase.first) {
+   do_versions_seq_unique_name_all_strips(
+   sce, &sce->ed->seqbase);
}
-   
+   
sce= sce->id.next;
}
}


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28524] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: == Sequencer ==

2010-05-01 Thread Peter Schlaile
Revision: 28524
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28524
Author:   schlaile
Date: 2010-05-01 13:51:56 +0200 (Sat, 01 May 2010)

Log Message:
---
== Sequencer ==

Since prefetch rendering in sequencer is currently disabled, 
seq_thread_shutdown should be always TRUE for now.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-04-30 
13:00:03 UTC (rev 28523)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-05-01 
11:51:56 UTC (rev 28524)
@@ -2832,7 +2832,7 @@
 static pthread_mutex_t frame_done_lock = PTHREAD_MUTEX_INITIALIZER;
 static pthread_cond_t  frame_done_cond = PTHREAD_COND_INITIALIZER;
 
-static volatile int seq_thread_shutdown = FALSE;
+static volatile int seq_thread_shutdown = TRUE; 
 static volatile int seq_last_given_monoton_cfra = 0;
 static int monoton_cfra = 0;
 


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28416] trunk/blender: == Sequencer ==

2010-04-25 Thread Peter Schlaile
Revision: 28416
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28416
Author:   schlaile
Date: 2010-04-25 17:39:04 +0200 (Sun, 25 Apr 2010)

Log Message:
---
== Sequencer ==

Forgot some changes for multicam support.

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-04-25 15:24:18 UTC 
(rev 28415)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-04-25 15:39:04 UTC 
(rev 28416)
@@ -217,6 +217,7 @@
 layout.operator("sequencer.effect_strip_add", text="Transform").type = 
'TRANSFORM'
 layout.operator("sequencer.effect_strip_add", text="Color").type = 
'COLOR'
 layout.operator("sequencer.effect_strip_add", text="Speed 
Control").type = 'SPEED'
+layout.operator("sequencer.effect_strip_add", text="Multicam 
Selector").type = 'MULTICAM'
 
 
 class SEQUENCER_MT_strip(bpy.types.Menu):
@@ -402,7 +403,8 @@
 return strip.type in ('ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
   'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
   'PLUGIN',
-  'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED')
+  'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED',
+  'MULTICAM')
 
 def draw(self, context):
 layout = self.layout
@@ -445,8 +447,10 @@
 
 elif strip.type == 'TRANSFORM':
 self.draw_panel_transform(strip)
+
+elif strip.type == "MULTICAM":
+layout.prop(strip, "multicam_source")
 
-
 col = layout.column(align=True)
 if strip.type == 'SPEED':
 col.prop(strip, "speed_fader", text="Speed fader")
@@ -501,7 +505,8 @@
   'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
   'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
   'PLUGIN',
-  'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED')
+  'WIPE', 'GLOW', 'TRANSFORM', 'COLOR',
+  'MULTICAM','SPEED')
 
 def draw_filename(self, context):
 pass
@@ -683,7 +688,8 @@
   'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
   'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
   'PLUGIN',
-  'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED')
+  'WIPE', 'GLOW', 'TRANSFORM', 'COLOR',
+  'MULTICAM', 'SPEED')
 
 def draw(self, context):
 layout = self.layout
@@ -738,7 +744,7 @@
 if not strip:
 return False
 
-return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META')
+return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META', 'MULTICAM')
 
 def draw_header(self, context):
 strip = act_strip(context)

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-04-25 
15:24:18 UTC (rev 28415)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-04-25 
15:39:04 UTC (rev 28416)
@@ -795,6 +795,7 @@
case SEQ_GLOW:   return "Glow";
case SEQ_TRANSFORM:  return "Transform";
case SEQ_COLOR:  return "Color";
+   case SEQ_MULTICAM:   return "Multicam";
case SEQ_SPEED:  return "Speed";
default:
return 0;
@@ -3449,7 +3450,8 @@
since they work a bit differently to normal image seq's (during transform) 
*/
 int seq_single_check(Sequence *seq)
 {
-   if ( seq->len==1 && (seq->type == SEQ_IMAGE || seq->type == SEQ_COLOR))
+   if ( seq->len==1 && (seq->type == SEQ_IMAGE || seq->type == SEQ_COLOR
+|| seq->type == SEQ_MULTICAM))
return 1;
else
return 0;

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
===
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c   
2010-04-25 15:24:18 UTC (rev 28415)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c   
2010-04-25 15:39:04 UTC (rev 28416)
@@ -2539,9 +2539,9 @@
if(seq) {

/* disallow effect strips */
-   if ((seq->type!=SEQ_COLOR) && (seq->effectdata || seq->seq1 || 
seq->seq2 || seq->seq3))
+ 

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28412] trunk/blender/source/blender: == Sequencer ==

2010-04-25 Thread Peter Schlaile
Revision: 28412
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28412
Author:   schlaile
Date: 2010-04-25 14:53:39 +0200 (Sun, 25 Apr 2010)

Log Message:
---
== Sequencer ==

This adds MULTICAM-editing support for blender. (Well, the beginning of.)

There is now a new effect track, named MULTICAM, which just selects
one of the lower tracks.

Doesn't sound that exciting, but if you combine this with A/B-Trim (moving
split points of two directly connected tracks around, while magically
resizing both strips, something to be added), you just do:

* add several tracks for your camera angles
* (optionally) sync those tracks
* add one multicam track on top

Use that multicam-track to edit your movie. (Either using fcurves on the
multicam source selector or using knife-tool and A/B-Trim.)

Compare that to:

* add several tracks
* add cross fades between them
* do some python scripting to add several fcurves to make that beast
  somewhat work.
* cry out loud, using it, if you have to move cut points around

Alternatively, even harder:

* just edit the old way and put strip after strip

You might think, that this isn't really helpfull for animators, but
consider using scene-strips (in OpenGL-mode) for input, that are set for
different camera angles and can now be intercut a lot more easily...

Also: small fix on the way: the speed effect can now be used in cascade.
(Don't know, if anyone used it that way, but now it works.)

Modified Paths:
--
trunk/blender/source/blender/blenkernel/BKE_sequencer.h
trunk/blender/source/blender/blenkernel/intern/seqeffects.c
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_draw.c
trunk/blender/source/blender/editors/space_sequencer/sequencer_edit.c
trunk/blender/source/blender/makesdna/DNA_sequence_types.h
trunk/blender/source/blender/makesrna/RNA_access.h
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/source/blender/blenkernel/BKE_sequencer.h
===
--- trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-04-25 
10:49:13 UTC (rev 28411)
+++ trunk/blender/source/blender/blenkernel/BKE_sequencer.h 2010-04-25 
12:53:39 UTC (rev 28412)
@@ -112,22 +112,22 @@

/* stores the y-range of the effect IPO */
void (*store_icu_yrange)(struct Sequence * seq,
-short adrcode, float 
*ymin, float *ymax);
+ short adrcode, float *ymin, float *ymax);

/* stores the default facf0 and facf1 if no IPO is present */
void (*get_default_fac)(struct Sequence *seq, int cfra,
-   float * facf0, float * 
facf1);
+float * facf0, float * facf1);

/* execute the effect
-   sequence effects are only required to either support
-   float-rects or byte-rects 
-   (mixed cases are handled one layer up...) */
+   sequence effects are only required to either support
+   float-rects or byte-rects 
+   (mixed cases are handled one layer up...) */

void (*execute)(struct Scene *scene, struct Sequence *seq, int cfra,
-   float facf0, float facf1,
-   int x, int y,
-   struct ImBuf *ibuf1, struct ImBuf 
*ibuf2,
-   struct ImBuf *ibuf3, struct ImBuf *out);
+float facf0, float facf1,
+int x, int y, int preview_render_size,
+struct ImBuf *ibuf1, struct ImBuf *ibuf2,
+struct ImBuf *ibuf3, struct ImBuf *out);
 };
 
 /* * prototypes *** */
@@ -149,6 +149,7 @@
 struct ImBuf *give_ibuf_seq(struct Scene *scene, int rectx, int recty, int 
cfra, int chanshown, int render_size);
 struct ImBuf *give_ibuf_seq_threaded(struct Scene *scene, int rectx, int 
recty, int cfra, int chanshown, int render_size);
 struct ImBuf *give_ibuf_seq_direct(struct Scene *scene, int rectx, int recty, 
int cfra, int render_size, struct Sequence *seq);
+struct ImBuf *give_ibuf_seqbase(struct Scene *scene, int rectx, int recty, int 
cfra, int chan_shown, int render_size, struct ListBase *seqbasep);
 void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown, 
int render_size);
 void calc_sequence(struct Scene *scene, struct Sequence *seq);
 void calc_sequence_disp(struct Scene *scene, struct Sequence *seq);

Modified: trunk/blender/source/blender/blenkernel/intern/seqeffects.c
===
--- trunk/blender/source/blender/blenk

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28268] trunk/blender/source/blender/ makesrna/intern/rna_sequencer.c: Brought back editable anim_startofs and anim_endofs both with shuffle test

2010-04-18 Thread Peter Schlaile
Revision: 28268
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28268
Author:   schlaile
Date: 2010-04-18 20:30:55 +0200 (Sun, 18 Apr 2010)

Log Message:
---
Brought back editable anim_startofs and anim_endofs both with shuffle test

Modified Paths:
--
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-04-18 17:26:37 UTC (rev 28267)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-04-18 18:30:55 UTC (rev 28268)
@@ -130,6 +130,28 @@
rna_Sequence_frame_change_update(scene, seq);
 }
 
+static void rna_Sequence_anim_startofs_final_set(PointerRNA *ptr, int value)
+{
+   Sequence *seq= (Sequence*)ptr->data;
+   Scene *scene= (Scene*)ptr->id.data;
+
+   seq->anim_startofs = MIN2(value, seq->len + seq->anim_startofs);
+
+   reload_sequence_new_file(scene, seq);
+   rna_Sequence_frame_change_update(scene, seq);
+}
+
+static void rna_Sequence_anim_endofs_final_set(PointerRNA *ptr, int value)
+{
+   Sequence *seq= (Sequence*)ptr->data;
+   Scene *scene= (Scene*)ptr->id.data;
+
+   seq->anim_endofs = MIN2(value, seq->len + seq->anim_endofs);
+
+   reload_sequence_new_file(scene, seq);
+   rna_Sequence_frame_change_update(scene, seq);
+}
+
 static void rna_Sequence_length_set(PointerRNA *ptr, int value)
 {
Sequence *seq= (Sequence*)ptr->data;
@@ -887,13 +909,16 @@
 
prop= RNA_def_property(srna, "animation_start_offset", PROP_INT, 
PROP_UNSIGNED);
RNA_def_property_int_sdna(prop, NULL, "anim_startofs");
-   RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap test
+   RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
+   RNA_def_property_int_funcs(prop, NULL, 
"rna_Sequence_anim_startofs_final_set", NULL); // overlap tests
+
RNA_def_property_ui_text(prop, "Animation Start Offset", "Animation 
start offset (trim start)");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");

prop= RNA_def_property(srna, "animation_end_offset", PROP_INT, 
PROP_UNSIGNED);
RNA_def_property_int_sdna(prop, NULL, "anim_endofs");
-   RNA_def_property_clear_flag(prop, PROP_EDITABLE); // overlap test
+   RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
+   RNA_def_property_int_funcs(prop, NULL, 
"rna_Sequence_anim_endofs_final_set", NULL); // overlap tests
RNA_def_property_ui_text(prop, "Animation End Offset", "Animation end 
offset (trim end)");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");
 }


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28267] trunk/blender/config/linux2-config .py: This fixes largefile (> 4GB) problems in Linux.

2010-04-18 Thread Peter Schlaile
Revision: 28267
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28267
Author:   schlaile
Date: 2010-04-18 19:26:37 +0200 (Sun, 18 Apr 2010)

Log Message:
---
This fixes largefile (> 4GB) problems in Linux.
(File browser showing negative file sizes, etc.)

Modified Paths:
--
trunk/blender/config/linux2-config.py

Modified: trunk/blender/config/linux2-config.py
===
--- trunk/blender/config/linux2-config.py   2010-04-18 17:09:35 UTC (rev 
28266)
+++ trunk/blender/config/linux2-config.py   2010-04-18 17:26:37 UTC (rev 
28267)
@@ -175,10 +175,10 @@
 ##ifeq ($CPU),alpha)
 ##   CFLAGS += -pipe -fPIC -funsigned-char -fno-strict-aliasing -mieee
 
-CCFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
+CCFLAGS = 
['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing','-D_LARGEFILE_SOURCE',
 '-D_FILE_OFFSET_BITS=64']
 
 CPPFLAGS = []
-CXXFLAGS = ['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing']
+CXXFLAGS = 
['-pipe','-fPIC','-funsigned-char','-fno-strict-aliasing','-D_LARGEFILE_SOURCE',
 '-D_FILE_OFFSET_BITS=64']
 REL_CFLAGS = ['-O2']
 REL_CCFLAGS = ['-O2']
 ##BF_DEPEND = True


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28264] trunk/blender/source/blender/ makesrna/intern/rna_space.c: Brought back negative Channel-Variables in preview header, so

2010-04-18 Thread Peter Schlaile
Revision: 28264
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28264
Author:   schlaile
Date: 2010-04-18 18:30:46 +0200 (Sun, 18 Apr 2010)

Log Message:
---
Brought back negative Channel-Variables in preview header, so
that preview can show final result from inside a meta strip again.

Modified Paths:
--
trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_space.c2010-04-18 
15:30:21 UTC (rev 28263)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c2010-04-18 
16:30:46 UTC (rev 28264)
@@ -1381,7 +1381,7 @@
prop= RNA_def_property(srna, "display_channel", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "chanshown");
RNA_def_property_ui_text(prop, "Display Channel", "The channel number 
shown in the image preview. 0 is the result of all strips combined");
-   RNA_def_property_range(prop, 0, 32); // MAXSEQ --- todo, move from 
BKE_sequencer.h
+   RNA_def_property_range(prop, -5, 32); // MAXSEQ --- todo, move from 
BKE_sequencer.h, allow up to 5 layers up the metastack. Should be dynamic...
RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);

prop= RNA_def_property(srna, "draw_overexposed", PROP_INT, PROP_NONE);


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28263] trunk/blender/source/blender/ makesrna/intern/rna_space.c: removed icons in proxy preview render size selection.

2010-04-18 Thread Peter Schlaile
Revision: 28263
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28263
Author:   schlaile
Date: 2010-04-18 17:30:21 +0200 (Sun, 18 Apr 2010)

Log Message:
---
removed icons in proxy preview render size selection. (They don't
really help, if they are non-existent...)

Modified Paths:
--
trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_space.c2010-04-18 
14:48:53 UTC (rev 28262)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c2010-04-18 
15:30:21 UTC (rev 28263)
@@ -1313,12 +1313,12 @@
{0, NULL, 0, NULL, NULL}};
 
static EnumPropertyItem proxy_render_size_items[] = {
-   {SEQ_PROXY_RENDER_SIZE_NONE, "NONE", ICON_SEQ_PREVIEW, "No 
display", ""},
-   {SEQ_PROXY_RENDER_SIZE_SCENE, "SCENE", ICON_SEQ_PREVIEW, "Scene 
render size", ""},
-   {SEQ_PROXY_RENDER_SIZE_25, "PROXY_25", ICON_SEQ_PREVIEW, "Proxy 
size 25%", ""},
-   {SEQ_PROXY_RENDER_SIZE_50, "PROXY_50", ICON_SEQ_PREVIEW, "Proxy 
size 50%", ""},
-   {SEQ_PROXY_RENDER_SIZE_75, "PROXY_75", ICON_SEQ_PREVIEW, "Proxy 
size 75%", ""},
-   {SEQ_PROXY_RENDER_SIZE_FULL, "FULL", ICON_SEQ_PREVIEW, "No 
proxy, full render", ""},
+   {SEQ_PROXY_RENDER_SIZE_NONE, "NONE", 0, "No display", ""},
+   {SEQ_PROXY_RENDER_SIZE_SCENE, "SCENE", 0, "Scene render size", 
""},
+   {SEQ_PROXY_RENDER_SIZE_25, "PROXY_25", 0, "Proxy size 25%", ""},
+   {SEQ_PROXY_RENDER_SIZE_50, "PROXY_50", 0, "Proxy size 50%", ""},
+   {SEQ_PROXY_RENDER_SIZE_75, "PROXY_75", 0, "Proxy size 75%", ""},
+   {SEQ_PROXY_RENDER_SIZE_FULL, "FULL", 0, "No proxy, full 
render", ""},
{0, NULL, 0, NULL, NULL}};

srna= RNA_def_struct(brna, "SpaceSequenceEditor", "Space");


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28262] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: == Sequencer ==

2010-04-18 Thread Peter Schlaile
Revision: 28262
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28262
Author:   schlaile
Date: 2010-04-18 16:48:53 +0200 (Sun, 18 Apr 2010)

Log Message:
---
== Sequencer ==

Removed seqrectx and seqrecty global variables.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-04-18 
14:47:45 UTC (rev 28261)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-04-18 
14:48:53 UTC (rev 28262)
@@ -69,8 +69,6 @@
 #endif
 
 /*  XXX  */
-static int seqrectx= 0;/* bad bad global! */
-static int seqrecty= 0;
 //static void waitcursor(int val) {}
 //static int blender_test_break() {return 0;}
 
@@ -1328,7 +1326,7 @@
 static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, 
int cfra,
  int build_proxy_run, int render_size);
 
-static void seq_proxy_build_frame(Scene *scene, Sequence * seq, int cfra, int 
render_size)
+static void seq_proxy_build_frame(Scene *scene, Sequence * seq, int cfra, int 
render_size, int seqrectx, int seqrecty)
 {
char name[PROXY_MAXFILE];
int quality;
@@ -1365,7 +1363,8 @@
se->ibuf = 0;
}

-   do_build_seq_ibuf(scene, seq, se, cfra, TRUE, render_size);
+   do_build_seq_ibuf(scene, seq, se, cfra, TRUE, render_size,
+ seqrectx, seqrecty);
 
if (!se->ibuf) {
return;
@@ -1399,7 +1398,8 @@
se->ibuf = 0;
 }
 
-static void seq_proxy_rebuild(Scene *scene, Sequence * seq)
+static void seq_proxy_rebuild(Scene *scene, Sequence * seq, int seqrectx,
+ int seqrecty)
 {
int cfra;
float rsize = seq->strip->proxy->size;
@@ -1431,7 +1431,8 @@
 
if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) {
 //XXX  set_timecursor(cfra);
-   seq_proxy_build_frame(scene, seq, cfra, rsize);
+   seq_proxy_build_frame(scene, seq, cfra, rsize,
+ seqrectx, seqrecty);
tse->flag |= STRIPELEM_PREVIEW_DONE;
}
if (blender_test_break()) {
@@ -1445,7 +1446,8 @@
 
if (!(tse->flag & STRIPELEM_PREVIEW_DONE)) {
 //XXX  set_timecursor(cfra);
-   seq_proxy_build_frame(scene, seq, cfra, rsize);
+   seq_proxy_build_frame(scene, seq, cfra, rsize,
+ seqrectx, seqrecty);
tse->flag |= STRIPELEM_PREVIEW_DONE;
}
if (blender_test_break()) {
@@ -1638,7 +1640,7 @@
 
 */
 
-static int input_have_to_preprocess(Scene *scene, Sequence * seq, TStripElem* 
se, int cfra)
+static int input_have_to_preprocess(Scene *scene, Sequence * seq, TStripElem* 
se, int cfra, int seqrectx, int seqrecty)
 {
float mul;
 
@@ -1667,7 +1669,7 @@
return FALSE;
 }
 
-static void input_preprocess(Scene *scene, Sequence *seq, TStripElem *se, int 
cfra)
+static void input_preprocess(Scene *scene, Sequence *seq, TStripElem *se, int 
cfra, int seqrectx, int seqrecty)
 {
float mul;
 
@@ -1790,7 +1792,8 @@
 
 /* test if image too small or discarded from cache: reload */
 
-static void test_and_auto_discard_ibuf(TStripElem * se)
+static void test_and_auto_discard_ibuf(TStripElem * se, 
+  int seqrectx, int seqrecty)
 {
if (se->ibuf) {
if(se->ibuf->x != seqrectx || se->ibuf->y != seqrecty 
@@ -1931,16 +1934,18 @@
}
 }
 
-static TStripElem* do_build_seq_array_recursively(Scene *scene,
-   ListBase *seqbasep, int cfra, int chanshown, 
int render_size);
+static TStripElem* do_build_seq_array_recursively(
+   Scene *scene,
+   ListBase *seqbasep, int cfra, int chanshown, int render_size,
+   int seqrectx, int seqrecty);
 
 static void do_build_seq_ibuf(Scene *scene, Sequence * seq, TStripElem *se, 
int cfra,
- int build_proxy_run, int render_size)
+ int build_proxy_run, int render_size, int 
seqrectx, int seqrecty)
 {
char name[FILE_MAXDIR+FILE_MAXFILE];
int use_limiter = TRUE;
 
-   test_and_auto_discard_ibuf(se);
+   test_and_auto_discard_ibuf(se, seqrectx, seqrecty);
test_and_auto_discard_ibuf_stills(seq->strip);
 
if(seq->type == SEQ_META) {
@@ -1959,7 +1964,7 @@
if(!se->ibuf && seq->seqbase.first) {
meta_se = do_

[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28259] trunk/blender/source/blender/ blenkernel/intern/sequencer.c: Applied:

2010-04-18 Thread Peter Schlaile
Revision: 28259
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28259
Author:   schlaile
Date: 2010-04-18 15:25:51 +0200 (Sun, 18 Apr 2010)

Log Message:
---
Applied:  
[#21390] Sequencer: Shifted frames on Time Flip/Flip Backwards

thanks to Koen Ribus(kori) for the patch.

Modified Paths:
--
trunk/blender/source/blender/blenkernel/intern/sequencer.c

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-04-18 
13:05:17 UTC (rev 28258)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-04-18 
13:25:51 UTC (rev 28259)
@@ -1024,7 +1024,7 @@
/*reverse frame in this sequence */
if(cfra <= seq->start) nr= seq->len-1;
else if(cfra >= seq->start+seq->len-1) nr= 0;
-   else nr= (seq->start + seq->len) - cfra;
+   else nr= (seq->start + seq->len - 1) - cfra;
} else {
if(cfra <= seq->start) nr= 0;
else if(cfra >= seq->start+seq->len-1) nr= seq->len-1;


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28258] trunk/blender: Brought back secondary input filtering, thereby

2010-04-18 Thread Peter Schlaile
Revision: 28258
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28258
Author:   schlaile
Date: 2010-04-18 15:05:17 +0200 (Sun, 18 Apr 2010)

Log Message:
---
Brought back secondary input filtering, thereby
fixing 
[#21014] SEQUENCER: Can no longer apply colour balance filter to colour effect 
strip.

Also: reordered some UI elements so that
geometry, time and color modifications are grouped together.

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-04-18 12:19:07 UTC 
(rev 28257)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-04-18 13:05:17 UTC 
(rev 28258)
@@ -497,7 +497,11 @@
 if not strip:
 return False
 
-return strip.type in ('MOVIE', 'IMAGE')
+return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META',
+  'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
+  'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
+  'PLUGIN',
+  'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED')
 
 def draw_filename(self, context):
 pass
@@ -590,7 +594,22 @@
 col = split.column()
 col.prop(elem, "filename", text="") # strip.elements[0] could be a 
fallback
 
+class SEQUENCER_PT_input_secondary(SEQUENCER_PT_input):
+bl_label = "Strip Input"
 
+def poll(self, context):
+if not self.has_sequencer(context):
+return False
+
+strip = act_strip(context)
+if not strip:
+return False
+
+return strip.type in ('SCENE', 'META')
+
+def draw_filename(self, context):
+pass
+
 class SEQUENCER_PT_sound(SequencerButtonsPanel):
 bl_label = "Sound"
 
@@ -660,7 +679,11 @@
 if not strip:
 return False
 
-return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META')
+return strip.type in ('MOVIE', 'IMAGE', 'SCENE', 'META',
+  'ADD', 'SUBTRACT', 'ALPHA_OVER', 'ALPHA_UNDER',
+  'CROSS', 'GAMMA_CROSS', 'MULTIPLY', 'OVER_DROP',
+  'PLUGIN',
+  'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED')
 
 def draw(self, context):
 layout = self.layout
@@ -670,6 +693,14 @@
 col = layout.column()
 col.label(text="Video:")
 col.prop(strip, "strobe")
+
+row = layout.row()
+row.label(text="Flip:")
+row.prop(strip, "flip_x", text="X")
+row.prop(strip, "flip_y", text="Y")
+
+col = layout.column()
+col.prop(strip, "reverse_frames", text="Backwards")
 col.prop(strip, "de_interlace")
 
 col = layout.column()
@@ -678,12 +709,6 @@
 col.prop(strip, "premultiply")
 col.prop(strip, "convert_float")
 
-col = layout.column()
-col.label(text="Flip:")
-col.prop(strip, "flip_x", text="X")
-col.prop(strip, "flip_y", text="Y")
-col.prop(strip, "reverse_frames", text="Backwards")
-
 layout.prop(strip, "use_color_balance")
 if strip.color_balance: # TODO - need to add this somehow
 row = layout.row()
@@ -766,6 +791,7 @@
 SEQUENCER_PT_effect,
 SEQUENCER_PT_input_movie,
 SEQUENCER_PT_input_image,
+SEQUENCER_PT_input_secondary,
 SEQUENCER_PT_sound,
 SEQUENCER_PT_scene,
 SEQUENCER_PT_filter,

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-04-18 12:19:07 UTC (rev 28257)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-04-18 13:05:17 UTC (rev 28258)
@@ -1028,6 +1028,7 @@
RNA_def_struct_ui_text(srna, "Effect Sequence", "Sequence strip 
applying an effect on the images created by other strips");
RNA_def_struct_sdna(srna, "Sequence");
 
+   rna_def_filter_video(srna);
rna_def_proxy(srna);
 }
 


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28257] trunk/blender/source/blender/ editors/space_sequencer/sequencer_ops.c: Brought back N-key for sequencer preview.

2010-04-18 Thread Peter Schlaile
Revision: 28257
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28257
Author:   schlaile
Date: 2010-04-18 14:19:07 +0200 (Sun, 18 Apr 2010)

Log Message:
---
Brought back N-key for sequencer preview.

Modified Paths:
--
trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
===
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
2010-04-18 12:00:53 UTC (rev 28256)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_ops.c
2010-04-18 12:19:07 UTC (rev 28257)
@@ -222,5 +222,6 @@
 
keymap= WM_keymap_find(keyconf, "SequencerPreview", SPACE_SEQ, 0);
WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", HOMEKEY, 
KM_PRESS, 0, 0);
+   WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 
0, 0);
 }
 


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28256] trunk/blender/source/blender/ editors/space_file/filelist.c: Added RAW-DV-files (.dv) to filelist, so that drag-n-drop

2010-04-18 Thread Peter Schlaile
Revision: 28256
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28256
Author:   schlaile
Date: 2010-04-18 14:00:53 +0200 (Sun, 18 Apr 2010)

Log Message:
---
Added RAW-DV-files (.dv) to filelist, so that drag-n-drop
to the sequencer timeline works properly.

Modified Paths:
--
trunk/blender/source/blender/editors/space_file/filelist.c

Modified: trunk/blender/source/blender/editors/space_file/filelist.c
===
--- trunk/blender/source/blender/editors/space_file/filelist.c  2010-04-18 
10:49:45 UTC (rev 28255)
+++ trunk/blender/source/blender/editors/space_file/filelist.c  2010-04-18 
12:00:53 UTC (rev 28256)
@@ -877,6 +877,7 @@
||  BLI_testextensie(file->relname, ".wmv")
||  BLI_testextensie(file->relname, ".ogv")
||  BLI_testextensie(file->relname, ".mpeg")
+   ||  BLI_testextensie(file->relname, ".dv")
||  BLI_testextensie(file->relname, ".mpg")
||  BLI_testextensie(file->relname, ".mpg2")
||  BLI_testextensie(file->relname, ".vob")
@@ -934,6 +935,7 @@
||  BLI_testextensie(file->relname, ".mv")
||  BLI_testextensie(file->relname, ".wmv")
||  BLI_testextensie(file->relname, ".ogv")
+   ||  BLI_testextensie(file->relname, ".dv")
||  BLI_testextensie(file->relname, ".mpeg")
||  BLI_testextensie(file->relname, ".mpg")
||  BLI_testextensie(file->relname, ".mpg2")


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28131] trunk/blender/source/blender/ makesrna/intern/rna_sequencer.c: == Sequencer ==

2010-04-11 Thread Peter Schlaile
Revision: 28131
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28131
Author:   schlaile
Date: 2010-04-11 21:27:41 +0200 (Sun, 11 Apr 2010)

Log Message:
---
== Sequencer ==

Forgotten file from last commit: custom proxy files.

Modified Paths:
--
trunk/blender/source/blender/makesrna/intern/rna_sequencer.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-04-11 19:26:46 UTC (rev 28130)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequencer.c
2010-04-11 19:27:41 UTC (rev 28131)
@@ -341,6 +341,35 @@
return strlen(path)+1;
 }
 
+static void rna_Sequence_proxy_filepath_set(PointerRNA *ptr, const char *value)
+{
+   StripProxy *proxy= (StripProxy*)(ptr->data);
+   char dir[FILE_MAX], name[FILE_MAX];
+
+   BLI_split_dirfile(value, dir, name);
+   BLI_strncpy(proxy->dir, dir, sizeof(proxy->dir));
+   BLI_strncpy(proxy->file, name, sizeof(proxy->file));
+}
+
+static void rna_Sequence_proxy_filepath_get(PointerRNA *ptr, char *value)
+{
+   StripProxy *proxy= (StripProxy*)(ptr->data);
+   char path[FILE_MAX];
+
+   BLI_join_dirfile(path, proxy->dir, proxy->file);
+   BLI_strncpy(value, path, strlen(path)+1);
+}
+
+static int rna_Sequence_proxy_filepath_length(PointerRNA *ptr)
+{
+   StripProxy *proxy= (StripProxy*)(ptr->data);
+   char path[FILE_MAX];
+
+   BLI_join_dirfile(path, proxy->dir, proxy->file);
+   return strlen(path)+1;
+}
+
+
 /*static void rna_SoundSequence_filename_set(PointerRNA *ptr, const char 
*value)
 {
Sequence *seq= (Sequence*)(ptr->data);
@@ -468,12 +497,13 @@

prop= RNA_def_property(srna, "directory", PROP_STRING, PROP_DIRPATH);
RNA_def_property_string_sdna(prop, NULL, "dir");
-   RNA_def_property_ui_text(prop, "Directory", "Location to story the 
proxy file");
+   RNA_def_property_ui_text(prop, "Directory", "Location to store the 
proxy files");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");

-   prop= RNA_def_property(srna, "file", PROP_STRING, PROP_DIRPATH);
-   RNA_def_property_string_sdna(prop, NULL, "file");
-   RNA_def_property_ui_text(prop, "File", "Proxy file name");
+   prop= RNA_def_property(srna, "filepath", PROP_STRING, PROP_FILEPATH);
+   RNA_def_property_ui_text(prop, "Path", "Location of custom proxy file");
+   RNA_def_property_string_funcs(prop, "rna_Sequence_proxy_filepath_get", 
"rna_Sequence_proxy_filepath_length", "rna_Sequence_proxy_filepath_set");
+
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");
 }
 
@@ -844,6 +874,11 @@
RNA_def_property_boolean_sdna(prop, NULL, "flag", 
SEQ_USE_PROXY_CUSTOM_DIR);
RNA_def_property_ui_text(prop, "Proxy Custom Directory", "Use a custom 
directory to store data");
RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");
+
+   prop= RNA_def_property(srna, "proxy_custom_file", PROP_BOOLEAN, 
PROP_NONE);
+   RNA_def_property_boolean_sdna(prop, NULL, "flag", 
SEQ_USE_PROXY_CUSTOM_FILE);
+   RNA_def_property_ui_text(prop, "Proxy Custom File", "Use a custom file 
to read proxy data from");
+   RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, 
"rna_Sequence_update");
 }
 
 static void rna_def_input(StructRNA *srna)


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28130] trunk/blender: == Sequencer ==

2010-04-11 Thread Peter Schlaile
Revision: 28130
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28130
Author:   schlaile
Date: 2010-04-11 21:26:46 +0200 (Sun, 11 Apr 2010)

Log Message:
---
== Sequencer ==

Made custom proxy files a lot more sensible to select
(upgraded to filepath get/setters)

Changed semantics, since custom files don't make much
sense without custom directories...

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/blenkernel/intern/sequencer.c
trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-04-11 18:37:49 UTC 
(rev 28129)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-04-11 19:26:46 UTC 
(rev 28130)
@@ -727,9 +727,12 @@
 
 flow = layout.column_flow()
 flow.prop(strip, "proxy_custom_directory")
+flow.prop(strip, "proxy_custom_file")
 if strip.proxy: # TODO - need to add this somehow
-flow.prop(strip.proxy, "directory")
-flow.prop(strip.proxy, "file")
+if strip.proxy_custom_directory and not strip.proxy_custom_file:
+flow.prop(strip.proxy, "directory")
+if strip.proxy_custom_file:
+flow.prop(strip.proxy, "filepath")
 
 
 class SEQUENCER_PT_view(SequencerButtonsPanel_Output):

Modified: trunk/blender/source/blender/blenkernel/intern/sequencer.c
===
--- trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-04-11 
18:37:49 UTC (rev 28129)
+++ trunk/blender/source/blender/blenkernel/intern/sequencer.c  2010-04-11 
19:26:46 UTC (rev 28130)
@@ -1231,7 +1231,8 @@
return FALSE;
}
 
-   if (seq->flag & SEQ_USE_PROXY_CUSTOM_DIR) {
+   if ((seq->flag & SEQ_USE_PROXY_CUSTOM_DIR)
+   || (seq->flag & SEQ_USE_PROXY_CUSTOM_FILE)) {
strcpy(dir, seq->strip->proxy->dir);
} else {
if (seq->type == SEQ_IMAGE || seq->type == SEQ_MOVIE) {

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===
--- trunk/blender/source/blender/blenloader/intern/readfile.c   2010-04-11 
18:37:49 UTC (rev 28129)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c   2010-04-11 
19:26:46 UTC (rev 28130)
@@ -9646,6 +9646,17 @@
BLI_path_abs(str, G.sce);
seq->sound = 
sound_new_file(main, str);
}
+   /* don't know, if anybody used that
+  this way, but just in case, upgrade
+  to new way... */
+   if((seq->flag & 
SEQ_USE_PROXY_CUSTOM_FILE) &&
+  !(seq->flag & 
SEQ_USE_PROXY_CUSTOM_DIR))
+   {
+   
+   
snprintf(seq->strip->proxy->dir, 
+FILE_MAXDIR, 
"%s/BL_proxy", 
+seq->strip->dir);
+   }
}
}
}


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28129] trunk/blender: == Sequencer ==

2010-04-11 Thread Peter Schlaile
Revision: 28129
  
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28129
Author:   schlaile
Date: 2010-04-11 20:37:49 +0200 (Sun, 11 Apr 2010)

Log Message:
---
== Sequencer ==

Proxy render size settings is now back. (Maybe still in need of some sensible
icons, though...)

Also: waveform color seperation works in N-keys dialog again.

Modified Paths:
--
trunk/blender/release/scripts/ui/space_sequencer.py
trunk/blender/source/blender/makesdna/DNA_space_types.h
trunk/blender/source/blender/makesrna/intern/rna_space.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===
--- trunk/blender/release/scripts/ui/space_sequencer.py 2010-04-11 16:41:43 UTC 
(rev 28128)
+++ trunk/blender/release/scripts/ui/space_sequencer.py 2010-04-11 18:37:49 UTC 
(rev 28129)
@@ -741,10 +741,13 @@
 st = context.space_data
 
 col = layout.column()
-col.prop(st, "draw_overexposed") # text="Zebra"
-col.prop(st, "draw_safe_margin")
+if st.display_mode == 'IMAGE':
+col.prop(st, "draw_overexposed") # text="Zebra"
+col.prop(st, "draw_safe_margin")
+if st.display_mode == 'WAVEFORM':
+col.prop(st, "separate_color_preview")
+col.prop(st, "proxy_render_size");
 
-
 classes = [
 SEQUENCER_HT_header, # header/menu classes
 SEQUENCER_MT_view,

Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h
===
--- trunk/blender/source/blender/makesdna/DNA_space_types.h 2010-04-11 
16:41:43 UTC (rev 28128)
+++ trunk/blender/source/blender/makesdna/DNA_space_types.h 2010-04-11 
18:37:49 UTC (rev 28129)
@@ -872,7 +872,15 @@
 #define SEQ_VIEW_PREVIEW   2
 #define SEQ_VIEW_SEQUENCE_PREVIEW  3
 
+/* sseq->render_size */
+#define SEQ_PROXY_RENDER_SIZE_NONE  -1
+#define SEQ_PROXY_RENDER_SIZE_SCENE 0
+#define SEQ_PROXY_RENDER_SIZE_2525
+#define SEQ_PROXY_RENDER_SIZE_5050
+#define SEQ_PROXY_RENDER_SIZE_7575
+#define SEQ_PROXY_RENDER_SIZE_FULL  100
 
+
 /* space types, moved from DNA_screen_types.h */
 enum {
SPACE_EMPTY,

Modified: trunk/blender/source/blender/makesrna/intern/rna_space.c
===
--- trunk/blender/source/blender/makesrna/intern/rna_space.c2010-04-11 
16:41:43 UTC (rev 28128)
+++ trunk/blender/source/blender/makesrna/intern/rna_space.c2010-04-11 
18:37:49 UTC (rev 28129)
@@ -1311,6 +1311,15 @@
{SEQ_DRAW_IMG_VECTORSCOPE, "VECTOR_SCOPE", 
ICON_SEQ_CHROMA_SCOPE, "Chroma Vectorscope", ""},
{SEQ_DRAW_IMG_HISTOGRAM, "HISTOGRAM", ICON_SEQ_HISTOGRAM, 
"Histogram", ""},
{0, NULL, 0, NULL, NULL}};
+
+   static EnumPropertyItem proxy_render_size_items[] = {
+   {SEQ_PROXY_RENDER_SIZE_NONE, "NONE", ICON_SEQ_PREVIEW, "No 
display", ""},
+   {SEQ_PROXY_RENDER_SIZE_SCENE, "SCENE", ICON_SEQ_PREVIEW, "Scene 
render size", ""},
+   {SEQ_PROXY_RENDER_SIZE_25, "PROXY_25", ICON_SEQ_PREVIEW, "Proxy 
size 25%", ""},
+   {SEQ_PROXY_RENDER_SIZE_50, "PROXY_50", ICON_SEQ_PREVIEW, "Proxy 
size 50%", ""},
+   {SEQ_PROXY_RENDER_SIZE_75, "PROXY_75", ICON_SEQ_PREVIEW, "Proxy 
size 75%", ""},
+   {SEQ_PROXY_RENDER_SIZE_FULL, "FULL", ICON_SEQ_PREVIEW, "No 
proxy, full render", ""},
+   {0, NULL, 0, NULL, NULL}};

srna= RNA_def_struct(brna, "SpaceSequenceEditor", "Space");
RNA_def_struct_sdna(srna, "SpaceSeq");
@@ -1381,7 +1390,13 @@
RNA_def_property_range(prop, 0, 110);
RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);

+   prop= RNA_def_property(srna, "proxy_render_size", PROP_ENUM, PROP_NONE);
+   RNA_def_property_enum_sdna(prop, NULL, "render_size");
+   RNA_def_property_enum_items(prop, proxy_render_size_items);
+   RNA_def_property_ui_text(prop, "Proxy render size", "Draw preview using 
full resolution or different proxy resolutions");
+   RNA_def_property_update(prop, NC_SPACE|ND_SPACE_SEQUENCER, NULL);

+   
/* not sure we need rna access to these but adding anyway */
prop= RNA_def_property(srna, "offset_x", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "xof");


___
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs


  1   2   3   >