|
|
|
@ -1181,10 +1181,21 @@ static const enum AVPixelFormat mpeg12_hwaccel_pixfmt_list_420[] = { |
|
|
|
|
AV_PIX_FMT_NONE |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static const enum AVPixelFormat mpeg12_pixfmt_list_422[] = { |
|
|
|
|
AV_PIX_FMT_YUV422P, |
|
|
|
|
AV_PIX_FMT_NONE |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static const enum AVPixelFormat mpeg12_pixfmt_list_444[] = { |
|
|
|
|
AV_PIX_FMT_YUV444P, |
|
|
|
|
AV_PIX_FMT_NONE |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static enum AVPixelFormat mpeg_get_pixelformat(AVCodecContext *avctx) |
|
|
|
|
{ |
|
|
|
|
Mpeg1Context *s1 = avctx->priv_data; |
|
|
|
|
MpegEncContext *s = &s1->mpeg_enc_ctx; |
|
|
|
|
const enum AVPixelFormat *pix_fmts; |
|
|
|
|
|
|
|
|
|
#if FF_API_XVMC |
|
|
|
|
FF_DISABLE_DEPRECATION_WARNINGS |
|
|
|
@ -1194,11 +1205,13 @@ FF_ENABLE_DEPRECATION_WARNINGS |
|
|
|
|
#endif /* FF_API_XVMC */ |
|
|
|
|
|
|
|
|
|
if (s->chroma_format < 2) |
|
|
|
|
return ff_get_format(avctx, mpeg12_hwaccel_pixfmt_list_420); |
|
|
|
|
pix_fmts = mpeg12_hwaccel_pixfmt_list_420; |
|
|
|
|
else if (s->chroma_format == 2) |
|
|
|
|
return AV_PIX_FMT_YUV422P; |
|
|
|
|
pix_fmts = mpeg12_pixfmt_list_422; |
|
|
|
|
else |
|
|
|
|
return AV_PIX_FMT_YUV444P; |
|
|
|
|
pix_fmts = mpeg12_pixfmt_list_444; |
|
|
|
|
|
|
|
|
|
return ff_get_format(avctx, pix_fmts); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Call this function when we know all parameters.
|
|
|
|
|