From: Baptiste Coudurier Date: Tue, 1 Mar 2011 23:54:29 +0000 (+0000) Subject: movenc: use correct tag for dvcpro hd X-Git-Tag: android-x86-4.4-r1~18265 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=cd37308b7774db3fd52ae079844ab0ac8e31fb7d;p=android-x86%2Fexternal-ffmpeg.git movenc: use correct tag for dvcpro hd Signed-off-by: Mans Rullgard (cherry picked from commit 06ed4873e6e6aed8ec7cc24285d610ef4060880e) --- diff --git a/libavformat/movenc.c b/libavformat/movenc.c index f3a4a9686d..900d23209f 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; }