diff options
author | Richard Antalik <richardantalik@gmail.com> | 2022-10-19 22:06:07 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2022-10-19 22:07:52 +0300 |
commit | bf8d4a9bc6fb285011f74f5fb36c77b299893ba9 (patch) | |
tree | 24f3d200acdf4a5c0a866ecf7a9f1b5619aec4ca /source/blender/imbuf/intern | |
parent | d046c8c9d756d5a22ed9aa5a8d0bf0b69d9deba6 (diff) |
Fix T101857: Crash when trying to build proxies on read-only filesystem
Skip building if proxy file can't be created.
Diffstat (limited to 'source/blender/imbuf/intern')
-rw-r--r-- | source/blender/imbuf/intern/indexer.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c index 8965700c08a..e8e4b80ef45 100644 --- a/source/blender/imbuf/intern/indexer.c +++ b/source/blender/imbuf/intern/indexer.c @@ -498,7 +498,9 @@ static struct proxy_output_ctx *alloc_proxy_output_ffmpeg( rv->anim = anim; get_proxy_filepath(rv->anim, rv->proxy_size, filepath, true); - BLI_make_existing_file(filepath); + if (!BLI_make_existing_file(filepath)) { + return NULL; + } rv->of = avformat_alloc_context(); rv->of->oformat = av_guess_format("avi", NULL, NULL); @@ -905,6 +907,11 @@ static IndexBuildContext *index_ffmpeg_create_context(struct anim *anim, } } + if (context->proxy_ctx[0] == NULL && context->proxy_ctx[1] == NULL && + context->proxy_ctx[2] == NULL && context->proxy_ctx[3] == NULL) { + return NULL; /* Nothing to transcode. */ + } + for (i = 0; i < num_indexers; i++) { if (tcs_in_use & tc_types[i]) { char filepath[FILE_MAX]; |