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

Måns Rullgård mans
Wed Mar 2 00:40:33 CET 2011


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

> ---
>  libavformat/movenc.c |   19 +++++++++++++------
>  1 files changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/libavformat/movenc.c b/libavformat/movenc.c
> index 7179e7a..e4cf3f0 100644
> --- a/libavformat/movenc.c
> +++ b/libavformat/movenc.c
> @@ -624,12 +624,19 @@ 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 */

Are other widths (e.g. 704) impossible?  If not, this will tag them as
1080-line, which is probably wrong.

> +        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 /* HD 1080 line */
> +        if  (track->enc->time_base.den == 25)            tag = MKTAG('d','v','h','5');
> +        else                                             tag = MKTAG('d','v','h','6');
>  
>      return tag;
>  }
> -- 
> 1.7.4.1
>

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



More information about the ffmpeg-devel mailing list