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++) {
 | 
			
		||||
        if (tags[i].target.attachuid) {
 | 
			
		||||
            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 &&
 | 
			
		||||
                    attachment[j].stream)
 | 
			
		||||
                    attachment[j].stream) {
 | 
			
		||||
                    matroska_convert_tag(s, &tags[i].tag,
 | 
			
		||||
                                         &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) {
 | 
			
		||||
            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 &&
 | 
			
		||||
                    chapter[j].chapter)
 | 
			
		||||
                    chapter[j].chapter) {
 | 
			
		||||
                    matroska_convert_tag(s, &tags[i].tag,
 | 
			
		||||
                                         &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) {
 | 
			
		||||
            MatroskaTrack *track = matroska->tracks.elem;
 | 
			
		||||
            for (j = 0; j < matroska->tracks.nb_elem; j++)
 | 
			
		||||
                if (track[j].uid == tags[i].target.trackuid && track[j].stream)
 | 
			
		||||
            int found = 0;
 | 
			
		||||
            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,
 | 
			
		||||
                                         &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 {
 | 
			
		||||
            matroska_convert_tag(s, &tags[i].tag, &s->metadata,
 | 
			
		||||
                                 tags[i].target.type);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user