nvdec_gl: handle display of 4:4:4 decoded pictures
authorSteve Lhomme <robux4@ycbcr.xyz>
Fri, 13 Dec 2019 14:51:22 +0000 (15:51 +0100)
committerSteve Lhomme <robux4@ycbcr.xyz>
Fri, 13 Dec 2019 16:28:06 +0000 (17:28 +0100)
modules/hw/nvdec/nvdec_gl.c

index 47eca06..5c5773a 100644 (file)
@@ -131,7 +131,7 @@ tc_nvdec_gl_update(opengl_tex_converter_t const *tc, GLuint textures[],
             .WidthInBytes = tex_widths[0],
             .Height = tex_heights[i],
         };
-        if (tc->fmt.i_chroma != VLC_CODEC_NVDEC_OPAQUE)
+        if (tc->fmt.i_chroma != VLC_CODEC_NVDEC_OPAQUE && tc->fmt.i_chroma != VLC_CODEC_NVDEC_OPAQUE_444)
             cu_cpy.WidthInBytes *= 2;
         result = CALL_CUDA(cuMemcpy2DAsync, &cu_cpy, 0);
         if (result != VLC_SUCCESS)
@@ -201,6 +201,8 @@ static int Open(vlc_object_t *obj)
     {
         case VLC_CODEC_NVDEC_OPAQUE_10B: render_chroma = VLC_CODEC_P010; break;
         case VLC_CODEC_NVDEC_OPAQUE_16B: render_chroma = VLC_CODEC_P016; break;
+        case VLC_CODEC_NVDEC_OPAQUE_444:     render_chroma = VLC_CODEC_I444; break;
+        case VLC_CODEC_NVDEC_OPAQUE_444_16B: render_chroma = VLC_CODEC_I444_16L; break;
         case VLC_CODEC_NVDEC_OPAQUE:
         default:                         render_chroma = VLC_CODEC_NV12; break;
     }