mirror of https://git.ffmpeg.org/ffmpeg.git
Merge commit 'a0fa6d06b848f26b16ba12f0a9a4a85b93ab8022'
* commit 'a0fa6d06b848f26b16ba12f0a9a4a85b93ab8022': matroska: Warn when metadata references a non-existent element Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
This commit is contained in:
commit
0ecec7449c
|
@ -1405,24 +1405,55 @@ static void matroska_convert_tags(AVFormatContext *s)
|
||||||
for (i = 0; i < matroska->tags.nb_elem; i++) {
|
for (i = 0; i < matroska->tags.nb_elem; i++) {
|
||||||
if (tags[i].target.attachuid) {
|
if (tags[i].target.attachuid) {
|
||||||
MatroskaAttachment *attachment = matroska->attachments.elem;
|
MatroskaAttachment *attachment = matroska->attachments.elem;
|
||||||
for (j = 0; j < matroska->attachments.nb_elem; j++)
|
int found = 0;
|
||||||
|
for (j = 0; j < matroska->attachments.nb_elem; j++) {
|
||||||
if (attachment[j].uid == tags[i].target.attachuid &&
|
if (attachment[j].uid == tags[i].target.attachuid &&
|
||||||
attachment[j].stream)
|
attachment[j].stream) {
|
||||||
matroska_convert_tag(s, &tags[i].tag,
|
matroska_convert_tag(s, &tags[i].tag,
|
||||||
&attachment[j].stream->metadata, NULL);
|
&attachment[j].stream->metadata, NULL);
|
||||||
|
found = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found) {
|
||||||
|
av_log(NULL, AV_LOG_WARNING,
|
||||||
|
"The tags at index %d refer to a "
|
||||||
|
"non-existent attachment %"PRId64".\n",
|
||||||
|
i, tags[i].target.attachuid);
|
||||||
|
}
|
||||||
} else if (tags[i].target.chapteruid) {
|
} else if (tags[i].target.chapteruid) {
|
||||||
MatroskaChapter *chapter = matroska->chapters.elem;
|
MatroskaChapter *chapter = matroska->chapters.elem;
|
||||||
for (j = 0; j < matroska->chapters.nb_elem; j++)
|
int found = 0;
|
||||||
|
for (j = 0; j < matroska->chapters.nb_elem; j++) {
|
||||||
if (chapter[j].uid == tags[i].target.chapteruid &&
|
if (chapter[j].uid == tags[i].target.chapteruid &&
|
||||||
chapter[j].chapter)
|
chapter[j].chapter) {
|
||||||
matroska_convert_tag(s, &tags[i].tag,
|
matroska_convert_tag(s, &tags[i].tag,
|
||||||
&chapter[j].chapter->metadata, NULL);
|
&chapter[j].chapter->metadata, NULL);
|
||||||
|
found = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found) {
|
||||||
|
av_log(NULL, AV_LOG_WARNING,
|
||||||
|
"The tags at index %d refer to a non-existent chapter "
|
||||||
|
"%"PRId64".\n",
|
||||||
|
i, tags[i].target.chapteruid);
|
||||||
|
}
|
||||||
} else if (tags[i].target.trackuid) {
|
} else if (tags[i].target.trackuid) {
|
||||||
MatroskaTrack *track = matroska->tracks.elem;
|
MatroskaTrack *track = matroska->tracks.elem;
|
||||||
for (j = 0; j < matroska->tracks.nb_elem; j++)
|
int found = 0;
|
||||||
if (track[j].uid == tags[i].target.trackuid && track[j].stream)
|
for (j = 0; j < matroska->tracks.nb_elem; j++) {
|
||||||
|
if (track[j].uid == tags[i].target.trackuid &&
|
||||||
|
track[j].stream) {
|
||||||
matroska_convert_tag(s, &tags[i].tag,
|
matroska_convert_tag(s, &tags[i].tag,
|
||||||
&track[j].stream->metadata, NULL);
|
&track[j].stream->metadata, NULL);
|
||||||
|
found = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found) {
|
||||||
|
av_log(NULL, AV_LOG_WARNING,
|
||||||
|
"The tags at index %d refer to a non-existent track "
|
||||||
|
"%"PRId64".\n",
|
||||||
|
i, tags[i].target.trackuid);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
matroska_convert_tag(s, &tags[i].tag, &s->metadata,
|
matroska_convert_tag(s, &tags[i].tag, &s->metadata,
|
||||||
tags[i].target.type);
|
tags[i].target.type);
|
||||||
|
|
Loading…
Reference in New Issue