[02/14] movenc: Factorize writing ftyp and other identification tags to a separate function

Message ID 1419862828-30060-2-git-send-email-martin@martin.st
State Committed
Commit 355d01a1bf55297b1d1f04e4bfbf0ddc93b6247e
Headers show

Commit Message

Martin Storsjö Dec. 29, 2014, 2:20 p.m.
---
 libavformat/movenc.c | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

Comments

Derek Buitenhuis Dec. 29, 2014, 4:56 p.m. | #1
On 12/29/2014 2:20 PM, Martin Storsjö wrote:
> ---
>  libavformat/movenc.c | 26 +++++++++++++++++---------
>  1 file changed, 17 insertions(+), 9 deletions(-)

OK.

- Derek

Patch

diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index a809c36..3f5a6ae 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)