From patchwork Sat Oct 19 13:53:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damiano Galassi X-Patchwork-Id: 52402 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:612c:143:b0:48e:c0f8:d0de with SMTP id h3csp1550376vqi; Sat, 19 Oct 2024 06:54:13 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUo1xJMr6Us4sr1LrMwqP+rPvNwNGdk9pGlMYe3a13A3BOj85cuCwX0sJeZFhT8gUIAtaHhEQsiPiGUXWbqfaux@gmail.com X-Google-Smtp-Source: AGHT+IFWTb7Hy32pPG2NGT8sgty5vM4TChUJKDnyJIdptL+UuJqGaHV/y50V3guBccwxeA1lTUXK X-Received: by 2002:a05:6512:308d:b0:539:e6bf:ca9a with SMTP id 2adb3069b0e04-53a1534117bmr3549102e87.6.1729346053211; Sat, 19 Oct 2024 06:54:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1729346053; cv=none; d=google.com; s=arc-20240605; b=Y0aoBaQSWr8kbQEdMv88cq6a/PfDhYngQY/e7HDUgszM4g7oEnCikLokEQGYRcTRpt sktGI4DfGEk65iwQNF4li5wCz8cM+NVmoRHkGgGph8EVYiunten8Zz9Eq1SQL4WunGYT dj6b5DIsvfholI0X2ev8GTKVcRRIKrX7FDaA1kNeYfNy6uNZlQnQODYN1cPyZzLljTyV Z/DRcRG6QUDpvlIYU3XSdrYHr0d02iwTH/8dX+I2XEDW2rthgIs2nOjj2mDyY5Atoetl kxXdSNv/Ib/6KeTAnh4oJWl21LIMLV/uFt7XojaohBphJYGdSultz1BWgGGbEd6RNSKp gwCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=/ZWmNqVKP/+UsLyna6OnJnDs0kZ79Nbkwv0o6tDnrIU=; fh=YwgSrnX4HA8pvPzdbaRPI5AmpsyVZveJ5hFtWA9JHBA=; b=kG0J91jt19zXTJenPZY7tTl05PKeCVJCyb996CnxNZ8ZnWiMhlxe3GuJbLZ2VvKQZS NmN3x+V1sliHtC0495OfDHx8l+N1GbNLg+eGivShC36qnhQ9gvqXbfdvcJEAh5F3JUCy QM1vux8CwlXgQbZgupVZseQgT/SRBNo73o9rwxM7S2Y225aJCTd/WhjFSogNlDEVwHO6 RX9kH/1uXNmZssXrscPHAYzjvNePHBdjNx2BASfaqqpmXmUmerDunyc23OeZlPVL59l8 262tShGCjJlhLkCJJNG/NGpQyacPaOAWHnt5HyDuInemC5jBC/AvXMXBdBKVWliwC1je 6v3A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=LSXslvt3; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 2adb3069b0e04-53a151f64b9si1439521e87.241.2024.10.19.06.54.12; Sat, 19 Oct 2024 06:54:13 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=LSXslvt3; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4617268DD3F; Sat, 19 Oct 2024 16:54:07 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DF9E068DCAD for ; Sat, 19 Oct 2024 16:54:00 +0300 (EEST) Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-a9a5b2f2026so321104666b.2 for ; Sat, 19 Oct 2024 06:54:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1729346040; x=1729950840; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=lQiWUR/03qGV0EZzvusBcxceKXg1vdkBdJHiqKWIyoM=; b=LSXslvt3bvrbXLtyUXYI4vCTEo2EiQx16iT146VkM3hfHKNeFtWq1YuB6McDAFlPah pyQUWXHY8Nj9m5QyCGT3dAhYa8fRY7T3Q8TNph7hmqeofB5pHCNx+e/HWV0QY9l0VFkV WvCSDtWVerR/LZvvzcGYMQ26XdzvWapU0248lRbg0bbkfeY8zxpjqAlNNiZrsFnluM0m SD1pVF/aRw08ieM7Ynk4KBXeOpA4XcD/BqMA0M05xLNUrAd9Xtz3FDUIqNptYwYARR30 MAAm73AU5vyCTKym8KfBf7DBDnQm1hOB9p+puGtMvPNTj9l3FGYrwve7V0NFMQDDAI1z aaPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729346040; x=1729950840; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=lQiWUR/03qGV0EZzvusBcxceKXg1vdkBdJHiqKWIyoM=; b=uFQlLOwJLLFMbmnDZrd09yl70Z9jQc3R0Mep9TZp7ioMtJbDRO+EgdnHezNceoPXy4 ocbG7UNf4gCRKMZdam6iAWiOBWN9XRHFx5cH0rREY6WxoY8nCMcqR7/PoH15csSf0+xE j/1LfpklSHWVpVi1s0kRuJKRw8GI/t9UmCeMn0AY8MJ7GeDFzkC0l6MpW20tRWXUR0uB JdaXUYA0cYMhEpilM/lptNoD7SrW1oFkBvLV1fWK/UojD6qkBxiVtq24VmeaOkgYRYi9 8qClu18oERV3VTCVegEB7YORQzzyV2FD+1Xf/utSHpjszuixhjdBWmdugb9nueuRvj81 Kafg== X-Gm-Message-State: AOJu0YwOteeEjie31eR/S2V8N1LVR+W+8FJkUc8KXTHlhsOB4ZCl2pXY g45I1XDjrShS718+5vM5bgW9e2WkwuY6xZ2CV9BUdHLTqVbSRybQr0137Q== X-Received: by 2002:a17:906:c150:b0:a99:e600:7e06 with SMTP id a640c23a62f3a-a9a69c92034mr434010966b.51.1729346039743; Sat, 19 Oct 2024 06:53:59 -0700 (PDT) Received: from Mac-Pro.homenet.telecomitalia.it.homenet.telecomitalia.it ([87.17.246.200]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a9a68a8d9d9sm217477166b.44.2024.10.19.06.53.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Oct 2024 06:53:59 -0700 (PDT) From: Damiano Galassi To: ffmpeg-devel@ffmpeg.org Date: Sat, 19 Oct 2024 15:53:39 +0200 Message-Id: <20241019135339.33059-1-damiog@gmail.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/amfenc: properly set primaries, transfer, and matrix values X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Damiano Galassi Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: gF1p4B5O/0aR HEVC and AV1 encoders had hard-coded color values for 8-bit and 10-bit depths, and they were completely disregarding the provided values. --- libavcodec/amfenc.c | 109 +++++++++++++++++++++++++++++++++++++++ libavcodec/amfenc.h | 2 + libavcodec/amfenc_av1.c | 16 +++--- libavcodec/amfenc_h264.c | 10 ++-- libavcodec/amfenc_hevc.c | 15 +++--- 5 files changed, 129 insertions(+), 23 deletions(-) diff --git a/libavcodec/amfenc.c b/libavcodec/amfenc.c index 225fb9df27..a83f5b2013 100644 --- a/libavcodec/amfenc.c +++ b/libavcodec/amfenc.c @@ -917,6 +917,115 @@ int ff_amf_receive_packet(AVCodecContext *avctx, AVPacket *avpkt) return ret; } +int ff_amf_get_color_primaries(AVCodecContext *avctx) +{ + amf_int64 color_primaries = AMF_COLOR_PRIMARIES_UNDEFINED; + switch (avctx->color_primaries) { + case AVCOL_PRI_BT709: + color_primaries = AMF_COLOR_PRIMARIES_BT709; + break; + case AVCOL_PRI_UNSPECIFIED: + color_primaries = AMF_COLOR_PRIMARIES_UNSPECIFIED; + break; + case AVCOL_PRI_RESERVED: + color_primaries = AMF_COLOR_PRIMARIES_RESERVED; + break; + case AVCOL_PRI_BT470M: + color_primaries = AMF_COLOR_PRIMARIES_BT470M; + break; + case AVCOL_PRI_BT470BG: + color_primaries = AMF_COLOR_PRIMARIES_BT470BG; + break; + case AVCOL_PRI_SMPTE170M: + color_primaries = AMF_COLOR_PRIMARIES_SMPTE170M; + break; + case AVCOL_PRI_SMPTE240M: + color_primaries = AMF_COLOR_PRIMARIES_SMPTE240M; + break; + case AVCOL_PRI_FILM: + color_primaries = AMF_COLOR_PRIMARIES_FILM; + break; + case AVCOL_PRI_BT2020: + color_primaries = AMF_COLOR_PRIMARIES_BT2020; + break; + case AVCOL_PRI_SMPTE428: + color_primaries = AMF_COLOR_PRIMARIES_SMPTE428; + break; + case AVCOL_PRI_SMPTE431: + color_primaries = AMF_COLOR_PRIMARIES_SMPTE431; + break; + case AVCOL_PRI_SMPTE432: + color_primaries = AMF_COLOR_PRIMARIES_SMPTE432; + break; + case AVCOL_PRI_EBU3213: + color_primaries = AMF_COLOR_PRIMARIES_JEDEC_P22; + break; + } + return color_primaries; +} + +int ff_amf_get_transfer_characteristic(AVCodecContext *avctx) +{ + amf_int64 transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_UNDEFINED; + switch (avctx->color_trc) { + case AVCOL_TRC_BT709: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_BT709; + break; + case AVCOL_TRC_UNSPECIFIED: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_UNSPECIFIED; + break; + case AVCOL_TRC_RESERVED: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_RESERVED; + break; + case AVCOL_TRC_GAMMA22: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_GAMMA22; + break; + case AVCOL_TRC_GAMMA28: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_GAMMA28; + break; + case AVCOL_TRC_SMPTE170M: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE170M; + break; + case AVCOL_TRC_SMPTE240M: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE240M; + break; + case AVCOL_TRC_LINEAR: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_LINEAR; + break; + case AVCOL_TRC_LOG: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_LOG; + break; + case AVCOL_TRC_LOG_SQRT: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_LOG_SQRT; + break; + case AVCOL_TRC_IEC61966_2_4: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_IEC61966_2_4; + break; + case AVCOL_TRC_BT1361_ECG: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_BT1361_ECG; + break; + case AVCOL_TRC_IEC61966_2_1: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_IEC61966_2_1; + break; + case AVCOL_TRC_BT2020_10: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_BT2020_10; + break; + case AVCOL_TRC_BT2020_12: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_BT2020_12; + break; + case AVCOL_TRC_SMPTE2084: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE2084; + break; + case AVCOL_TRC_SMPTE428: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE428; + break; + case AVCOL_TRC_ARIB_STD_B67: + transfer_characteristic = AMF_COLOR_TRANSFER_CHARACTERISTIC_ARIB_STD_B67; + break; + } + return transfer_characteristic; +} + int ff_amf_get_color_profile(AVCodecContext *avctx) { amf_int64 color_profile = AMF_VIDEO_CONVERTER_COLOR_PROFILE_UNKNOWN; diff --git a/libavcodec/amfenc.h b/libavcodec/amfenc.h index 0f2abcbd82..0c0624e786 100644 --- a/libavcodec/amfenc.h +++ b/libavcodec/amfenc.h @@ -174,6 +174,8 @@ int ff_amf_receive_packet(AVCodecContext *avctx, AVPacket *avpkt); */ extern const enum AVPixelFormat ff_amf_pix_fmts[]; +int ff_amf_get_color_primaries(AVCodecContext *avctx); +int ff_amf_get_transfer_characteristic(AVCodecContext *avctx); int ff_amf_get_color_profile(AVCodecContext *avctx); /** diff --git a/libavcodec/amfenc_av1.c b/libavcodec/amfenc_av1.c index b40d54f70c..a947c1d232 100644 --- a/libavcodec/amfenc_av1.c +++ b/libavcodec/amfenc_av1.c @@ -187,6 +187,8 @@ static av_cold int amf_encode_init_av1(AVCodecContext* avctx) AMFRate framerate; AMFSize framesize = AMFConstructSize(avctx->width, avctx->height); amf_int64 color_depth; + amf_int64 color_primaries; + amf_int64 transfer_characteristic; amf_int64 color_profile; enum AVPixelFormat pix_fmt; @@ -239,7 +241,11 @@ FF_ENABLE_DEPRECATION_WARNINGS } /// Color profile + color_primaries = ff_amf_get_color_primaries(avctx); + transfer_characteristic = ff_amf_get_transfer_characteristic(avctx); color_profile = ff_amf_get_color_profile(avctx); + AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PRIMARIES, color_primaries); + AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_TRANSFER_CHARACTERISTIC, transfer_characteristic); AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PROFILE, color_profile); /// Color Depth @@ -251,16 +257,6 @@ FF_ENABLE_DEPRECATION_WARNINGS } AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_COLOR_BIT_DEPTH, color_depth); - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PROFILE, color_profile); - if (color_depth == AMF_COLOR_BIT_DEPTH_8) { - /// Color Transfer Characteristics (AMF matches ISO/IEC) - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_TRANSFER_CHARACTERISTIC, AMF_COLOR_TRANSFER_CHARACTERISTIC_BT709); - /// Color Primaries (AMF matches ISO/IEC) - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PRIMARIES, AMF_COLOR_PRIMARIES_BT709); - } else { - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_TRANSFER_CHARACTERISTIC, AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE2084); - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PRIMARIES, AMF_COLOR_PRIMARIES_BT2020); - } profile_level = avctx->level; if (profile_level == AV_LEVEL_UNKNOWN) { diff --git a/libavcodec/amfenc_h264.c b/libavcodec/amfenc_h264.c index 959be9eab6..2406f7401f 100644 --- a/libavcodec/amfenc_h264.c +++ b/libavcodec/amfenc_h264.c @@ -202,6 +202,8 @@ static av_cold int amf_encode_init_h264(AVCodecContext *avctx) AMFRate framerate; AMFSize framesize = AMFConstructSize(avctx->width, avctx->height); int deblocking_filter = (avctx->flags & AV_CODEC_FLAG_LOOP_FILTER) ? 1 : 0; + amf_int64 color_primaries; + amf_int64 transfer_characteristic; amf_int64 color_profile; enum AVPixelFormat pix_fmt; @@ -274,7 +276,11 @@ FF_ENABLE_DEPRECATION_WARNINGS AMF_ASSIGN_PROPERTY_RATIO(res, ctx->encoder, AMF_VIDEO_ENCODER_ASPECT_RATIO, ratio); } + color_primaries = ff_amf_get_color_primaries(avctx); + transfer_characteristic = ff_amf_get_transfer_characteristic(avctx); color_profile = ff_amf_get_color_profile(avctx); + AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_OUTPUT_COLOR_PRIMARIES, color_primaries); + AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_OUTPUT_TRANSFER_CHARACTERISTIC, transfer_characteristic); AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_OUTPUT_COLOR_PROFILE, color_profile); /// Color Range (Support for older Drivers) @@ -288,10 +294,6 @@ FF_ENABLE_DEPRECATION_WARNINGS AMF_RETURN_IF_FALSE(ctx, pix_fmt != AV_PIX_FMT_P010, AVERROR_INVALIDDATA, "10-bit input video is not supported by AMF H264 encoder\n"); AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_COLOR_BIT_DEPTH, AMF_COLOR_BIT_DEPTH_8); - /// Color Transfer Characteristics (AMF matches ISO/IEC) - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_OUTPUT_TRANSFER_CHARACTERISTIC, (amf_int64)avctx->color_trc); - /// Color Primaries (AMF matches ISO/IEC) - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_OUTPUT_COLOR_PRIMARIES, (amf_int64)avctx->color_primaries); // autodetect rate control method if (ctx->rate_control_mode == AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_UNKNOWN) { diff --git a/libavcodec/amfenc_hevc.c b/libavcodec/amfenc_hevc.c index f9f6f8adb3..84587c9fb6 100644 --- a/libavcodec/amfenc_hevc.c +++ b/libavcodec/amfenc_hevc.c @@ -168,6 +168,8 @@ static av_cold int amf_encode_init_hevc(AVCodecContext *avctx) AMFSize framesize = AMFConstructSize(avctx->width, avctx->height); int deblocking_filter = (avctx->flags & AV_CODEC_FLAG_LOOP_FILTER) ? 1 : 0; amf_int64 color_depth; + amf_int64 color_primaries; + amf_int64 transfer_characteristic; amf_int64 color_profile; enum AVPixelFormat pix_fmt; @@ -242,7 +244,11 @@ FF_ENABLE_DEPRECATION_WARNINGS AMF_ASSIGN_PROPERTY_RATIO(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_ASPECT_RATIO, ratio); } + color_primaries = ff_amf_get_color_primaries(avctx); + transfer_characteristic = ff_amf_get_transfer_characteristic(avctx); color_profile = ff_amf_get_color_profile(avctx); + AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_COLOR_PRIMARIES, color_primaries); + AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_TRANSFER_CHARACTERISTIC, transfer_characteristic); AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_COLOR_PROFILE, color_profile); /// Color Range (Support for older Drivers) AMF_ASSIGN_PROPERTY_BOOL(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_NOMINAL_RANGE, !!(avctx->color_range == AVCOL_RANGE_JPEG)); @@ -254,15 +260,6 @@ FF_ENABLE_DEPRECATION_WARNINGS color_depth = AMF_COLOR_BIT_DEPTH_10; } AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_COLOR_BIT_DEPTH, color_depth); - if (color_depth == AMF_COLOR_BIT_DEPTH_8) { - /// Color Transfer Characteristics (AMF matches ISO/IEC) - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_TRANSFER_CHARACTERISTIC, AMF_COLOR_TRANSFER_CHARACTERISTIC_BT709); - /// Color Primaries (AMF matches ISO/IEC) - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_COLOR_PRIMARIES, AMF_COLOR_PRIMARIES_BT709); - } else { - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_TRANSFER_CHARACTERISTIC, AMF_COLOR_TRANSFER_CHARACTERISTIC_SMPTE2084); - AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_COLOR_PRIMARIES, AMF_COLOR_PRIMARIES_BT2020); - } // Picture control properties AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_NUM_GOPS_PER_IDR, ctx->gops_per_idr);