|
|
|
@ -623,12 +623,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; |
|
|
|
|
} |
|
|
|
|