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
2021-09-22Cleanup: make formatDalai Felinto
2021-09-21Cleanup: Clang-tidy warningsRichard Antalik
2021-09-21VSE strip thumbnailsAditya Y Jeppu
Draw thumbnails as strip overlay. This works for movie and image strips. To draw thumbnails, this overlay has to be enabled and strips must be tall enough. The thumbnails are loaded from source file using separate thread and stored in cache. Drawing code uses only images stored in cache, and if any is missing, background rendering job is started. If job can not render thumbnail, to prevent endless loop of creating job for missing image it sets `SEQ_FLAG_SKIP_THUMBNAILS` bit of `Sequence` flag. To prevent visual glitches during timeline panning and zooming, `View2D` flag `V2D_IS_NAVIGATING` is implemented. If bit is set, drawing code will look for set of evenly distributed thumbnails that should be guaranteed to exist and also set of previously displayed thumbnails. Due to volatile nature of cache these thumbnails can be missing anyway, in which case no new thumbnails will be drawn for particular strip. Cache capacity is limited to 5000 thumbnails and performs cleanup of non visible images when limit is reached. ref T89143 Reviewed By: ISS Differential Revision: https://developer.blender.org/D12266
2021-09-21VSE: Image transform toolsRichard Antalik
Add tools for image manipulation in sequencer preview region. This includes: - Translate, rotate and resize operators, tools and gizmos - Origin for image transformation - Median point and individual origins pivot modes - Select and Box select operator works in preview - Image overlay drawing ref T90156 Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D12105
2021-09-02Cleanup: remove redundant alloc argument to SEQ_editing_getCampbell Barton
Callers that require lazy initialization can use SEQ_editing_ensure.
2021-08-24VSE: Cleanup speed effect mathRichard Antalik
Simplify logic of speed effect frame calculation by using discrete math where possible. Only `SEQ_SPEED_MULTIPLY` mode with animation requires frame map to be built. Frame map building was simplified by removing unused branches. Functional change: Animating strip in negative range will reverse playback. I assume this was limitation of previous system, where each frame map item was limited to be within correct frame range. Now frame map can contain values that point beyond usable range and they are limited by `seq_speed_effect_target_frame_get`. This way it is possible to control playback rate in both directions. Mostly fixes T89120 apart from offset handling. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D11939
2021-07-15Cleanup: replace BLI_assert(!"text") with BLI_assert_msg(0, "text")Campbell Barton
This shows the text as part of the assertion message.
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-07-01Fix memory leak in VSE transform codeRichard Antalik
SeqCollection wasn't freed. It wasn't easy to find culprit so added argument to SEQ_collection_create() to pass function name. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11746
2021-06-28Cleanup: repeated terms in code comments & error messagesCampbell Barton
2021-06-22Cleanup: rename playhead in the UI and codeCampbell Barton
Current convention is not to use this term, use "current frame", and "timeline frame" in render.c as this is the argument passed in.
2021-06-14Cleanup: clang-formatCampbell Barton
2021-06-11Sequencer: Transform ImBuf Processor.Jeroen Bakker
Inside the sequencer the cropping and transform of images/buffers were implemented locally. This reduced the optimizations that a compiler could do and added confusing code styles. This patch adds `IMB_transform` to reduce the confusion and increases compiler optimizations as more code can be inlined and we can keep track of indices inside the inner loop. This increases end-user performance by 30% when playing back aa video in VSE. Reviewed By: ISS, zeddb Differential Revision: https://developer.blender.org/D11549
2021-06-09Fix failing test case sequence_transform.Jeroen Bakker
2021-06-08Sequencer: Performance image crop transform.Jeroen Bakker
During transforming an image, a matrix multiplication per pixel was done. The matrix in itself is always linear so it could be replaced by two additions. During testing in debug builds playing back a movie went from 20fps to 300 fps. Reviewed By: zeddb Differential Revision: https://developer.blender.org/D11533
2021-06-05FFmpeg: Fix seeking not returning the correct frame when not using TC indexSebastian Parborg
Fixed the logic for seeking in ffmpeg video files. The main fix is that we now apply a small offset in ffmpeg_get_seek_pos to make sure we don't get the frame in front of the seek position when seeking backward. The rest of the changes is general cleanup and untangling code. Reviewed By: Richard Antalik Differential Revision: http://developer.blender.org/D11492
2021-06-02VSE: Add strip-time intersection test functionRichard Antalik
Use SEQ_time_strip_intersects_frame function to test if strip intersects with frame. Note: There are cases where this function should not be used. For example splitting strips require at least 1 frame "inside" strip. Another example is drawing, where playhead technically doesn't intersect strip, but it is rendered, because current frame has "duration" or "thickness" of 1 frame. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11320
2021-05-31Display source video fps in the VSESebastian Parborg
Now FPS is displayed in the video source for videos to provide easy access. Reviewed By: Richard Antalik Differential Revision: http://developer.blender.org/D11441
2021-05-24Fix T88466: Sound strips prevent strip renderingRichard Antalik
When sound strip is above another strip such as movie strip, it prevents from rendering movie strip. This bug was introduced in 0b7744f4da66. Function `must_render_strip()` checks if there is any strip with `SEQ_BLEND_REPLACE` blending and considers this strip as lowest strip in stack. Sound strips do have this blend mode set, which caused the bug. Remove all sound strips and muted strips from stack collection before checking with `must_render_strip()` function
2021-05-21Cleanup: spellingLeon Zandman
Includes fixes to misspelled function names. Ref D11280
2021-05-20GPencil: Fix missing annotations in VSE stripAntonio Vazquez
Since version 2.80, the annotations of the Scene strip were not displayed in VSE. Also, the UI panel was`Grease Pencil` and must be `Annotation` The problem was the offscreen render hasn't evil_CTX and the section of the annotation was never called. Differential Revision: https://developer.blender.org/D11329
2021-05-19VSE: Fix rendering inconsistencyRichard Antalik
Fix issue described in T87678, which was partially a bug and partially change in intended(at least as far as I can tell) behaior. Function `evaluate_seq_frame_gen` that was partially responsible for filtering strips in stack for rendering wasn't working correctly. Intended functionality seems to be removing all effect inputs from stack as it is unlikely that user would want these to be blended in. However there was logic to exclude effects placed into same input, which because of weak implementation caused, that any effect input, that is effect as well will be considered to be part of stack to be blended in. This bug was apparently used to produce effects like glow over original image. Even though this is originally unintended, I have kept this logic, but I have made it explicit. Another change is request made in T87678 to make it possible to keep effect inputs as part of stack when they are placed above the effect, which would imply that blending is intended. This change is again explicitly defined. Whole implementation has been refactored, so logic is consolidated and code should be as explicit as possible and more readable. `must_render_strip function` may be still quite hard to read, not sure if I can make it nicer. Last change is for remove gaps feature code - it used same rendering code, which may be reason why its logic was split in first place. Now it uses sequencer iterator, which will definitely be faster than original code, but I could have used `LISTBASE_FOREACH` in this case. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11301
2021-04-28VSE: Fix colorbleed on scaled imagesRichard Antalik
When frame is rendered to file, bilinear interpolation on scaled images caused blurred edges. This is fixed by not doing interpolation with pixels outside of source buffer. Such fix doesn't cover cropped images which are currently cropped by filling area of image with black transparent color, because image buffer has bigger size than visible image area. This is fixed by offsetting range used in previous fix by amount, that would correspond to crop distance. Because of this, image area doesn't even need to be filled with transparency. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11058
2021-04-22Fix T86682: Scene strip DOF not evaluated correctlyRichard Antalik
Camera object used for rendering reffered to original not evaluated data. Use `DEG_get_evaluated_object()` to get evaluated camera. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11039
2021-03-20Fix T54395: Original image size set incorrectlyEitan
`SequenceElement` type `orig_height` and `orig_width` members were set to incorrect size when using proxies and not set when strip was added which caused value to be unset. Since now image dimensions must be read when strip is created, these members can be initialized. When proxies are used, do not set original size since it is not guaranteed, that proxies are exact size. These values are not guaranteed to be up to date or exact. They should be used for strictly informative purposes. Reviewed By: ISS Differential Revision: https://developer.blender.org/D6506
2021-03-16VSE: Simplify proxy settingsRichard Antalik
- Remove Full Render size from VSE preview size. Use just 100% instead. - Add Use Proxies checkbox to control whether proxies are used globally - Move preview size to top so it is most prominent - Set default to 100% preview size and use proxies Reviewed By: sergey, fsiddi Differential Revision: https://developer.blender.org/D10362
2021-03-02Fix T85970: Incorrect scaling of meta stripsRichard Antalik
This is same issue as fixed by d85789255320, but I forgot to check meta strips. Meta strip output is always in render size. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10560
2021-03-02VSE: Refactor VSE strip loading codeRichard Antalik
Isolate RNA and operator logic from functions that create strips. - Operator specific code was removed from `SeqLoadInfo` structure and `SEQ_add_*` functions. - Strip loading code was removed from RNA and operator functions. - `SEQ_add_*` API was unified to work on `SeqLoadData` struct. Only exception is image strip, which require files to be loaded separately to strip creation itself. This is not ideal, but I think it's acceptable. - Some functions and variables were refactored so the code reads better. There are minor functional changes (coincidental bugfixes): - Operator errors are reported per-strip. Previously they were not reported at all? - `new_sound()` RNA API function now create sound with length of 1 if source file does not exist. Previously it created strip with length of 0. - Replace selection operator property wasn't working correctly. Fixed in this patch. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9760
2021-02-05Cleanup: correct spelling in commentsCampbell Barton
2021-02-01Merge branch 'blender-v2.92-release'Richard Antalik
2021-02-01VSE: Fix proxy images have incorrect sizeRichard Antalik
This bug happens when media size doesn't match scene size and proxies are enabled. This is because some strips are rendered in preview size already - effects, mask or strips using proxies. If strip input is prescaled it needs to be known when transforming images, which does also scaling to preview size as one operation. whether image needs prescaling is defined in function `seq_need_scale_to_render_size()` Problem was introduced in 571362642201. Previously all images were scaled to fit into preview, and this was considered as baseline for further image transformation. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10183
2021-01-25VSE: Remove skip_disk_cache argumentRichard Antalik
This argument was used to prevent infinite loop in lookups between disk and RAM cache. Code was refactored, so this can be handled internally in cache. Reviewed By: sybren, sergey Differential Revision: https://developer.blender.org/D9955
2021-01-11VSE: store raw images in cacheRichard Antalik
Previously raw images were not cached if image wasn't preprocessed. This caused issue, that image had to be read from disk on every redraw. Effect strips must be excluded, because this would cause problem with invalidation. Effect strips can use preprocessing however. This is mainly to allow usimg modifiers on them. This change should follow rBf448ff2afe7a77, but I have wrongly assumed, that it has been implemented already. ref T80278
2020-12-20VSE: Remove cost calculation from cacheRichard Antalik
This value was meant to be used for keeping images that are slowest to render in cache. Method of measurement was flawed, because it doesn't take UI overhead into consideration. Cache panel is to be removed because users should not have to tweak settings like this. It is not useful for development either, therefore it is removed completely.
2020-12-19Cleanup: Split SEQ_sequencer.h fileRichard Antalik
2020-12-19Cleanup: Rename BKE_sequencer functionsRichard Antalik
API functions get SEQ_ prefix. Intern functions get seq_ prefix Functions also have appropriate category included in name.
2020-12-16VSE: Improve motion-picture workflowRichard Antalik
This commit resolves problem introduced in e1665c3d3190 - it was difficult to import media at their original resolution. This is done by using original resolution as reference for scale. All crop and strip transform values and their animation is converted form old files. To make both workflows easy to use, sequencer tool settings have been created with preset for preffered scaling method. This setting is in sequencer timeline header and add image or movie strip operator properties. Two new operators have been added: `sequencer.strip_transform_fit` operator with 3 options: Scale To Fit, Scale to Fill and Stretch To Fill. Operator can fail if strip image or video is not loaded currently, this case should be either sanitized or data loaded on demand. `sequencer.strip_transform_clear` operator with 4 options: Clear position, scale, rotation and all (previous 3 options combined). Reviewed By: sergey, fsiddi Differential Revision: https://developer.blender.org/D9582
2020-12-15VSE: Move remove gaps operator logic to module codeRichard Antalik
Logic was broken into finding gaps and ofsetting strips. Functions were modified so they work on explicitly defined seqbase, so they can be used as python API functions. Functional changes: - Improve performance by calculating gap length and offseting strips at once. Previously strips were offset by one frame. - Calculate gap from start frame. Previously gap was considered only inbetween strips. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9730
2020-11-16Cleanup: split sequencer.c fileRichard Antalik
Move most functions into separate files. File sequencer.c is reserved for alloc, free and duplicating functions. There should be no functional changes.
2020-11-12Cleanup: spellingCampbell Barton
2020-11-06VSE: Don't store proxy images in cacheRichard Antalik
Proxies are expected to be fast to read. Storing them in cache has little to no effect on performance. This change also allows to omit invalidation of cache when user switch between proxies and original media. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9473
2020-11-06Cleanup: rename time related variablesRichard Antalik
Variables renaned: - cfra -> timeline_frame - nr -> frame index - cfra_over -> overlap_frame Function seq_give_stripelem_index was renamed to seq_give_frame_index.
2020-11-05Rename extern rendering and proxy functionsRichard Antalik
Replace BKE_sequencer wirh SEQ_render or SEQ_proxy prefixes. In cases where function is very generic, only SEQ prefix is used. Reviewed By: sergey Differential Revision: https://developer.blender.org/D9439
2020-11-05Cleanup: split sequencer.c fileRichard Antalik
Move functions closely related to rendering images and proxies into render.c and proxy.c files. render.h and proxy.h are created for functions used internally. There should be no functional changes.