[FFmpeg-devel] [PATCH] libvpx: Enable vp9 alpha encoding

Vignesh Venkatasubramanian vigneshv at google.com
Fri Jul 1 01:16:31 CEST 2016


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/

Signed-off-by: Vignesh Venkatasubramanian <vigneshv at google.com>
---
 libavcodec/libvpx.c    | 3 +++
 libavcodec/libvpxenc.c | 1 +
 2 files changed, 4 insertions(+)

diff --git a/libavcodec/libvpx.c b/libavcodec/libvpx.c
index 55edc7e..1eca97a 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 4ea932d..c5b1b86 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;
-- 
2.8.0.rc3.226.g39d4020



More information about the ffmpeg-devel mailing list