summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorVignesh Venkatasubramanian <vigneshv-at-google.com@ffmpeg.org>2016-06-30 16:16:31 -0700
committerJames Zern <jzern@google.com>2016-07-12 23:19:50 -0700
commitacca56d9629b7fc158ce188190d22314c3d92c39 (patch)
tree1f0a2f59e519273e3b5ca6887c738f09cfef3135 /libavcodec
parent7af44ce2f7c2f7eac5f0bfbc08872cc6b250ccae (diff)
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 <jzern@google.com> Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/libvpx.c3
-rw-r--r--libavcodec/libvpxenc.c1
2 files changed, 4 insertions, 0 deletions
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;