30_clean_up_global_header_flag.patch by (Calcium | calcium nurs or jp)
authorCalcium <calcium@nurs.or.jp>
Wed, 23 Mar 2005 12:52:24 +0000 (12:52 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 23 Mar 2005 12:52:24 +0000 (12:52 +0000)
Originally committed as revision 4072 to svn://svn.ffmpeg.org/ffmpeg/trunk

ffmpeg.c
libavformat/avformat.h
libavformat/movenc.c

index ba9aa02..bbcf998 100644 (file)
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -3096,7 +3096,7 @@ static void opt_output_file(const char *filename)
             if(video_codec_tag)
                 video_enc->codec_tag= video_codec_tag;
                 
-            if(!strcmp(file_oformat->name, "mp4") || !strcmp(file_oformat->name, "mov") || !strcmp(file_oformat->name, "3gp"))
+            if (file_oformat->flags & AVFMT_GLOBALHEADER) 
                 video_enc->flags |= CODEC_FLAG_GLOBAL_HEADER;
             if (video_stream_copy) {
                 st->stream_copy = 1;
@@ -3367,7 +3367,7 @@ static void opt_output_file(const char *filename)
             if(audio_codec_tag)
                 audio_enc->codec_tag= audio_codec_tag;
 
-            if(!strcmp(file_oformat->name, "mp4") || !strcmp(file_oformat->name, "mov") || !strcmp(file_oformat->name, "3gp"))
+            if (file_oformat->flags & AVFMT_GLOBALHEADER) 
                 audio_enc->flags |= CODEC_FLAG_GLOBAL_HEADER;
             if (audio_stream_copy) {
                 st->stream_copy = 1;
index 6fe15b5..7beef99 100644 (file)
@@ -124,6 +124,7 @@ typedef struct AVFormatParameters {
 #define AVFMT_SHOW_IDS      0x0008 /* show format stream IDs numbers */
 #define AVFMT_RAWPICTURE    0x0020 /* format wants AVPicture structure for
                                       raw picture data */
+#define AVFMT_GLOBALHEADER  0x0040 /* format wants global header */
 
 typedef struct AVOutputFormat {
     const char *name;
@@ -138,7 +139,7 @@ typedef struct AVOutputFormat {
     int (*write_header)(struct AVFormatContext *);
     int (*write_packet)(struct AVFormatContext *, AVPacket *pkt);
     int (*write_trailer)(struct AVFormatContext *);
-    /* can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER */
+    /* can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_GLOBALHEADER */
     int flags;
     /* currently only used to set pixel format if not YUV420P */
     int (*set_parameters)(struct AVFormatContext *, AVFormatParameters *);
index ed9700f..e7b66cd 100644 (file)
@@ -1497,6 +1497,7 @@ static AVOutputFormat mov_oformat = {
     mov_write_header,
     mov_write_packet,
     mov_write_trailer,
+    .flags = AVFMT_GLOBALHEADER,
 };
 
 static AVOutputFormat _3gp_oformat = {
@@ -1510,6 +1511,7 @@ static AVOutputFormat _3gp_oformat = {
     mov_write_header,
     mov_write_packet,
     mov_write_trailer,
+    .flags = AVFMT_GLOBALHEADER,
 };
 
 static AVOutputFormat mp4_oformat = {
@@ -1523,6 +1525,7 @@ static AVOutputFormat mp4_oformat = {
     mov_write_header,
     mov_write_packet,
     mov_write_trailer,
+    .flags = AVFMT_GLOBALHEADER,
 };
 
 static AVOutputFormat psp_oformat = {
@@ -1536,6 +1539,7 @@ static AVOutputFormat psp_oformat = {
     mov_write_header,
     mov_write_packet,
     mov_write_trailer,
+    .flags = AVFMT_GLOBALHEADER,
 };
 
 static AVOutputFormat _3g2_oformat = {
@@ -1549,6 +1553,7 @@ static AVOutputFormat _3g2_oformat = {
     mov_write_header,
     mov_write_packet,
     mov_write_trailer,
+    .flags = AVFMT_GLOBALHEADER,
 };
 
 int movenc_init(void)