Age | Commit message (Collapse) | Author |
|
Original sequence lookup failed, becase name changed in another thread.
Fix is same as 0471349c90df - stop prefetching before changing content
of seqbase.
I have covered more cases, and added assert so it is more obvious that
issue is in lookup, and it shouldn't fail.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D8592
|
|
|
|
Add recursion check before assigning strip as a mask for modifier.
Same check is used for recursion check when reassigning effect input, so it
should not be possible to create recursion at all.
|
|
|
|
It was already possible to create Sound and Image strips that reference
non-existing files. Now it's also possible to create Movie strips
referencing missing files via the Python API call
`Sequences.new_movie()`. In this case, the duration of the strip will be
set to 1 frame.
Note that this commit does not change anything in the user interface.
The Python API of the `MovieStrip` class is extended with a function
`reload_if_needed()`. This function only performs disk I/O if the movie
strip cannot produce frames, that is either when its filepath points to
a non-existing file, or when the video sequence editor has not been
shown yet (for example because it is in an inactive workspace).
This allows for the following:
```
import bpy
scene = bpy.context.scene
vse = scene.sequence_editor_create()
filepath = bpy.path.abspath('//demo.mkv')
strip = vse.sequences.new_movie("movie", filepath,
channel=2,
frame_start=47,
file_must_exist=False)
strip.frame_final_end = 327
```
This will create a new movie strip, even when `demo.mkv` does not exist.
Once `demo.mkv` has appeared at the expected location, either
`strip.reload_if_needed()` or `strip.filepath = strip.filepath` will
load it.
Differential Revision: https://developer.blender.org/D8257
Reviewed By: Sergey, ISS
|
|
|
|
Enabling offset property caused strip to produce `SEQ_CACHE_STORE_RAW`
type image, which is kept in temp cache and is not invalidated.
Change update functions for all properties of effect strips that affect image
to `rna_Sequence_invalidate_raw_update`.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D8132
|
|
Avoid mixing different terminologies up,
current frame is used in a majority of Blender.
|
|
|
|
unmuted in metastrip
Maniphest Tasks: T77049
Differential Revision: https://developer.blender.org/D7834
|
|
Do cross transition from current to next frame instead of displaying
one image for n frames.
Reviewed By: ISS, sergey, campbellbarton
Differential Revision: https://developer.blender.org/D7417
|
|
|
|
|
|
Add range function to RNA properties.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D7285
|
|
|
|
Use enum items in RNA enum definition instead of hard-coded values.
Broken by 5dcb6fb22f3 Cleanup: unused enums
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D7342
|
|
Cache must be invalidated before and after transformation,
so all frames are properly invalidated.
This also fixes wrong invalidated type, composite is enough here.
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D7341
|
|
|
|
The `BKE_animsys.h` and `anim_sys.c` files already had a an "AnimData
API" section. The code in that section has now been split off, and
placed into `BKE_anim_data.h` and `anim_data.c`.
All files that used to include `BKE_animsys.h` have been adjusted to
only include the animation headers they need (sometimes none).
No functional changes.
|
|
|
|
This patch implements dumping images from cache to HDD.
The main goal of this system is to provide a means to achieve consistent playback speed mainly for strips that are not possible to preview in real time.
How to use:
Disk cache has own settings in user preferences for path to storage, size limit and compression level.
To use disk cache, you need to check `Use Disk Cache` box, set `Disk Cache Directory`, `Disk Cache Limit` and save or open existing .blend file.
By default sequencer output will be cached only. Manual setting is possible in cache panel.
Uses:
- Replacement or alternative for proxies. Disk cache will work with any strip type, supports float images as well.
- Storage for strip thumbnails.
- Less RAM needs to be allocated for preview cache
How it works:
Disk cache is extension of RAM cache. Every image, that is stored or deleted in RAM will be stored or deleted on HDD as well. Images can be compressed to save space and for use on slower drives. Compressed images are slower to write and read though.
Images are stored in bulk of 100 rendered frames per one file. This is to overcome slow file access time for large amount of files. Drawback is, that if one frame needs to be redrawn, all 100 frames are deleted.
Reviewed By: sergey
Differential Revision: https://developer.blender.org/D5524
|
|
|
|
- New bespoke icon for the universal brush toggles
- New icon for Redirected Folder (currently unused)
- New icons for handle types (Auto Clamped, Auto, Aligned, Vector, Free)
- New icons for Sequencer Text Strip anchor (Top, Bottom, Left, Right, Centre)
Thanks to Andrzej Ambroż for the new icons
|
|
This implied paragraph alignment, when the alignment defines
the origin of the text relative to the X,Y coordinates.
Resolves T71082
|
|
Crash on assert in `sound_verify_evaluated_id()`
Reviewed By: sergey
Maniphest Tasks: T70845
Differential Revision: https://developer.blender.org/D6104
|
|
self
Spotted while looking into T70845
Reviewers: sergey, ISS, campbellbarton
Differential Revision: https://developer.blender.org/D6073
|
|
The Python API is unchanged and remains compatible.
Differential Revision: https://developer.blender.org/D5830
|
|
Reviewed By: JacquesLucke
Differential Revision: https://developer.blender.org/D5803
|
|
Differential Revision: https://developer.blender.org/D5716
|
|
When enabled prefetching(preview panel>view settings), a pernament running job
is created, that will render frames in the background until the cache is full.
If the cache is not filled fast enough, prefetch job suspends itself
at the last moment and will wait until it has chance to "catch up".
Effectively this will decouple rendering to separate thread, so rendering
itself is a bit faster.
Cache recycling behavior will be changed to "free furthest frame to the left
of playhead if possible, otherwise rightmost frame".
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D5386
|
|
Revert part of 04b86c21bf522
The option to reverse frames is used elsewhere as a boolean
which makes sense since reversing playback is a special case.
|
|
Pointed out in rBM5719
|
|
Previously it was named just "Burn" in some places.
Differential Revision: https://developer.blender.org/D5186
|
|
The old layout of `PointerRNA` was confusing for historic reasons:
```
typedef struct PointerRNA {
struct {
void *data;
} id;
struct StructRNA *type;
void *data;
} PointerRNA;
```
This patch updates it to:
```
typedef struct PointerRNA {
struct ID *owner_id;
struct StructRNA *type;
void *data;
} PointerRNA;
```
Throughout the code base `id.data` was replaced with `owner_id`.
Furthermore, many explicit pointer type casts were added which
were implicit before. Some type casts to `ID *` were removed.
Reviewers: brecht, campbellbarton
Differential Revision: https://developer.blender.org/D5558
|
|
- Expose the operator in the panel,
(wasn't available in the UI at all).
- Offset frame was hard coded to a color matching the background.
Use the current frame color with dashes instead.
- Overlay toggle had wrong name.
|
|
followup to rB8dd95abb2ff9 (which fixed this for the Compositor node),
turns out this was also wrong for the VSE modifier and in vertex color
operator.
- also adjust min/max for VSE modifier
- also guard against division by zero
Reviewers: brecht
Maniphest Tasks: T67808
Differential Revision: https://developer.blender.org/D5398
|
|
T68035 by @luzpaz
|
|
Use PROP_XYZ instead, and user Slider=True to make them display as sliders in the UI
|
|
Since it goes from 0-1 and not 0-100.
|
|
Now is consistent with Text objects
Also fix wrong unit for text placement and tooltip-
|
|
- Use Sequencer rather than Sequence
- Use Camera rather than 3D Camera
|
|
sidebar
Also move Time and Source below other panels for consistency
|
|
- Move strip name to the top (easier to see which strip you are adjusting, and more consistent with other areas)
- Move Mute next to this, since it affects everything, both audio and video, and completely disables the clip
- Mute now greys out all the Strip panels, since none of them apply if the strip is disabled
- Rename Info to Time, since now this panel only includes timecodes and related controls
- Move Lock to the Time header, since you are locking the time controls
- Move clip resolution to Source, since it's not related to time
|
|
Match existing enums.
Also use the term 'strip', instead of a 'clip'
(again, follow existing terminology, clip is used for movie-clip strips).
|
|
Even though we are in UI freeze, we agreed that this should be better, and so we are changing a few things:
- Clearer separation of controls that affect the image transform vs the video
- New Transform panel houses Flip X/Y, Offset and Crop
- Flip X/Y now uses toggle buttons like we do for mirroring elsewhere (clearer + takes up less space)
- Video panel only includes things that relate to playback, ie Playback Direction, Strobe etc.
- Backwards/Forwards playback is now an enum rather than a toggle (we should always use enums when it's not an on/off switch)
- Rename Input panel to Source
- Just more immediately understandable and correct
- Move Deinterlace here since it's source file dependent
- Move Source panel to be a top level panel
- Merge Info and Timecodes panels
- Move Lock toggle to Info panel (was previously attached to name field which made no sense whatsoever)
- Name field now uses full width and doesn't add redundant text in front of it
- Re-arrange tabs to be Strip, Modifiers, Proxy & Cache, View
- Strip and Modifiers should be together
Reviewers: brecht, iss
Differential Revision: https://developer.blender.org/D5098
|
|
|
|
A lot of areas were querying sound information directly using audio handle
which does not exist on an original sound IDs.
This change basically makes it so it's possible to query information about
given sound ID, without worrying about whether it's loaded or not: if it is
needed to load it first it happens automatically (no automatically-opened
handles are left behind though).
While this seems a bit extreme to open files on such queries it is still
better than the old situation when all sound handles were opened on file
load, no matter if it's needed or not. Besides, none of the changed code
paths are performance critical, just handful of tools.
Fixes T65696: Sequencer fails to create a new sound sequence strip via Python
Fixes T65656: Audio strip - SHIFT K crashes Blender
Reviewers: brecht
Reviewed By: brecht
Subscribers: ISS
Maniphest Tasks: T65696, T65656
Differential Revision: https://developer.blender.org/D5061
|
|
|
|
|
|
Author: Olly Funkster, Richard Antalík
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D2504
|