Vignesh Venkatasubramanian
2016-06-30 23:16:31 UTC
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 <***@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;
channel [1]. Add support to ffmpeg for creating such files.
[1] https://codereview.chromium.org/2096813002/
Signed-off-by: Vignesh Venkatasubramanian <***@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
2.8.0.rc3.226.g39d4020