[FFmpeg-cvslog] r17652 - trunk/libavformat/nutdec.c

aurel subversion
Sat Feb 28 00:10:34 CET 2009


Author: aurel
Date: Sat Feb 28 00:10:34 2009
New Revision: 17652

Log:
use new metadata API in nut demuxer

Modified:
   trunk/libavformat/nutdec.c

Modified: trunk/libavformat/nutdec.c
==============================================================================
--- trunk/libavformat/nutdec.c	Fri Feb 27 22:28:41 2009	(r17651)
+++ trunk/libavformat/nutdec.c	Sat Feb 28 00:10:34 2009	(r17652)
@@ -20,6 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <strings.h>
 #include "libavutil/avstring.h"
 #include "libavutil/bswap.h"
 #include "libavutil/tree.h"
@@ -395,6 +396,7 @@ static int decode_info_header(NUTContext
     char name[256], str_value[1024], type_str[256];
     const char *type;
     AVChapter *chapter= NULL;
+    AVStream *st= NULL;
 
     end= get_packetheader(nut, bc, 1, INFO_STARTCODE);
     end += url_ftell(bc);
@@ -410,7 +412,8 @@ static int decode_info_header(NUTContext
         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)
+        st= s->streams[stream_id_plus1 - 1];
 
     for(i=0; i<count; i++){
         get_str(bc, name, sizeof(name));
@@ -440,21 +443,16 @@ static int decode_info_header(NUTContext
             continue;
         }
 
-        if(chapter_id==0 && !strcmp(type, "UTF-8")){
-            if     (!strcmp(name, "Author"))
-                av_strlcpy(s->author   , str_value, sizeof(s->author));
-            else if(!strcmp(name, "Title"))
-                av_strlcpy(s->title    , str_value, sizeof(s->title));
-            else if(!strcmp(name, "Copyright"))
-                av_strlcpy(s->copyright, str_value, sizeof(s->copyright));
-            else if(!strcmp(name, "Description"))
-                av_strlcpy(s->comment  , str_value, sizeof(s->comment));
-            else if(!strcmp(name, "Disposition"))
+        if(!strcmp(type, "UTF-8")){
+            AVMetadata **metadata = NULL;
+            if(chapter_id==0 && !strcmp(name, "Disposition"))
                 set_disposition_bits(s, str_value, stream_id_plus1 - 1);
-        }
-        if(chapter && !strcmp(type, "UTF-8")){
-            if(!strcmp(name, "Title"))
-                chapter->title= av_strdup(str_value);
+            else if(chapter)          metadata= &chapter->metadata;
+            else if(stream_id_plus1)  metadata= &st->metadata;
+            else                      metadata= &s->metadata;
+            if(metadata && strcasecmp(name,"Uses")
+               && strcasecmp(name,"Depends") && strcasecmp(name,"Replaces"))
+                av_metadata_set(metadata, name, str_value);
         }
     }
 




More information about the ffmpeg-cvslog mailing list