[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