avcodec/vaapi-vp9: add support for profile 2 (bpp > 8)
authorMathieu Velten <matmaul@gmail.com>
Mon, 5 Dec 2016 20:32:59 +0000 (21:32 +0100)
committerMark Thompson <sw@jkqxz.net>
Mon, 5 Dec 2016 22:12:34 +0000 (22:12 +0000)
Signed-off-by: Mark Thompson <sw@jkqxz.net>
libavcodec/vaapi_vp9.c
libavcodec/vp9.c

index b360dcb..9b3e81a 100644 (file)
@@ -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;
index 793e356..09365f8 100644 (file)
@@ -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;