From 355d01a1bf55297b1d1f04e4bfbf0ddc93b6247e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 18 Dec 2014 23:52:42 +0200 Subject: [PATCH] movenc: Factorize writing ftyp and other identification tags to a separate function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- libavformat/movenc.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index a809c36e59..3f5a6aee7e 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -2988,6 +2988,20 @@ static void mov_write_uuidprof_tag(AVIOContext *pb, AVFormatContext *s) avio_wb32(pb, 0x010001); /* ? */ } +static int mov_write_identification(AVIOContext *pb, AVFormatContext *s) +{ + MOVMuxContext *mov = s->priv_data; + mov_write_ftyp_tag(pb,s); + if (mov->mode == MODE_PSP) { + if (s->nb_streams != 2) { + av_log(s, AV_LOG_ERROR, "PSP mode need one video and one audio stream\n"); + return AVERROR(EINVAL); + } + mov_write_uuidprof_tag(pb, s); + } + return 0; +} + static int mov_parse_mpeg2_frame(AVPacket *pkt, uint32_t *flags) { uint32_t c = -1; @@ -3605,7 +3619,7 @@ static int mov_write_header(AVFormatContext *s) AVIOContext *pb = s->pb; MOVMuxContext *mov = s->priv_data; AVDictionaryEntry *t; - int i, hint_track = 0; + int i, ret, hint_track = 0; mov->fc = s; @@ -3664,14 +3678,8 @@ static int mov_write_header(AVFormatContext *s) } - mov_write_ftyp_tag(pb,s); - if (mov->mode == MODE_PSP) { - if (s->nb_streams != 2) { - av_log(s, AV_LOG_ERROR, "PSP mode need one video and one audio stream\n"); - return AVERROR(EINVAL); - } - mov_write_uuidprof_tag(pb, s); - } + if ((ret = mov_write_identification(pb, s)) < 0) + return ret; mov->nb_streams = s->nb_streams; if (mov->mode & (MODE_MP4|MODE_MOV|MODE_IPOD) && s->nb_chapters)