[SCM] libav/experimental: nutdec: when parsing info packet, set metadata var only once

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:18:03 UTC 2013


The following commit has been merged in the experimental branch:
commit c55f891c2f767a4e9526da98bae7c1d48f0e980a
Author: Anton Khirnov <wyskas at gmail.com>
Date:   Sun Oct 24 07:28:04 2010 +0000

    nutdec: when parsing info packet, set metadata var only once
    
    Originally committed as revision 25558 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
index f8eda4f..d5d7c2b 100644
--- a/libavformat/nutdec.c
+++ b/libavformat/nutdec.c
@@ -406,6 +406,7 @@ static int decode_info_header(NUTContext *nut){
     const char *type;
     AVChapter *chapter= NULL;
     AVStream *st= NULL;
+    AVMetadata **metadata = NULL;
 
     end= get_packetheader(nut, bc, 1, INFO_STARTCODE);
     end += url_ftell(bc);
@@ -421,8 +422,12 @@ static int decode_info_header(NUTContext *nut){
         chapter= ff_new_chapter(s, chapter_id,
                                 nut->time_base[chapter_start % nut->time_base_count],
                                 start, start + chapter_len, NULL);
-    } else if(stream_id_plus1)
+        metadata = &chapter->metadata;
+    } else if(stream_id_plus1) {
         st= s->streams[stream_id_plus1 - 1];
+        metadata = &st->metadata;
+    } else
+        metadata = &s->metadata;
 
     for(i=0; i<count; i++){
         get_str(bc, name, sizeof(name));
@@ -453,12 +458,10 @@ static int decode_info_header(NUTContext *nut){
         }
 
         if(!strcmp(type, "UTF-8")){
-            AVMetadata **metadata = NULL;
-            if(chapter_id==0 && !strcmp(name, "Disposition"))
+            if(chapter_id==0 && !strcmp(name, "Disposition")) {
                 set_disposition_bits(s, str_value, stream_id_plus1 - 1);
-            else if(chapter)          metadata= &chapter->metadata;
-            else if(stream_id_plus1)  metadata= &st->metadata;
-            else                      metadata= &s->metadata;
+                continue;
+            }
             if(metadata && strcasecmp(name,"Uses")
                && strcasecmp(name,"Depends") && strcasecmp(name,"Replaces"))
                 av_metadata_set2(metadata, name, str_value, 0);

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list