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:
Bastien Montagne 2018-07-17 13:55:43 +02:00
parent b85be88655
commit efe94793c0
Notes: blender-bot 2023-02-14 11:07:28 +01:00
Referenced by issue #56003, Opening image files as movies
1 changed files with 24 additions and 10 deletions

View File

@ -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;
}