Merge commit '355d01a1bf55297b1d1f04e4bfbf0ddc93b6247e'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 3 Jan 2015 00:18:54 +0000 (01:18 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 3 Jan 2015 00:18:54 +0000 (01:18 +0100)
* commit '355d01a1bf55297b1d1f04e4bfbf0ddc93b6247e':
  movenc: Factorize writing ftyp and other identification tags to a separate function

Conflicts:
libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavformat/movenc.c

@@@ -3722,6 -2988,20 +3722,33 @@@ static void mov_write_uuidprof_tag(AVIO
      avio_wb32(pb, 0x010001); /* ? */
  }
  
 -        if (s->nb_streams != 2) {
+ static int mov_write_identification(AVIOContext *pb, AVFormatContext *s)
+ {
+     MOVMuxContext *mov = s->priv_data;
++    int i;
++
+     mov_write_ftyp_tag(pb,s);
+     if (mov->mode == MODE_PSP) {
++        int video_streams_nb = 0, audio_streams_nb = 0, other_streams_nb = 0;
++        for (i = 0; i < s->nb_streams; i++) {
++            AVStream *st = s->streams[i];
++            if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
++                video_streams_nb++;
++            else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO)
++                audio_streams_nb++;
++            else
++                other_streams_nb++;
++            }
++
++        if (video_streams_nb != 1 || audio_streams_nb != 1 || other_streams_nb) {
+             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;
@@@ -4590,25 -3677,9 +4617,8 @@@ static int mov_write_header(AVFormatCon
          return AVERROR(EINVAL);
      }
  
-     mov_write_ftyp_tag(pb,s);
-     if (mov->mode == MODE_PSP) {
-         int video_streams_nb = 0, audio_streams_nb = 0, other_streams_nb = 0;
-         for (i = 0; i < s->nb_streams; i++) {
-             AVStream *st = s->streams[i];
-             if (st->codec->codec_type == AVMEDIA_TYPE_VIDEO)
-                 video_streams_nb++;
-             else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO)
-                 audio_streams_nb++;
-             else
-                 other_streams_nb++;
-             }
--
-         if (video_streams_nb != 1 || audio_streams_nb != 1 || other_streams_nb) {
-             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)