[Bf-blender-cvs] [a8eb95c] master: Fix T39597: Missing entries in VSE Preview menu
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 ==
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 ==
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 ==
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 ==
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 ==
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
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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
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 ==
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:
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 ==
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 ==
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 ==
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
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 ==
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 ==
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
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
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
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 ==
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 ==
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
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 ==
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:
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 ==
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
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
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
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
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:
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 ==
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 ==
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 ==
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
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
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
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
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 ==
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...
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.
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 ==
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)
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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 ==
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
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:
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:
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:
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 ==
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 ==
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 ==
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
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.
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
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.
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 ==
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:
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
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.
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
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 ==
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 ==
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 ==
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