From c64d476ccde1682728e693c750bcc96129defd0c Mon Sep 17 00:00:00 2001 From: Calcium Date: Wed, 23 Mar 2005 12:52:24 +0000 Subject: [PATCH] 30_clean_up_global_header_flag.patch by (Calcium | calcium nurs or jp) Originally committed as revision 4072 to svn://svn.ffmpeg.org/ffmpeg/trunk --- ffmpeg.c | 4 ++-- libavformat/avformat.h | 3 ++- libavformat/movenc.c | 5 +++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index ba9aa027b4..bbcf998519 100644 --- 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; diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 6fe15b5b17..7beef99999 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -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 *); diff --git a/libavformat/movenc.c b/libavformat/movenc.c index ed9700fcdd..e7b66cdee2 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -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)