]> git.sesse.net Git - ffmpeg/commitdiff
avfilter/vf_scale_cuda: Add support for YUV444P16
authorPhilip Langdale <philipl@overt.org>
Tue, 14 May 2019 03:00:12 +0000 (20:00 -0700)
committerPhilip Langdale <philipl@overt.org>
Wed, 15 May 2019 18:40:50 +0000 (11:40 -0700)
This format is interesting because it's what you get for decoded
10/12bit HEVC 4:4:4.

libavfilter/version.h
libavfilter/vf_scale_cuda.c

index 293af36f625b3d9f837576b1b8164debc6a7587b..ed3fc7f108657fd54a47f99e2ff69cfaa85304a0 100644 (file)
@@ -31,7 +31,7 @@
 
 #define LIBAVFILTER_VERSION_MAJOR   7
 #define LIBAVFILTER_VERSION_MINOR  53
-#define LIBAVFILTER_VERSION_MICRO 100
+#define LIBAVFILTER_VERSION_MICRO 101
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
                                                LIBAVFILTER_VERSION_MINOR, \
index ecfd6a1c92428c409d7a9fc5cdbad19a0ed19f48..a833dcd1a48710c083ed05bd6ec63751d41eb84b 100644 (file)
@@ -43,7 +43,8 @@ static const enum AVPixelFormat supported_formats[] = {
     AV_PIX_FMT_NV12,
     AV_PIX_FMT_YUV444P,
     AV_PIX_FMT_P010,
-    AV_PIX_FMT_P016
+    AV_PIX_FMT_P016,
+    AV_PIX_FMT_YUV444P16,
 };
 
 #define DIV_UP(a, b) ( ((a) + (b) - 1) / (b) )
@@ -411,6 +412,20 @@ static int scalecuda_resize(AVFilterContext *ctx,
                            out->data[0]+out->linesize[0]*out->height*2, out->width, out->height, out->linesize[0],
                            1);
         break;
+    case AV_PIX_FMT_YUV444P16:
+        call_resize_kernel(ctx, s->cu_func_ushort, 1,
+                           in->data[0], in->width, in->height, in->linesize[0] / 2,
+                           out->data[0], out->width, out->height, out->linesize[0] / 2,
+                           2);
+        call_resize_kernel(ctx, s->cu_func_ushort, 1,
+                           in->data[1], in->width, in->height, in->linesize[1] / 2,
+                           out->data[1], out->width, out->height, out->linesize[1] / 2,
+                           2);
+        call_resize_kernel(ctx, s->cu_func_ushort, 1,
+                           in->data[2], in->width, in->height, in->linesize[2] / 2,
+                           out->data[2], out->width, out->height, out->linesize[2] / 2,
+                           2);
+        break;
     case AV_PIX_FMT_NV12:
         call_resize_kernel(ctx, s->cu_func_uchar, 1,
                            in->data[0], in->width, in->height, in->linesize[0],