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-27VSE: Clamp resulting frame in multiply modePeter Fog
The clamp added will ensure immediate speed direction change on changing to/from positive/negative speed factor when using the Speed effect strip's Multiply mode. Reviewed By: ISS, sergey Differential Revision: https://developer.blender.org/D12462
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-18Audaspace: added audio file streams functionality.Jörg Müller
On the blender side this commit fixes importing video files with audio and video streams that do not share the same start time and duration. Differential Revision: https://developer.blender.org/D12353
2021-09-06Cleanup: clang-formatAaron Carlisle
2021-09-02Cleanup: remove redundant alloc argument to SEQ_editing_getCampbell Barton
Callers that require lazy initialization can use SEQ_editing_ensure.
2021-09-02Cleanup: spelling in commentsCampbell Barton
2021-08-31Fix T90988: Incorrect speed effect strip mathRichard Antalik
Math implemented in 929d7597b345 was incorrect, but also inconsistent with previous behavior. `SEQ_SPEED_STRETCH` should change length only when right handle is moved. This is now documented in code.
2021-08-31Fix VSE move_to_meta function moving meta stripRichard Antalik
API function `move_to_meta` should move strips without changing context data like `MetaStack` that tells UI which meta strip should be displayed and operated upon. `SEQ_time_update_sequence` relied on `MetaStack` to update meta strip content length. Instead of changing function `SEQ_time_update_sequence`, use function `SEQ_time_update_meta_strip_range` directly. This is because caller would have to be aware of parent meta strip that needs update anyway.
2021-08-27Fix shadowing in sequencer iteratorSergey Sharybin
The __LINE__ was not properly expanded.
2021-08-27VSE: Transform overwrite modeRichard Antalik
Add mode to overwrite strips on overlap instead of resolving overlap. When overlap is created, 3 things can happen: - On partial overlap, handles of overlapped strip are moved - On complete overlap with smaller strip, overlapped strip is split - On complete overlap with larger strip, overlapped strip is removed This mode can be enabled in header. Reviewed By: fsiddi, mano-wii Differential Revision: https://developer.blender.org/D11805
2021-08-27Fix loading packed fonts for sequencer stripsCampbell Barton
2021-08-27Cleanup: use early returnCampbell Barton
2021-08-27Fix sequencer font loading using an unexpected pathCampbell Barton
Reuse the existing font loading function which handles this case.
2021-08-26Cleanup: sort struct blocksCampbell Barton
2021-08-26Cleanup: spelling in commentsCampbell Barton
2021-08-25Cleanup and remove SEQ_ALL_BEGIN macroSebastian Parborg
We now use a for_each function with callback to iterate through all sequences in the scene. This has the benefit that we now only loop over the sequences in the scene once. Before we would loop over them twice and allocate memory to store temporary data. The allocation of temporary data lead to unintentional memory leaks if the code used returns to exit out of the iteration loop. The new for_each callback method doesn't allocate any temporary data and only iterates though all sequences once. Reviewed By: Richard Antalik, Bastien Montagne Differential Revision: http://developer.blender.org/D12278
2021-08-24Cleanup: quiet clang-format warnings, unused argumentCampbell Barton
2021-08-24VSE: Add Sequence.parent_meta() python API functionFélix
This function can be used to find metastrip parent of nested strip. Reviewed By: ISS Differential Revision: https://developer.blender.org/D11985
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-08-24Fix T88237: Prefetch crash on rendering scene stripRichard Antalik
Prefetch needs to avoid rendering scene strips, because - Rendering in background needs own dependency graph, which fails to initialize from evaluated data. - This locks UI and can make it unresponsive for long time periods. In T88237 prefetch failed to avoid scene strip, because of effect strip was attached to scene strip. Ensure, that no effect that is attached to scene strip either directly or indirectly would be rendered. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11247
2021-08-24Fix T90407: Split fails on transition stripsRichard Antalik
When splitting strips, first they are duplicated and then offsets adjusted. This can fail on cross transitions, because some strips don't overlap with split frame. All strips, that relate to each other must be duplicated to ensure correct relations after splitting, so solution is to delete non overlapping strips from left or right side respectively. Since cross transition don't have to overlap with source strips, splitting such strips would lead to effect being deleted, which could cause crash when iterating over strips in python. Therefore splitting of such strips is now forbidden and will generate error. Splitting of transition will also generate error solely because such operation is illogical. Reviewed By: sergey Differential Revision: https://developer.blender.org/D12121
2021-08-24Fix T90646: VSE hangs when strips overlapRichard Antalik
When all strips are selected and overlap is caused, this causes VSE to hang in infinite loop, because such situation should never happen. To prevent infinite loop, ensure, that strip overlap is not tested against single overlapping strip itself. Prevent overlap that can not be handled because of issue described above by moving overlapping strip between channels. Reviewed By: campbellbarton Differential Revision: D12209
2021-08-23Cleanup: use BLI_str_utf8 prefixCampbell Barton
Rename: - BLI_str_utf8_invalid_byte (was BLI_utf8_invalid_byte) - BLI_str_utf8_invalid_strip (was BLI_utf8_invalid_strip)
2021-08-21Use Zstandard compression for the sequencer cacheLukas Stockner
Reviewed By: campbellbarton, brecht, mont29 Differential Revision: https://developer.blender.org/D5799
2021-08-18Fix T90737: VSE adding nested strips could have non-unique namesPhilipp Oeser
Caused by {rBbbb1936411a5}. When adding strips via the new SEQ_add_XXX_strip functions, the `Editing->seqbasep` pointer was passed around. Following in `seq_add_generic_update` this `seqbasep` pointer was used to ensure a unique name. But `seqbasep` is the pointer to the current list of seq's being edited (**which can be limited to the ones within a meta strip**). We need unique names across all strips though (since these are used for RNA paths, FCurves as reported), so now use the scene's `Editing- >seqbase` (**which is the list of the top-most sequences**) instead. Unfortunately this might have screwed files to a borked state, not sure if this could easily be fixed... Maniphest Tasks: T90737 Differential Revision: https://developer.blender.org/D12256
2021-08-16Cleanup: spellingCampbell Barton
2021-08-16Fix building without audaspaceCampbell Barton
2021-08-16VSE: Fix audaspace not reading ffmpeg files with start offset correctlySebastian Parborg
The duration and start time for audio strips were not correctly read in audaspace. Some video files have a "lead in" section of audio that plays before the video starts playing back. Before this patch, we would play this lead in audio at the same time as the video started and thus the audio would not be in sync anymore. Now the lead in audio is cut off and the duration should be correctly calculated with this in mind. If the audio starts after the video, the audio strip is shifted to account for this, but it will also lead to cut off audio which might not be wanted. However we don't have a simple way to solve this at this point. Differential Revision: http://developer.blender.org/D11917
2021-08-06Cleanup: use MEM_SAFE_FREE macroCampbell Barton
2021-07-26VSE: Fix snapping bugsRichard Antalik
Fix hold offset check causing missing snapping point when strip have only still frames. Fix effect strips of transformed strips causing snapping to prevoius strip positions. Reviewed By: mano-wii Differential Revision: https://developer.blender.org/D11948
2021-07-24Revert "VSE UX: Make Speed Effect strips more user friendly."Germano Cavalcante
This reverts commit 3123f33380b35ae93afee0a30f36bc7181927b28 and a092baa7f90b2d5f13771d46f64ff5cf86cc5a05.
2021-07-24VSE UX: Make Speed Effect strips more user friendly.Germano Cavalcante
**Drawing Changes:** - F-curve drawing for Stretch, Multiply, Length and Frame Number. - Value drawing when no keyframes for Stretch, Length and Frame Numbers. General view of the new drawing for each speed effect mode: {F9796642, size=full} Detail of the horizontal zero (blue) line in the new `Multiply` mode: {F9798520, size=full} Nice to have (but I don't know how): - Auto adjusting of endframe when using Multiply or Boost. Differential Revision: https://developer.blender.org/D6110
2021-07-23Cleanup: code comments punctuation / spacingCampbell Barton
2021-07-22VSE: Speed Effect layout updatesGermano Cavalcante
**Changes:** - New enums correspond to 4 modes: `Stretch`, `Multiply`, `Frame Number` and `Length`. - "`Multiply Factor`" has been removed; - Value corresponding to "`use as speed`" enabled is now the value appended to the `Multiply` enum; - Value corresponding to "`use as speed`" disabled is now the value appended to the `Frame Number` enum; - Value corresponding to "`Scale to Length`" enabled is now the value appended to the `Length` enum; - Except `Stretch` each mode has now its respective control values. Differential Revision: https://developer.blender.org/D11856
2021-07-20Cleanup: reserve C++ comments for disabled codeCampbell Barton
Use C comments for plain text.
2021-07-16VSE: Fix multicam splitting all selected stripsRichard Antalik
`split_multicam` used split operator, where if more strips than multicam were selected, all would be split, which is undesirable. Add `Sequence.split()` RNA API function. to split individual strips. Function accepts `frame` and `split_method arguments`. Returns right strip after splitting. In case when strip being split have effects, these will be split too, so no invalid state should be created. Selection is not handled, this is by design up to user. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11926
2021-07-16Cleanup: sort struct declarationsCampbell Barton
2021-07-15Fix: Subtitles: Order of channels in the .blend file will be kept in the ↵Paul Golter
.rst file. If text strips have the same start frame but are stacked on top of each other in different channels the order in which they are written in the .rst file was random before. Reviewed By: Richard Antalik Differential Revision: https://developer.blender.org/D11903
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-13Cleanup: minor changes to recent sequencer clipboard additionCampbell Barton
- Make the variable to store the name 'static'. - Use STRNCPY macro. - Set the first character to nil instead of memset for the while string.
2021-07-13VSE: Make pasted strip activeRichard Antalik
When adding texts or various simple effects I often copy-paste strips to reuse properties from a template such as font or position. I assume this is common workflow. Issue with this workflow is, that active strip is not changed after pasting, so when adjusting property, it is original strip that is being modified. This is not issue when duplicating strips - selection state is transfered to duplicate strips, such that duplicate of active strip is set to be active and duplicate of selected strip is set to selected. Implement same selection transfering behavior in paste operator, that exists in duplicate operator. Since strip can be deleted after copying, it is not possible to rely on sequencer state. This is true even when pasting strips to different scene. Therefore active strip name must be stored in clipboard. Reviewed By: sergey, Severin Differential Revision: https://developer.blender.org/D11781
2021-07-08CMake: add missing headers, sort file listsCampbell Barton
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-07-01Cleanup: rename playhead to current-frameCampbell Barton
2021-06-30Cleanup: use const arguments for accessor functionsCampbell Barton
2021-06-30Cleanup: rename 'count' to 'len'Campbell Barton
Reserve the term count for values that require calculation (typically linked lists). Without this convention it's difficult to know if using a length accessor function in a loop will be O(N^2) without inspecting the underlying implementation.