[FFmpeg-devel] [PATCH] In mov muxer, use correct tag for dvcpro hd.

Måns Rullgård mans
Wed Mar 2 01:14:48 CET 2011


Baptiste Coudurier <baptiste.coudurier at gmail.com> writes:

> ---
>  libavformat/movenc.c |   23 +++++++++++++++++------
>  1 files changed, 17 insertions(+), 6 deletions(-)
>
> diff --git a/libavformat/movenc.c b/libavformat/movenc.c
> index 7179e7a..07ce696 100644
> --- a/libavformat/movenc.c
> +++ b/libavformat/movenc.c
> @@ -624,12 +624,23 @@ static int mov_get_dv_codec_tag(AVFormatContext *s, MOVTrack *track)
>  {
>      int tag;
>  
> -    if (track->enc->height == 480) /* NTSC */
> -        if  (track->enc->pix_fmt == PIX_FMT_YUV422P) tag = MKTAG('d','v','5','n');
> -        else                                         tag = MKTAG('d','v','c',' ');
> -    else if (track->enc->pix_fmt == PIX_FMT_YUV422P) tag = MKTAG('d','v','5','p');
> -    else if (track->enc->pix_fmt == PIX_FMT_YUV420P) tag = MKTAG('d','v','c','p');
> -    else                                             tag = MKTAG('d','v','p','p');
> +    if (track->enc->width == 720) /* SD */
> +        if (track->enc->height == 480) /* NTSC */
> +            if  (track->enc->pix_fmt == PIX_FMT_YUV422P) tag = MKTAG('d','v','5','n');
> +            else                                         tag = MKTAG('d','v','c',' ');
> +        else if (track->enc->pix_fmt == PIX_FMT_YUV422P) tag = MKTAG('d','v','5','p');
> +        else if (track->enc->pix_fmt == PIX_FMT_YUV420P) tag = MKTAG('d','v','c','p');
> +        else                                             tag = MKTAG('d','v','p','p');
> +    else if (track->enc->height == 720) /* HD 720 line */
> +        if  (track->enc->time_base.den == 50)            tag = MKTAG('d','v','h','q');
> +        else                                             tag = MKTAG('d','v','h','p');
> +    else if (track->enc->height == 1080) /* HD 1080 line */
> +        if  (track->enc->time_base.den == 25)            tag = MKTAG('d','v','h','5');
> +        else                                             tag = MKTAG('d','v','h','6');
> +    else {
> +        av_log(s, AV_LOG_ERROR, "unsupported height for dv codec\n");
> +        return 0;
> +    }
>  
>      return tag;
>  }
> -- 
> 1.7.4.1

Looks OK.  Queued.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list