On 22/09/13 00:35, Martin Storsjö wrote: > This allows simplifying some early checks that depend on the > muxer mode. > --- > libavformat/movenc.c | 37 +++++++++++++++++++------------------ > 1 file changed, 19 insertions(+), 18 deletions(-) > > diff --git a/libavformat/movenc.c b/libavformat/movenc.c > index dbff369..dd0a31f 100644 > --- a/libavformat/movenc.c > +++ b/libavformat/movenc.c > @@ -3139,10 +3139,22 @@ static int mov_write_header(AVFormatContext *s) > AVDictionaryEntry *t; > int i, hint_track = 0; > > + /* Default mode == MP4 */ > + mov->mode = MODE_MP4; > + > + if (s->oformat != NULL) { > + if (!strcmp("3gp", s->oformat->name)) mov->mode = MODE_3GP; > + else if (!strcmp("3g2", s->oformat->name)) mov->mode = > MODE_3GP|MODE_3G2; > + else if (!strcmp("mov", s->oformat->name)) mov->mode = MODE_MOV; > + else if (!strcmp("psp", s->oformat->name)) mov->mode = MODE_PSP; > + else if (!strcmp("ipod",s->oformat->name)) mov->mode = MODE_IPOD; > + else if (!strcmp("ismv",s->oformat->name)) mov->mode = MODE_ISM; > + } > + > /* Set the FRAGMENT flag if any of the fragmentation methods are > * enabled. */ > if (mov->max_fragment_duration || mov->max_fragment_size || > - (s->oformat && !strcmp(s->oformat->name, "ismv")) || > + mov->mode == MODE_ISM || > mov->flags & (FF_MOV_FLAG_EMPTY_MOOV | > FF_MOV_FLAG_FRAG_KEYFRAME | > FF_MOV_FLAG_FRAG_CUSTOM)) > @@ -3166,25 +3178,14 @@ static int mov_write_header(AVFormatContext *s) > return -1; > } > > - /* Default mode == MP4 */ > - mov->mode = MODE_MP4; > - > - if (s->oformat != NULL) { > - if (!strcmp("3gp", s->oformat->name)) mov->mode = MODE_3GP; > - else if (!strcmp("3g2", s->oformat->name)) mov->mode = > MODE_3GP|MODE_3G2; > - else if (!strcmp("mov", s->oformat->name)) mov->mode = MODE_MOV; > - else if (!strcmp("psp", s->oformat->name)) mov->mode = MODE_PSP; > - else if (!strcmp("ipod",s->oformat->name)) mov->mode = MODE_IPOD; > - else if (!strcmp("ismv",s->oformat->name)) mov->mode = MODE_ISM; > > - 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 -1; > - } > - mov_write_uuidprof_tag(pb, 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 -1;
While you are at it maybe return some AVERROR. _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel