From acca56d9629b7fc158ce188190d22314c3d92c39 Mon Sep 17 00:00:00 2001 From: Vignesh Venkatasubramanian Date: Thu, 30 Jun 2016 16:16:31 -0700 Subject: [PATCH] libvpx: Enable vp9 alpha encoding Chrome canary now supports decoding of VP9 streams with alpha channel [1]. Add support to ffmpeg for creating such files. [1] https://codereview.chromium.org/2096813002/ Reviewed-by: James Zern Signed-off-by: Vignesh Venkatasubramanian --- libavcodec/libvpx.c | 3 +++ libavcodec/libvpxenc.c | 1 + 2 files changed, 4 insertions(+) diff --git a/libavcodec/libvpx.c b/libavcodec/libvpx.c index 55edc7ecb5..1eca97a081 100644 --- a/libavcodec/libvpx.c +++ b/libavcodec/libvpx.c @@ -29,12 +29,14 @@ static const enum AVPixelFormat vp9_pix_fmts_def[] = { AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NONE }; #if CONFIG_LIBVPX_VP9_ENCODER static const enum AVPixelFormat vp9_pix_fmts_highcol[] = { AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, @@ -46,6 +48,7 @@ static const enum AVPixelFormat vp9_pix_fmts_highcol[] = { static const enum AVPixelFormat vp9_pix_fmts_highbd[] = { AV_PIX_FMT_YUV420P, + AV_PIX_FMT_YUVA420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 4ea932d779..c5b1b86190 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -284,6 +284,7 @@ static int set_pix_fmt(AVCodecContext *avctx, vpx_codec_caps_t codec_caps, #endif switch (avctx->pix_fmt) { case AV_PIX_FMT_YUV420P: + case AV_PIX_FMT_YUVA420P: enccfg->g_profile = 0; *img_fmt = VPX_IMG_FMT_I420; return 0;