mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/libaomdec: add support for monochrome files
All such files are signaled as I42016, as there's no monochrome value in aom_img_fmt_t. Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
d5343a5005
commit
f3fae82042
@ -61,9 +61,10 @@ static av_cold int aom_init(AVCodecContext *avctx,
|
||||
|
||||
static void image_copy_16_to_8(AVFrame *pic, struct aom_image *img)
|
||||
{
|
||||
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pic->format);
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
for (i = 0; i < desc->nb_components; i++) {
|
||||
int w = img->d_w;
|
||||
int h = img->d_h;
|
||||
int x, y;
|
||||
@ -97,7 +98,8 @@ static int set_pix_fmt(AVCodecContext *avctx, struct aom_image *img)
|
||||
case AOM_IMG_FMT_I420:
|
||||
case AOM_IMG_FMT_I42016:
|
||||
if (img->bit_depth == 8) {
|
||||
avctx->pix_fmt = AV_PIX_FMT_YUV420P;
|
||||
avctx->pix_fmt = img->monochrome ?
|
||||
AV_PIX_FMT_GRAY8 : AV_PIX_FMT_YUV420P;
|
||||
avctx->profile = FF_PROFILE_AV1_MAIN;
|
||||
return 0;
|
||||
} else if (img->bit_depth == 10) {
|
||||
@ -114,7 +116,8 @@ static int set_pix_fmt(AVCodecContext *avctx, struct aom_image *img)
|
||||
case AOM_IMG_FMT_I422:
|
||||
case AOM_IMG_FMT_I42216:
|
||||
if (img->bit_depth == 8) {
|
||||
avctx->pix_fmt = AV_PIX_FMT_YUV422P;
|
||||
avctx->pix_fmt = img->monochrome ?
|
||||
AV_PIX_FMT_GRAY10 : AV_PIX_FMT_YUV420P10;
|
||||
avctx->profile = FF_PROFILE_AV1_PROFESSIONAL;
|
||||
return 0;
|
||||
} else if (img->bit_depth == 10) {
|
||||
@ -131,7 +134,8 @@ static int set_pix_fmt(AVCodecContext *avctx, struct aom_image *img)
|
||||
case AOM_IMG_FMT_I444:
|
||||
case AOM_IMG_FMT_I44416:
|
||||
if (img->bit_depth == 8) {
|
||||
avctx->pix_fmt = AV_PIX_FMT_YUV444P;
|
||||
avctx->pix_fmt = img->monochrome ?
|
||||
AV_PIX_FMT_GRAY12 : AV_PIX_FMT_YUV420P12;
|
||||
avctx->profile = FF_PROFILE_AV1_HIGH;
|
||||
return 0;
|
||||
} else if (img->bit_depth == 10) {
|
||||
|
Loading…
Reference in New Issue
Block a user