[vlc-devel] [PATCH 1/2] nvdec: move cuda format to chroma mapping
Steve Lhomme
robux4 at ycbcr.xyz
Mon Apr 6 09:38:19 CEST 2020
Applied both, thanks.
On 2020-04-03 17:34, quentin.chateau at deepskycorp.com wrote:
> From: Quentin Chateau <quentin.chateau at deepskycorp.com>
>
> ---
> modules/hw/nvdec/nvdec.c | 36 +++++++++++++++++++-----------------
> 1 file changed, 19 insertions(+), 17 deletions(-)
>
> diff --git a/modules/hw/nvdec/nvdec.c b/modules/hw/nvdec/nvdec.c
> index 08312cce54..893cd8381a 100644
> --- a/modules/hw/nvdec/nvdec.c
> +++ b/modules/hw/nvdec/nvdec.c
> @@ -282,6 +282,24 @@ static vlc_fourcc_t MapSurfaceChroma(cudaVideoChromaFormat chroma, unsigned bitD
> }
> }
>
> +static vlc_fourcc_t MapSurfaceOpaqueChroma(cudaVideoChromaFormat chroma, unsigned bitDepth)
> +{
> + switch (chroma) {
> + case cudaVideoChromaFormat_420:
> + if (bitDepth <= 8)
> + return VLC_CODEC_NVDEC_OPAQUE;
> + if (bitDepth <= 10)
> + return VLC_CODEC_NVDEC_OPAQUE_10B;
> + return VLC_CODEC_NVDEC_OPAQUE_16B;
> + case cudaVideoChromaFormat_444:
> + if (bitDepth <= 8)
> + return VLC_CODEC_NVDEC_OPAQUE_444;
> + return VLC_CODEC_NVDEC_OPAQUE_444_16B;
> + default:
> + return 0;
> + }
> +}
> +
> static cudaVideoSurfaceFormat MapSurfaceFmt(int i_vlc_fourcc)
> {
> switch (i_vlc_fourcc) {
> @@ -1022,23 +1040,7 @@ static int OpenDecoder(vlc_object_t *p_this)
>
> vlc_fourcc_t output_chromas[3];
> size_t chroma_idx = 0;
> - if (cudaChroma == cudaVideoChromaFormat_420)
> - {
> - if (i_depth_luma >= 16)
> - output_chromas[chroma_idx++] = VLC_CODEC_NVDEC_OPAQUE_16B;
> - else if (i_depth_luma > 8)
> - output_chromas[chroma_idx++] = VLC_CODEC_NVDEC_OPAQUE_10B;
> - else
> - output_chromas[chroma_idx++] = VLC_CODEC_NVDEC_OPAQUE;
> - }
> - else if (cudaChroma == cudaVideoChromaFormat_444)
> - {
> - if (i_depth_luma > 8)
> - output_chromas[chroma_idx++] = VLC_CODEC_NVDEC_OPAQUE_444_16B;
> - else
> - output_chromas[chroma_idx++] = VLC_CODEC_NVDEC_OPAQUE_444;
> - }
> -
> + output_chromas[chroma_idx++] = MapSurfaceOpaqueChroma(cudaChroma, i_depth_luma);
> output_chromas[chroma_idx++] = MapSurfaceChroma(cudaChroma, i_depth_luma);
> output_chromas[chroma_idx++] = 0;
>
> --
> 2.17.1
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
>
More information about the vlc-devel
mailing list