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-08-23VSE: 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-23Fix 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-06-30FFmpeg: 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-05-25Fix T88551: Crash accessing uninitialized tool settingsRichard Antalik
Tool settings for sequencer were not initialized, which caused crash when adding strips. There was fix for same issue in versioning rB0f81dafe6cec, but subversion was not bumped, so files with uninitialized tool settings may still exist. Add `SEQ_tool_settings_get()` accessor function that will initialize tool settings if they are missing. Change operator code to use `SEQ_tool_settings_fit_method_get()` function instead of accessing tool settings directly Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D11383
2021-05-18Fix build warningRichard Antalik
Value of the size argument in `strncat` is too large, might lead to a buffer overflow. Change the argument to be the free space in the destination buffer minus the terminating null byte. Introduced in 5368859a669d Reviewed By: Sergey Differential Revision: https://developer.blender.org/D11289
2021-05-12VSE: Fix disk cache potentially overwriting blend fileRichard Antalik
When disk cache path is same as blend file path, with Unix-like systems blend file can be overwritten by disk cache directory. This was caused by `BLI_delete(path, false, true)` when path points to file. On Windows this would result in error message and file would not be deleted. On Linux, file is deleted and then overwritten with cache directory. To further minimize chance of removing blend file, append disk cache path with `_seq_cache` suffix. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11217
2021-05-12VSE: Fix meta strip boundary can not be changedRichard Antalik
In e1f3996d740c, logic for changing metastrip start and end frame based on contained strips was removed. This was done intentionally and incorrect functionality wasn't noticed as drawing code reflected seemingly correct state. Original code was mostly correct, because meta strip doesn't store its internal start and end points. This code was restored with minor modifications so function `SEQ_time_update_sequence()` is fully self contained as it is used not only by transform operator. In addition, drawing glitches that happen when meta content is outside of meta boundaries were fixed. These glitches were not caused by e1f3996d740c. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11215
2021-05-05VSE: Set view transform based on strip colorspaceRichard Antalik
In some cases, users start video editing work from General template, where Filmic view transform is chosen by default. Currently, this causes issue when working with sRGB footage, which are not properly decoded into linear working space and final render looks miscolored. When adding first strip, check it's colorspace and if it corresponds to colorspace for byte images, ensure that view transform is set to default value, which is Standard. Reviewed By: brecht Differential Revision: https://developer.blender.org/D11151
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 T87090: VSE scrubbing locks up blenderRichard Antalik
Speed effect caused, that some raw frames are re-used for multiple final frames. When cached final frame is freed due to memory being full, it tried to free also lower level cached frames that were used during compositing. Some lower level cached frames were already freed by different final frame and `BLI_ghash_remove()` failed. Check if key still exists in hash or if linked keys were overwritten before removing them. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10909
2021-04-22VSE: Fix movies are reloaded after invalidationRichard Antalik
When cache is strip is invalidated, movie file was reloaded even if it isn't necessary. This caused significant performance issues when strip is being dragged under playhead. This was caused by calling `SEQ_relations_sequence_free_anim()` and it was introduced as fix for T36124. When it is necessary to reload file because another API holds reference to ImBuf, do this explicitly besides cache invalidation. In `rna_ColorManagedColorspaceSettings_reload_update()` this was already done, so no change is needed there. Reviewed By: sergey Differential Revision: https://developer.blender.org/D11024
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-04-14FFmpeg: Adjust default proxy settingsRichard Antalik
GOP size and quality are adjusted for h264 codec. These new values are based on result of benchmark on 9 random files: https://docs.google.com/spreadsheets/d/1nOyUGjoVWUyhQ2y2lAd8VtFfyaY1wQNGj1krCCNbk7Y/edit?usp=sharing Reducing quality to 50 reduces proxy filesize by about 2x on average and has no significant impact on decoding performance. Increasing GOP size from 2 to 10 also reduces proxy filesize 2x-3x while scrubbing is only about 8% slower. It is still around 100FPS with 1920x1080 media. This is unfortunately about 50% slower than MJPEG, but this can be improved with `fastdecode` tune applied to libx264 encoder Quite surprisingly h264 codec presets had little influence on proxy building performance as well as proxy filesize. So far it looks that FFmpeg does initialize encoder in different way then Blender. This applies mot only for presets but for tune and profile libx264 setting. Once this issue is resolved, performance of proxies may be optimized further. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10897
2021-04-08VSE: Fix crash when building proxyRichard Antalik
When video file for strip doesn't exist, building crashes on NULL dereference. This check was removed by 04e1feb83051.
2021-04-08VSE: Fix building image proxiesRichard Antalik
Broken by 04e1feb83051 Caused by accidentaly moving `SEQ_proxy_rebuild_finish` outside of `if (nseq->type == SEQ_TYPE_MOVIE)` condition in function `SEQ_proxy_rebuild_context()`.
2021-03-31Cleanup: Remove SEQ_CURRENT_BEGIN macroRichard Antalik
Use LISTBASE_FOREACH instead. SEQ_CURRENT_BEGIN did null checks, so now these must be explicit. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D10823
2021-03-30VSE: Fix image adding inconsistencyRichard Antalik
When adding images with operator, image file path is split into filename and directory passed to load function in name and path fields of SeqLoadData struct. This is because when loading images directory and filenames are split. RNA API function passes whole path in path filed. Apart from loading API inconsistency, this causes initial image loading to fail, so strip resolution is not set. Also name field of SeqLoadData should be reserved for strip name. Let operator code concatenate and split filepath when needed so loading API can be consistent with RNA API and also between strip types. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10818
2021-03-26CMake: add headers to source lists, sort file-listsCampbell Barton
2021-03-24Cleanup: use new BLI_assert_unreachable macroCampbell Barton
2021-03-23Cleanup: Silence compile warning.Jeroen Bakker
2021-03-23VSE: Sanitize move_to_meta usageRichard Antalik
There were multiple cases that could lead to problems like moving meta strip into itself or into it's children meta strips. Print error string to console when invalid action is requested.
2021-03-23Fix sequencer text leaving bold & italic flags enabledCampbell Barton
Regression in 913b71bb8be9b40da9c0f0cd21016c784a56dc18
2021-03-22Cleanup: clang-format, trailing spaceCampbell Barton
Minor manual tweak to prevent wrapping an array into columns.
2021-03-21Fix uninitialized memory use loading movie sequence stripsCampbell Barton
When the movie wasn't found, uninitialized values would be used for the original width/height. Also use int instead of float as the image size is stored as an int.
2021-03-21Cleanup: remove redundant NULL checksCampbell Barton
2021-03-20Fix issues introduced strip loading refactoringRichard Antalik
- Adding effect strip resulted in strip with no name - Adding sound strip attempted to read `fit_method` RNA property, that did not exist, causing error messages in console These issues were introduced in bbb1936411a5.
2021-03-20Fix T86355: Added effect strip has wrong lengthRichard Antalik
SEQ_add_effect_strip used SeqLoadData.image.end_frame to set end frame. This was mistake introduced in last refactoring patch. Use effect data, not image data, when adding effect strips. Reviewed By: sergey Differential Revision: D10633
2021-03-20Fix T85824: Transition between adjustment regressionRichard Antalik
When transition effect is placed between 2 adjustment layer strips, only first adjustment layer was rendered by effect. Limit timeline_frame range to adjustment strip frame range. This timeline configuration is technically invalid, because strips should overlap when using transition effect. This was never restricted and instead of producing no image, transition effect used first and last frame of source strip. Many users got used to this "feature" so I think it make sense to fix this case so it behaves like other strip types. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10562
2021-03-20VSE: Text strip improvementsPeter Fog
- Position text in center of image - Increase default font size so it's more visible - Increase font size limit - Increase limit for location, so text can be scolled off screen - Wrap text by default - Tweak default box and shadow color - Change text shadow position - Text box no longer casts shadow Reviewed By: ISS Differential Revision: https://developer.blender.org/D10571
2021-03-20VSE: Add bold and italic option for text stripPeter Fog
Bold and italic fonts can be switched quickly by presing corresponding button. Reviewed By: ISS Differential Revision: https://developer.blender.org/D10542
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-20VSE: Add new_meta RNA API functionFélix
This function can be used to create empty meta strip, which is not straightforward when using operators. Very useful for import/export scripts. Reviewed By: ISS Differential Revision: https://developer.blender.org/D10661
2021-03-20VSE: Add move_to_meta RNA API functionFélix
This function can be used to move strips into meta strips with no side effects like change of selection state. Reviewed By: ISS Differential Revision: https://developer.blender.org/D10759
2021-03-16VSE: Automatic proxy buildingRichard Antalik
Build proxies automatically when added to sequencer timeline and when switching preview size. This behavior can be disabled in user preferences. Reviewed By: sergey, fsiddi Differential Revision: https://developer.blender.org/D10363
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-04Cleanup: redundant struct declarationsCampbell Barton
2021-03-02Cleanup: spelling, minor correctionsCampbell Barton
Also use doxygen comments for sculpt functions.
2021-03-02Fix Fuild error with lite buildRichard Antalik
With audaspace disabled, function SEQ_add_sound_strip was declared as prototype.
2021-03-02VSE: Refactor meta operatorsRichard Antalik
Move low level logic to module code and versioning logic to versioning code. Metas strip position was handled in diffrent way compared to other strips. This was introduced in c8b0d25794be as bugfix for T28158. I disagree with such design. Meta strips should be handled in same way as any other strips. I have tested this change and haven't found any problems. No problems after checking T28158 as well. There should be no functional changes on user level. Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D9972
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-08Merge branch 'blender-v2.92-release'Richard Antalik
2021-02-08Fix T85426: Speed effect stretch to input not workingRichard Antalik
`seq_effect_speed_get_strip_content_length()` checked only for number of inputs of target strip, even if it's not an effect. Only effects are treated in different way, so check for type as well. Broken by 93c10797dc35e17bbd96f3711a151acf2d184848 Reviewed By: sergey Differential Revision: https://developer.blender.org/D10356
2021-02-06UI: Fix Typos in Comments and Docsluzpaz
Approximately 91 spelling corrections, almost all in comments. Differential Revision: https://developer.blender.org/D10288 Reviewed by Harley Acheson
2021-02-05Cleanup: use 'r_' prefix for return arguments, order lastCampbell Barton
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-26Merge branch 'blender-v2.92-release'Richard Antalik
2021-01-26Fix T79922: Cache of meta strip not invalidatedRichard Antalik
Meta strip cache is not invalidated if strip inside of meta strip is invalidated. Find all metastrips that contain invalidated strip and invalidate them recursively. Reviewed By: sergey Differential Revision: https://developer.blender.org/D10192