mirror of https://git.ffmpeg.org/ffmpeg.git
lavc/videotoolboxenc: add hdr10, linear, hlg color transfer function for videotoolboxenc
Below is the testing ffmpeg command for the setting: ./ffmpeg -i input.ts -c:v hevc_videotoolbox -color_primaries bt2020 -colorspace bt2020_ncl -color_trc smpte2084 smpte2048.ts ./ffmpeg -i input.ts -c:v hevc_videotoolbox -color_primaries bt2020 -colorspace bt2020_ncl -color_trc linear linear.ts ./ffmpeg -i input.ts -c:v hevc_videotoolbox -color_primaries bt2020 -colorspace bt2020_ncl -color_trc arib-std-b67 hlg.ts Signed-off-by: Limin Wang <lance.lmwang@gmail.com> Signed-off-by: Rick Kern <kernrj@gmail.com>
This commit is contained in:
parent
33186028fc
commit
391b67fcb5
|
@ -2268,6 +2268,9 @@ TOOLCHAIN_FEATURES="
|
||||||
TYPES_LIST="
|
TYPES_LIST="
|
||||||
kCMVideoCodecType_HEVC
|
kCMVideoCodecType_HEVC
|
||||||
kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange
|
kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange
|
||||||
|
kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ
|
||||||
|
kCVImageBufferTransferFunction_ITU_R_2100_HLG
|
||||||
|
kCVImageBufferTransferFunction_Linear
|
||||||
socklen_t
|
socklen_t
|
||||||
struct_addrinfo
|
struct_addrinfo
|
||||||
struct_group_source_req
|
struct_group_source_req
|
||||||
|
@ -6069,6 +6072,9 @@ enabled videotoolbox && {
|
||||||
check_lib coreservices CoreServices/CoreServices.h UTGetOSTypeFromString "-framework CoreServices"
|
check_lib coreservices CoreServices/CoreServices.h UTGetOSTypeFromString "-framework CoreServices"
|
||||||
check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVC "-framework CoreMedia"
|
check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVC "-framework CoreMedia"
|
||||||
check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange "-framework CoreVideo"
|
check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange "-framework CoreVideo"
|
||||||
|
check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ "-framework CoreVideo"
|
||||||
|
check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_ITU_R_2100_HLG "-framework CoreVideo"
|
||||||
|
check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_Linear "-framework CoreVideo"
|
||||||
}
|
}
|
||||||
|
|
||||||
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
|
check_struct "sys/time.h sys/resource.h" "struct rusage" ru_maxrss
|
||||||
|
|
|
@ -915,6 +915,22 @@ static int get_cv_transfer_function(AVCodecContext *avctx,
|
||||||
*transfer_fnc = kCVImageBufferTransferFunction_SMPTE_240M_1995;
|
*transfer_fnc = kCVImageBufferTransferFunction_SMPTE_240M_1995;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_SMPTE_ST_2084_PQ
|
||||||
|
case AVCOL_TRC_SMPTE2084:
|
||||||
|
*transfer_fnc = kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#if HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_LINEAR
|
||||||
|
case AVCOL_TRC_LINEAR:
|
||||||
|
*transfer_fnc = kCVImageBufferTransferFunction_Linear;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#if HAVE_KCVIMAGEBUFFERTRANSFERFUNCTION_ITU_R_2100_HLG
|
||||||
|
case AVCOL_TRC_ARIB_STD_B67:
|
||||||
|
*transfer_fnc = kCVImageBufferTransferFunction_ITU_R_2100_HLG;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case AVCOL_TRC_GAMMA22:
|
case AVCOL_TRC_GAMMA22:
|
||||||
gamma = 2.2;
|
gamma = 2.2;
|
||||||
*transfer_fnc = kCVImageBufferTransferFunction_UseGamma;
|
*transfer_fnc = kCVImageBufferTransferFunction_UseGamma;
|
||||||
|
|
Loading…
Reference in New Issue