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
2022-08-26Cleanup: use booleansCampbell Barton
2022-08-26Cleanup: reduce variable scopeCampbell Barton
2022-08-23Cleanup: match names between functions & declarationsCampbell Barton
2022-08-02Fix T100049: Crash when render finishesRichard Antalik
Caused by NULL dereference of `Editing` before NULL check was done.
2022-07-29Fix (unreported) lib-linking of ID properties not taking library parameter.Bastien Montagne
While this was not a critical issue (that lib pointer is only used for some kind of sanity check that no linked data uses local ID pointers), better to keep `IDP_BlendReadLib` in sync with all other lib-linking code.
2022-07-15Cleanup: add utlity function to compute render resolutionBrecht Van Lommel
Instead of duplicating logic many times.
2022-07-08Fix T99494: Transition effects not working correctlyRichard Antalik
This was caused by strip content length and start position being incorrect. Previously this was set from strip boundary by update function, but it was removed. Add back code to set effect strip start and length. Previously content length was always 1 for effects, but now it must correspond to strip length. Because of this workaround for speed effect to get this apparent content length was removed.
2022-06-30Cleanup: Remove scene frame macros (`CFRA` et al.)Julian Eisel
Removes the following macros for scene/render frame values: - `CFRA` - `SUBFRA` - `SFRA` - `EFRA` These macros don't add much, other than saving a few characters when typing. It's not immediately clear what they refer to, they just hide what they actually access. Just be explicit and clear about that. Plus these macros gave read and write access to the variables, so eyesores like this would be done (eyesore because it looks like assigning to a constant): ``` CFRA = some_frame_nbr; ``` Reviewed By: sergey Differential Revision: https://developer.blender.org/D15311
2022-06-30Fix incorrect strip position if pitch was animatedRichard Antalik
Commit 302b04a5a3fc introduced new retiming system, that unified sound pitch animation with strip speed control. Because sound playback is handled in different way, this did not work as expected and old files were broken. In addition animation was not copied to new property. Revert length position and offset handling for sound strips so their position does not change and remap fcurves to new `speed_factor` property.
2022-06-30Fix missing argument, avoid instancing function call in macroCampbell Barton
2022-06-30Fix T99133:animating multiply factor on video strips crashes blenderRichard Antalik
Crash caused by `effect_seq->len` being 0, so frame map was not built. Get length in timeline using handle positions.
2022-06-29Cleanup: correct type for sequencer SWAP macroCampbell Barton
2022-06-29VSE: Improved Retiming systemRichard Antalik
Patch implements better way to control playback speed than it is possible to do with speed effect. Speed factor property can be set in Time panel. There are 2 layers of control: Option to retime movie to match scene FPS rate. Custom speed factor to control playback rate. Since playback rate is strip property, it is now possible to manipulate strip as normal one even if it is retimed. To facilitate manipulation, some functions need to consider speed factor and apply necessary corrections to strip offset or strip start. These corrections may need to be float numbers, so start and offsets must be float as well. Sound strips now use speed factor instead of pitch. This means, that strips will change length to match usable length. In addition, it is possible to group movie and sound strip and change speed of meta strip.
2022-06-28Cleanup: compiler warnings, remove unused functionsCampbell Barton
2022-06-27Fix error in previous commit - missed includeRichard Antalik
2022-06-27Fix meta strip has incorrect range when createdRichard Antalik
Caused by using `startdisp` and `enddisp` to initialize range. Use handle position instead.
2022-06-27VSE: Add API function to select displayed meta stripFĂ©lix
Use function `sequence_editor.display_stack(meta_strip)` to set displayed timeline content. To view top-level timeline, that does not belong to any meta strip, pass `None` as argument. Differential Revision: https://developer.blender.org/D12048
2022-06-14Cleanup: Move function definition to correct fileRichard Antalik
Function `SEQ_transform_handle_overlap` was declared in sequencer module header file, but it was defined in editor/transform module. Move definition to sequencer module.
2022-06-14Fix T72831: Incorrect animation handling when strips overlapRichard Antalik
Function `SEQ_transform_seqbase_shuffle_time` did not have access to strip effects, and therefore could not handle their animation. Since now transformation knows what strips can't be directly moved, but their position depends on other strips, this collection of strips is passed as argument, so animation can be offset correctly.
2022-06-14Cleanup: redundant function callsCampbell Barton
2022-06-13Fix T93500: Sequence.fps returns 0 when proxy is usedRichard Antalik
Caused by `seq_open_anim_file` early returning if anim struct exists, exen if it's not initialized. To ensure `anim` struct is initialized when `openfile` argument is true, don't do early return.
2022-06-13Fix VSE: Effect strip has length of 1 frame when addedRichard Antalik
Length was set properly when added, but it was clamped by function `seq_time_effect_range_set` Add early return for generator effects where offsets can be used normally.
2022-06-07Fix T98621: Image does not update when tweaking strip propertiesRichard Antalik
Problem was caused by `startdisp` and `enddisp` still being used after changes implemented in rB7afcfe111aac.
2022-06-03Cleanup: clang-formatRichard Antalik
2022-06-02Cleanup: quiet warnings, remove unused argumentsCampbell Barton
2022-06-02VSE: Make time operations self-containedRichard Antalik
This patch makes it possible to manipulate strips without need to use update functions to recalculate effect and meta strips. Prior to this change function `SEQ_time_update_sequence` had to be used to update mainly effects and meta strips. This was implemented in a way that relied on sorted list of strips, which can't always be done and in rare cases this approach failed. In case of meta strips, `seqbase` had to be passed and compared with "active" one to determine whether meta strip should be updated or not. This is especially weak system that is prone to bugs when functions are used by python API functions. Finally, other strip types had startdisp` and `enddisp` fields updated by this function and a lot of code relied on these fields even if strip start, length and offsets are available. This is completely unnecessary. Implemented changes: All effects and meta strips are updated when strip handles are moved or strip is translated, without need to call any update function. Function `SEQ_time_update_sequence` has been split to `SEQ_time_update_meta_strip_range` and `seq_time_update_effects_strip_range`. These functions should be only used within sequencer module code. Meta update is used for versioning, which is only reason for it not being declared internally. Sequence fields `startdisp` and `enddisp` are now only used for effects to store strip start and end points. These fields should be used only internally within sequencer module code. Use function `SEQ_time_*_handle_frame_get` to get strip start and end points. To update effects and meta strips with reasonable performance, cache for "parent" meta strip and attached effects is added to `SequenceLookup` cache, so it shares invalidation mechanisms. All caches are populated during single iteration. There should be no functional changes. Differential Revision: https://developer.blender.org/D14990
2022-06-01Cleanup: remove redundant const qualifiers for scalar & enum typesCampbell Barton
2022-05-24Fix T98057: Adjustment layer blend mode not optimalRichard Antalik
Since adjustment layer is meant to replace original image, cross blend mode is more optimal than alpha over. Same goes for multicam type.
2022-05-18Cleanup: Move strip handle manipulation to time sectionRichard Antalik
2022-05-18VSE: Remove still frame offsetsRichard Antalik
To clarify term still frame: This is portion of strip that displays static image. This area can exist before or after strip movie content. Still frames were implemented as strip property, but this was never displayed in panel. Only way to set still frames was to drag strip handle with mouse or using python API. This would set either `seq->*still` or `seq->*ofs` where * stands for `start` or `end`. When strip had offset, it can't have still frames and vice versa, but this had to be enforced in RNA functions and everywhere in code where these fields are set directly. Strip can not have negative offset or negative number of still frames. This is not very practical approach and still frames can be simply implemented as applying negative offset. Merging these offsets would simplify offset calculations for example in D14962 and could make it easier to also deprecate usage `seq->*disp` and necessity to call update functions to recalculate strip boundaries. For users only functional change is ability to set negative strip offset using property in side panel. Reviewed By: sergey Differential Revision: https://developer.blender.org/D14976
2022-05-17Merge branch 'blender-v3.2-release'Richard Antalik
2022-05-17Fix T98021: Crash when using scene strip as sequencer inputRichard Antalik
Issue was caused by treating such strip as meta and using `seq->channels` directly, which is not valid for scene strips. Pointer to channels is now provided by function `SEQ_get_seqbase_from_sequence`.
2022-05-17Cleanup: use term 'filepath' for full file pathsCampbell Barton
2022-05-03Fix T97744: Speed effect causes memory leakRichard Antalik
Leak was caused because output image buffer was initialized twice. Once in speed effect strip and then by cross effect strip used for interpolation feature.
2022-05-03Fix T97507: Crash when deleting adjustment layerRichard Antalik
Issue was not properly fixed in 3cef9ebaf81 due to oversight. `SEQ_get_channels_by_seq` returned pointer to `seqbase` instead of `channels`.
2022-04-28VSE: Add option to limit timeline view heightRichard Antalik
When height is limited, it is defined by space occupied by strips, but at least channels 1 to 7 will be always visible. This allows it to easily overview timeline content by zooming out to maximum extent in Y axis and panning in X axis. More channels can be "created" on demand by moving strip to higher channel. When strip is removed and highest channel becomes empty, view will stay as is until it is moved down. Then new highest point is remembered and it is not possible to pan upwards until strip is moved to higher channel. Limiting takes into account height of scrubbing and markers area as well as scrollers. This means that when zoomed out to maximum extent, no strips are obstructed by fixed UI element. Fixes T57976 Reviewed By: Severin Differential Revision: https://developer.blender.org/D14263
2022-04-28VSE: Add precise drag and drop and strip previewsSebastian Parborg
This patch adds the drag and drop strip previews in the VSE. It also adds two new functions to the drag and drop API. 1. "draw_in_view" for callbacks that wants to draw elements in local viewport coordinates 2. "on_drag_start" that can be used for prefetching data only once at the start of the drag. Reviewed By: Julian, Campbell Differential Revision: http://developer.blender.org/D14560
2022-04-25VSE: Update first thumbnail when moving handleRichard Antalik
When handles are moved, job is created only for strips that need to update first thumbnail. ref T91618
2022-04-21Cleanup: VSE effect relationship checkingRichard Antalik
Use `SEQ_relation_is_effect_of_strip` for checking effect-input relationship where this is applicable.
2022-04-21Fix T70844: Incorrect snappping of strips when effects attachedShrey Aggarwal
Sometimes, when moving strip with 2 input effect attached and causing strip overlap, this overlap is resolved incorrectly - too big offset is applied. This is because effects are not taken into consideration when "shuffeling" to resolve overlap. To fix usual cases (transitions), overlap between strip and it's effect is considered to be impossible. There are edge cases, but these would be much more complicated to implement and could have negative impact on performance. Reviewed By: ISS Differential Revision: https://developer.blender.org/D14578
2022-04-21VSE: Add frame selected operator for previewok what
This operator moves the view to show the selected visible strips. Reviewed By: ISS Differential Revision: https://developer.blender.org/D14222
2022-04-21Fix T97356: Crash when adding adjustment layer stripRichard Antalik
Crash was caused by incorrectly assuming, that rendered strip is meta when editing code in bulk, but this wasn't true and strip had no channels initialized, which caused crash on NULL dereference. Correct approach is to find list of channels where on same level as rendered strip, similar to how `SEQ_get_seqbase_by_seq` function works for list of strips.
2022-04-19Cleanup: Use correct capitalization of "F-Curve"Aaron Carlisle
2022-04-13Cleanup: avoid redundant float/int conversions in BLFCampbell Barton
Internally many offsets for BLF were integers but exposed as floats, since these are used in pixel-space, many callers were converging them back to integers. Simplify logic by using ints.
2022-04-11Cleanup: malformed C-style comment blocks, spellingCampbell Barton
- Missing star prefix. - Unnecessary indentation. - Blank line after dot-points (otherwise doxygen merges with the previous dot-point). - Use back-slash for doxygen commands. - Correct spelling.
2022-04-07Cleanup: clang-formatCampbell Barton
2022-04-06Fix T96595: Animation not duplicated for meta childrenRichard Antalik
Iterate over meta strip content and duplicate animation for all strips. recursively.
2022-04-05Fix T97071: Duplicating strip in locked channel creates overlapping stripsRichard Antalik
Add flag `SEQ_IGNORE_CHANNEL_LOCK` to indicate, that channel lock should not apply to strip. This flag must be cleared after transformation.
2022-04-05Sequencer: skip redundant F-curve GSet allocationCampbell Barton
2022-04-05Fix memory leak duplicating sequencer stripsCampbell Barton
Regression in [0] also skip creating a GSet when there are no F-curves. [0]: e74420124f3a429ad8a1492e56a7e1561d86d6f7