Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-18Send sequencer render context as const pointer rather than as valueSergey Sharybin
No functional changes just creepy to send rather huge structure by value.
2014-01-17Sequencer: don't cache frames during proxy rebuild jobSergey Sharybin
2013-12-26Threaded object update and EvaluationContextSergey Sharybin
Summary: Made objects update happening from multiple threads. It is a task-based scheduling system which uses current dependency graph for spawning new tasks. This means threading happens on object level, but the system is flexible enough for higher granularity. Technical details: - Uses task scheduler which was recently committed to trunk (that one which Brecht ported from Cycles). - Added two utility functions to dependency graph: * DAG_threaded_update_begin, which is called to initialize threaded objects update. It will also schedule root DAG node to the queue, hence starting evaluation process. Initialization will calculate how much parents are to be evaluation before current DAG node can be scheduled. This value is used by task threads for faster detecting which nodes might be scheduled. * DAG_threaded_update_handle_node_updated which is called from task thread function when node was fully handled. This function decreases num_pending_parents of node children and schedules children with zero valency. As it might have become clear, task thread receives DAG nodes and decides which callback to call for it. Currently only BKE_object_handle_update is called for object nodes. In the future it'll call node->callback() from Ali's new DAG. - This required adding some workarounds to the render pipeline. Mainly to stop using get_object_dm() from modifiers' apply callback. Such a call was only a workaround for dependency graph glitch when rendering scene with, say, boolean modifiers before displaying this scene. Such change moves workaround from one place to another, so overall hackentropy remains the same. - Added paradigm of EvaluaitonContext. Currently it's more like just a more reliable replacement for G.is_rendering which fails in some circumstances. Future idea of this context is to also store all the local data needed for objects evaluation such as local time, Copy-on-Write data and so. There're two types of EvaluationContext: * Context used for viewport updated and owned by Main. In the future this context might be easily moved to Window or Screen to allo per-window/per-screen local time. * Context used by render engines to evaluate objects for render purposes. Render engine is an owner of this context. This context is passed to all object update routines. Reviewers: brecht, campbellbarton Reviewed By: brecht CC: lukastoenne Differential Revision: https://developer.blender.org/D94
2013-08-29fix [#36570] Changing the filename of a image strip doesnt refresh sequencerCampbell Barton
was casting a StripElem as a Sequencer struct.
2013-08-20Fix [#36351] Changing the Frame Rate value doesnt adjust audio strip length.Bastien Montagne
Simply recalc sequence len for audio (and meta!) strips when modifying fps value. Note start, startofs and endofs are also updated, to try to keep final pos and length as consistent as possible.
2013-07-27code cleanup: typosCampbell Barton
2013-07-24fix [#36262] Paste strip with video or sound content from another file ↵Campbell Barton
crashes Blender existing code was very stupid. - all ID pointers for clipboard strips are handled uniformly. - clipboard stores a duplicate ID pointer which are restored on paste. - restoring pointers... -- use ID's that are still in the database (copy&paste within the same file). -- fallback to name lookup. -- fallback to loading them from the original filepath (movie-clip and sound only). also fix bug pasting where initialing the sound wasn't done if there was no frame-offset.
2013-07-15fix for bad lengths being passed to string functions.Campbell Barton
2013-05-28code cleanup: comment/remove unused definesCampbell Barton
2013-04-13code cleanup: use `const char` for args and replace wm_keyconfig_list_find() ↵Campbell Barton
-> BLI_findstring()
2013-03-21code cleanup: use bool where values are true/false, for view3d and related ↵Campbell Barton
functions.
2013-03-09use 'bool' for BLI_/BKE_ functions.Campbell Barton
2013-03-08style cleanupCampbell Barton
2013-02-28Fix sequencer crash when pasteing strips after creating new fileSergey Sharybin
Issue happened for scene. movie clip and mask strips, which contains pointers to datablocks which are freeing on loading new file. Also, scene strip would crash when pasted from clipboard after scene was unlinked from file.
2013-02-19Fixes for alpha mode do_versions codeSergey Sharybin
Before this change only old flag "Premultiply" was used to detect alpha mode, which is not enough actually. Now the logic here is: - If "Premultiply" was enabled it is likely float image with straight alpha, which shall be premultiplied before usage. In this case image/sequence Alpha Mode is set to Straight. - Otherwise use default alpha mode for image format based on an extension. This could fail in some cases like TIFF, but this wasn't handled fully correct in older blender anyway. Initial discovered issue was that EXR images saved in older Blender versions were set to Straight alpha mode, which is obviously a straight way to lots of headache.
2012-12-12Sequencer: add textured solid option for opengl previewSergey Sharybin
2012-11-12code cleanup: spelling,Campbell Barton
also initialize bmesh-bevel settings struct to zero to avoid possible uninitialized memory later.
2012-11-05Sequencer: input color space support for image and movie stripsSergey Sharybin
2012-10-12quiet some -Wshadow warningsCampbell Barton
2012-10-07add type checking for more error prone macros.Campbell Barton
2012-10-04Fix #32755: Stripes in Metastrip can not be moved on other channel with ↵Sergey Sharybin
mouse (grab tool) The issue was caused by SEQ_BEGIN macro modifying sequence's depth which ruined transformation routines. Used own DFS instead which doesn't modify sequences. Also corrected some typos in api and comments.
2012-09-15Color Management, Stage 2: Switch color pipeline to use OpenColorIOSergey Sharybin
Replace old color pipeline which was supporting linear/sRGB color spaces only with OpenColorIO-based pipeline. This introduces two configurable color spaces: - Input color space for images and movie clips. This space is used to convert images/movies from color space in which file is saved to Blender's linear space (for float images, byte images are not internally converted, only input space is stored for such images and used later). This setting could be found in image/clip data block settings. - Display color space which defines space in which particular display is working. This settings could be found in scene's Color Management panel. When render result is being displayed on the screen, apart from converting image to display space, some additional conversions could happen. This conversions are: - View, which defines tone curve applying before display transformation. These are different ways to view the image on the same display device. For example it could be used to emulate film view on sRGB display. - Exposure affects on image exposure before tone map is applied. - Gamma is post-display gamma correction, could be used to match particular display gamma. - RGB curves are user-defined curves which are applying before display transformation, could be used for different purposes. All this settings by default are only applying on render result and does not affect on other images. If some particular image needs to be affected by this transformation, "View as Render" setting of image data block should be set to truth. Movie clips are always affected by all display transformations. This commit also introduces configurable color space in which sequencer is working. This setting could be found in scene's Color Management panel and it should be used if such stuff as grading needs to be done in color space different from sRGB (i.e. when Film view on sRGB display is use, using VD16 space as sequencer's internal space would make grading working in space which is close to the space using for display). Some technical notes: - Image buffer's float buffer is now always in linear space, even if it was created from 16bit byte images. - Space of byte buffer is stored in image buffer's rect_colorspace property. - Profile of image buffer was removed since it's not longer meaningful. - OpenGL and GLSL is supposed to always work in sRGB space. It is possible to support other spaces, but it's quite large project which isn't so much important. - Legacy Color Management option disabled is emulated by using None display. It could have some regressions, but there's no clear way to avoid them. - If OpenColorIO is disabled on build time, it should make blender behaving in the same way as previous release with color management enabled. More details could be found at this page (more details would be added soon): http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management -- Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO integration and to Brecht van Lommel for some further development and code/ usecase review!
2012-09-14Sequencer: clear cache and animation buffers for strips outside of cursor ↵Sergey Sharybin
when rendering This avoids having bunch of cached images when doing animation rendering, keeping all the memory available for rendered itself. This keeps memory usage low when rendering huge edits with mixed scenes and movie strips. This should not affect on sped of video encoding, which was confirmed by some own tests. -- svn merge -r50051:50052 ^/branches/soc-2011-tomato
2012-09-13Sequencer: add missed cache invalidationSergey Sharybin
Invalidation was missed for: - Strip (Un)Muting - Changing speed effect - Strip translating
2012-09-06make freeing sequencer strip without cache an option only exposed within ↵Campbell Barton
sequencer.c
2012-09-06fix for crash in sequencer introduced with recent cache addition,Campbell Barton
- running undo with metastrips would crash immediately. - freeing a strip without a scene would crash (clipboard does this).
2012-09-04Sequencer: avoid allocating image buffer on every modifierSergey Sharybin
This means that modifier would operate on buffer which was passed to it, without creating copy of image buffer and operating on it. All current modifiers fit into this model and if it would need to have original buffer on modifier calculation, that particular modifier can create copy. Gives some percentage of boost.
2012-08-23style cleanupCampbell Barton
2012-08-21Sequencer: invalidate current frame cache on sequence transformSergey Sharybin
2012-08-20Sequencer: Python API for sequence modifiersSergey Sharybin
2012-08-19Sequencer: per-sequence modifier stack for color gradingSergey Sharybin
This implements basic color grading modifiers in sequencer, supporting color balance, RGB curves and HUE corrections. Implementation is close to object modifiers, some details are there: http://wiki.blender.org/index.php/User:Nazg-gul/SequencerModifiers Modifiers supports multi-threaded calculation, masks and instant parameter changes. Also added cache for pre-processed image buffers for current frame, so changing sequence properties does not require rendering of original sequence (like rendering scene, loading file from disk and so)
2012-08-18Typo fix: BKE_sequwnce_get_by_name -> BKE_sequence_get_by_nameJoshua Leung
2012-08-13draw ugly red bands on a sequence strip when its data cant be found (mask, ↵Campbell Barton
clip, scene, sound)
2012-08-11Sequencer: support for masked color balanceSergey Sharybin
This implements option which could be used to color balance only specified area. Currently done by adding Mask input to Adjustment effect. Affects on color balance and multiply settings. Supporting masked saturation control is in the list, not supported in this commit. Also show value slider in the right of color wheel.
2012-08-08Sequencer: initial implementation of multithreaded effectsSergey Sharybin
Added a framework to run effects in several threads. Port most of effects to this new framework. Still some work to be done here (some effects are not so easy to port)
2012-08-08Sequencer: initial support of refreshing only changed sequencesSergey Sharybin
Before this the the whole sequencer cache would be invalidated when hanging sequence settings. This was completely annoying because changing color balance settings would re-load image file for which color balance is happening on every change, In fact it's still an issue if color balance is changing for image strip itself, but if this strip has got effect and color balance is changing for it file wouldn't be reloaded.
2012-08-08Code cleanup: make some more functions more meaningful nameSergey Sharybin
2012-08-08Code cleanup: BKE_ prefix for public sequencer functionsSergey Sharybin
2012-08-08Code cleanup: remove redundant struct and some space cleanupSergey Sharybin
2012-08-08Code cleanup: mark functions as static, ifdef 0 some unused functionsSergey Sharybin
2012-07-24generalize mask poll functions and sequencer mask code.Campbell Barton
2012-05-29Massive Code cleanup:Thomas Dinges
* Remove all code for Texture and Sequencer plugin system, this never worked in 2.5x / 2.6x and is therefore not needed anymore. * DNA structures are kept, all read/writefile code is gone.
2012-05-19code cleanup: use TRUE/FALSE rather then 1/0 for better readability, also ↵Campbell Barton
replace do prefix with do_ for bool vars.
2012-05-13code cleanup: header cleanup and remove some duplicate defines.Campbell Barton
2012-05-11- dont create scene.sequence_editor on read, means data-browser or ↵Campbell Barton
autocomplete will allocate a sequencer. ... instead add scene.sequencer_editor_create / clear, these match id.animation_data_* functions. - refactor for names, for scene level functions call them BKE_sequencer_*
2012-04-15style cleanup: for loop macros, also add a config file for uncrustify source ↵Campbell Barton
formatter (able to get very close to our own style guide).
2012-03-27Clean-up logic of behavior of refresh/reload operators in sequencerSergey Sharybin
After discussion with Campbell we found much nicer solution which keeps operation with data much more clear: - Refresh Sequencer is totally harmless, do not touch actual data and just removes everything from cache - Reload Strip will reload data and adjust it's length for all selected strips without affecting on length of strip itself - Reload Strip and Adjust length will do the same but will also adjust length of strip itself.
2012-03-26Fix crash of Refresh Sequencer when some Movie / MovieClip strips doesn't ↵Sergey Sharybin
have animation opened
2012-03-21== Sequencer ==Peter Schlaile
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!)