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

Reply via email to