diff mbox

[FFmpeg-devel,2/2] avcodec/vaapi-vp9: add support for profile 2 (bpp > 8)

Message ID 20161205203259.2479-2-matmaul@gmail.com
State Accepted
Commit 49e8e5fc563453f476a26d1f98ba08f423eedb3c
Headers show

Commit Message

Mathieu Velten Dec. 5, 2016, 8:32 p.m. UTC
---
 libavcodec/vaapi_vp9.c |  1 +
 libavcodec/vp9.c       | 10 +++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

Comments

Carl Eugen Hoyos Dec. 8, 2016, 3:16 p.m. UTC | #1
2016-12-05 21:32 GMT+01:00 Mathieu Velten <matmaul@gmail.com>:
> ---
>  libavcodec/vaapi_vp9.c |  1 +
>  libavcodec/vp9.c       | 10 +++++++++-
>  2 files changed, 10 insertions(+), 1 deletion(-)

(This is missing a review here but I guess it's just me
who can't work with gmail.)

May I suggest to revert this?

> +    pp->bit_depth = h->h.bpp;

Google doesn't easily find a version of va_dec_vp9.h
with _VADecPictureParameterBufferVP9->bit_depth.

Carl Eugen
Carl Eugen Hoyos Dec. 8, 2016, 3:19 p.m. UTC | #2
2016-12-08 16:16 GMT+01:00 Carl Eugen Hoyos <ceffmpeg@gmail.com>:

>> +    pp->bit_depth = h->h.bpp;
>
> Google doesn't easily find a version of va_dec_vp9.h
> with _VADecPictureParameterBufferVP9->bit_depth.

In any case, please mention ticket #6003 when
fixing the issue.

Thank you, Carl Eugen
diff mbox

Patch

diff --git a/libavcodec/vaapi_vp9.c b/libavcodec/vaapi_vp9.c
index b360dcb..9b3e81a 100644
--- a/libavcodec/vaapi_vp9.c
+++ b/libavcodec/vaapi_vp9.c
@@ -38,6 +38,7 @@  static void fill_picture_parameters(AVCodecContext                 *avctx,
     pp->first_partition_size = h->h.compressed_header_size;
 
     pp->profile = h->h.profile;
+    pp->bit_depth = h->h.bpp;
 
     pp->filter_level = h->h.filter.level;
     pp->sharpness_level = h->h.filter.sharpness;
diff --git a/libavcodec/vp9.c b/libavcodec/vp9.c
index 793e356..09365f8 100644
--- a/libavcodec/vp9.c
+++ b/libavcodec/vp9.c
@@ -258,7 +258,8 @@  static int update_size(AVCodecContext *ctx, int w, int h)
         if ((res = ff_set_dimensions(ctx, w, h)) < 0)
             return res;
 
-        if (s->pix_fmt == AV_PIX_FMT_YUV420P) {
+        switch (s->pix_fmt) {
+        case AV_PIX_FMT_YUV420P:
 #if CONFIG_VP9_DXVA2_HWACCEL
             *fmtp++ = AV_PIX_FMT_DXVA2_VLD;
 #endif
@@ -268,6 +269,13 @@  static int update_size(AVCodecContext *ctx, int w, int h)
 #if CONFIG_VP9_VAAPI_HWACCEL
             *fmtp++ = AV_PIX_FMT_VAAPI;
 #endif
+            break;
+        case AV_PIX_FMT_YUV420P10:
+        case AV_PIX_FMT_YUV420P12:
+#if CONFIG_VP9_VAAPI_HWACCEL
+            *fmtp++ = AV_PIX_FMT_VAAPI;
+#endif
+            break;
         }
 
         *fmtp++ = s->pix_fmt;