[Ffmpeg-cvslog] CVS: ffmpeg/libavformat utils.c, 1.163, 1.164 avformat.h, 1.130, 1.131 avidec.c, 1.74, 1.75

Michael Niedermayer CVS michael
Mon Aug 15 17:58:23 CEST 2005


Update of /cvsroot/ffmpeg/ffmpeg/libavformat
In directory mail:/var2/tmp/cvs-serv27285/libavformat

Modified Files:
	utils.c avformat.h avidec.c 
Log Message:
parse pict_type for streams in avi
fix mpeg4 parser so it outputs te pict_type
support header only parseing without repacking


Index: utils.c
===================================================================
RCS file: /cvsroot/ffmpeg/ffmpeg/libavformat/utils.c,v
retrieving revision 1.163
retrieving revision 1.164
diff -u -d -r1.163 -r1.164
--- utils.c	15 Aug 2005 14:22:43 -0000	1.163
+++ utils.c	15 Aug 2005 15:58:21 -0000	1.164
@@ -927,6 +927,8 @@
                 if (!st->parser) {
                     /* no parser available : just output the raw packets */
                     st->need_parsing = 0;
+                }else if(st->need_parsing == 2){
+                    st->parser->flags |= PARSER_FLAG_COMPLETE_FRAMES;
                 }
             }
         }
@@ -1846,6 +1848,9 @@
         //only for the split stuff
         if (!st->parser) {
             st->parser = av_parser_init(st->codec->codec_id);
+            if(st->need_parsing == 2 && st->parser){
+                st->parser->flags |= PARSER_FLAG_COMPLETE_FRAMES;
+            }
         }
     }
 

Index: avformat.h
===================================================================
RCS file: /cvsroot/ffmpeg/ffmpeg/libavformat/avformat.h,v
retrieving revision 1.130
retrieving revision 1.131
diff -u -d -r1.130 -r1.131
--- avformat.h	15 Aug 2005 14:22:43 -0000	1.130
+++ avformat.h	15 Aug 2005 15:58:21 -0000	1.131
@@ -248,7 +248,7 @@
     char language[4]; /* ISO 639 3-letter language code (empty string if undefined) */
 
     /* av_read_frame() support */
-    int need_parsing;
+    int need_parsing;                  ///< 1->full parsing needed, 2->only parse headers dont repack
     struct AVCodecParserContext *parser;
 
     int64_t cur_dts;

Index: avidec.c
===================================================================
RCS file: /cvsroot/ffmpeg/ffmpeg/libavformat/avidec.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- avidec.c	14 Aug 2005 15:42:40 -0000	1.74
+++ avidec.c	15 Aug 2005 15:58:21 -0000	1.75
@@ -302,6 +302,7 @@
                     st->codec->codec_id = codec_get_id(codec_bmp_tags, tag1);
                     if (st->codec->codec_id == CODEC_ID_XAN_WC4)
                         xan_video = 1;
+                    st->need_parsing = 2; //only parse headers dont do slower repacketization, this is needed to get the pict type which is needed for generating correct pts
 //                    url_fskip(pb, size - 5 * 4);
                     break;
                 case CODEC_TYPE_AUDIO:





More information about the ffmpeg-cvslog mailing list