[FFmpeg-devel] [PATCH 5/5] avcodec/nvenc: Accept YUV444P10_MSB and YUV444P12_MSB content

Timo Rothenpieler timo at rothenpieler.org
Sun Oct 21 00:12:16 EEST 2018


On 20.10.2018 22:47, Philip Langdale wrote:
> 12bit is implicitly truncated to 10bit as part of doing this, but we
> already do that for P016 and YUV444P16.
> 
> I've bundled a single version bump and changelog entry in this change
> to reflect the updates to all three of nvdec/nvenc/cuviddec.
> 
> Signed-off-by: Philip Langdale <philipl at overt.org>
> ---
>   Changelog          |  1 +
>   libavcodec/nvenc.c | 18 +++++++++++++-----
>   2 files changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/Changelog b/Changelog
> index 1b0bc95b7a..1334eec474 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -35,6 +35,7 @@ version <next>:
>   - AV1 parser
>   - SER demuxer
>   - sinc audio filter source
> +- Support for HEVC 4:4:4 content in nvdec/nvenc/cuviddec
>   
>   
>   version 4.0:
> diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
> index e180d7b993..5be98a5182 100644
> --- a/libavcodec/nvenc.c
> +++ b/libavcodec/nvenc.c
> @@ -41,8 +41,10 @@ const enum AVPixelFormat ff_nvenc_pix_fmts[] = {
>       AV_PIX_FMT_NV12,
>       AV_PIX_FMT_P010,
>       AV_PIX_FMT_YUV444P,
> -    AV_PIX_FMT_P016,      // Truncated to 10bits
> -    AV_PIX_FMT_YUV444P16, // Truncated to 10bits
> +    AV_PIX_FMT_P016,          // Truncated to 10bits
> +    AV_PIX_FMT_YUV444P10_MSB,
> +    AV_PIX_FMT_YUV444P12_MSB, // Truncated to 10bits
> +    AV_PIX_FMT_YUV444P16,     // Truncated to 10bits
>       AV_PIX_FMT_0RGB32,
>       AV_PIX_FMT_0BGR32,
>       AV_PIX_FMT_CUDA,
> @@ -52,11 +54,15 @@ const enum AVPixelFormat ff_nvenc_pix_fmts[] = {
>       AV_PIX_FMT_NONE
>   };
>   
> -#define IS_10BIT(pix_fmt)  (pix_fmt == AV_PIX_FMT_P010    || \
> -                            pix_fmt == AV_PIX_FMT_P016    || \
> +#define IS_10BIT(pix_fmt)  (pix_fmt == AV_PIX_FMT_P010          || \
> +                            pix_fmt == AV_PIX_FMT_P016          || \
> +                            pix_fmt == AV_PIX_FMT_YUV444P10_MSB || \
> +                            pix_fmt == AV_PIX_FMT_YUV444P12_MSB || \
>                               pix_fmt == AV_PIX_FMT_YUV444P16)
>   
> -#define IS_YUV444(pix_fmt) (pix_fmt == AV_PIX_FMT_YUV444P || \
> +#define IS_YUV444(pix_fmt) (pix_fmt == AV_PIX_FMT_YUV444P       || \
> +                            pix_fmt == AV_PIX_FMT_YUV444P10_MSB || \
> +                            pix_fmt == AV_PIX_FMT_YUV444P12_MSB || \
>                               pix_fmt == AV_PIX_FMT_YUV444P16)
>   
>   static const struct {
> @@ -1263,6 +1269,8 @@ static NV_ENC_BUFFER_FORMAT nvenc_map_buffer_format(enum AVPixelFormat pix_fmt)
>           return NV_ENC_BUFFER_FORMAT_YUV420_10BIT;
>       case AV_PIX_FMT_YUV444P:
>           return NV_ENC_BUFFER_FORMAT_YUV444_PL;
> +    case AV_PIX_FMT_YUV444P10_MSB:
> +    case AV_PIX_FMT_YUV444P12_MSB:
>       case AV_PIX_FMT_YUV444P16:
>           return NV_ENC_BUFFER_FORMAT_YUV444_10BIT;
>       case AV_PIX_FMT_0RGB32:
> 

LGTM

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4538 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20181020/f89b1a1b/attachment.bin>


More information about the ffmpeg-devel mailing list