Fix T56003: Opening image files as movies in VSE crashes.
metadata loading code was assuming all videos in Blender were from FFMPEG... added empty place-holders for other types too, we probably could load some metadata from pictures or AVI files too!
This commit is contained in:
parent
b85be88655
commit
efe94793c0
Notes:
blender-bot
2023-02-14 11:07:28 +01:00
Referenced by issue #56003, Opening image files as movies
|
@ -243,21 +243,35 @@ void IMB_close_anim_proxies(struct anim *anim)
|
|||
|
||||
struct IDProperty *IMB_anim_load_metadata(struct anim *anim)
|
||||
{
|
||||
switch (anim->curtype) {
|
||||
case ANIM_FFMPEG:
|
||||
{
|
||||
#ifdef WITH_FFMPEG
|
||||
AVDictionaryEntry *entry = NULL;
|
||||
AVDictionaryEntry *entry = NULL;
|
||||
|
||||
BLI_assert(anim->pFormatCtx != NULL);
|
||||
av_log(anim->pFormatCtx, AV_LOG_DEBUG, "METADATA FETCH\n");
|
||||
BLI_assert(anim->pFormatCtx != NULL);
|
||||
av_log(anim->pFormatCtx, AV_LOG_DEBUG, "METADATA FETCH\n");
|
||||
|
||||
while (true) {
|
||||
entry = av_dict_get(anim->pFormatCtx->metadata, "", entry, AV_DICT_IGNORE_SUFFIX);
|
||||
if (entry == NULL) break;
|
||||
while (true) {
|
||||
entry = av_dict_get(anim->pFormatCtx->metadata, "", entry, AV_DICT_IGNORE_SUFFIX);
|
||||
if (entry == NULL) break;
|
||||
|
||||
/* Delay creation of the property group until there is actual metadata to put in there. */
|
||||
IMB_metadata_ensure(&anim->metadata);
|
||||
IMB_metadata_set_field(anim->metadata, entry->key, entry->value);
|
||||
}
|
||||
/* Delay creation of the property group until there is actual metadata to put in there. */
|
||||
IMB_metadata_ensure(&anim->metadata);
|
||||
IMB_metadata_set_field(anim->metadata, entry->key, entry->value);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
case ANIM_SEQUENCE:
|
||||
case ANIM_AVI:
|
||||
case ANIM_MOVIE:
|
||||
/* TODO */
|
||||
break;
|
||||
case ANIM_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return anim->metadata;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue