[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