You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
lavc/libopenh264: Support full range videos in transcoding
Support full range videos when transcoding, enabled the YUVJ420P to avoid auto scale from YUVJ420P to YUV420P Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
This commit is contained in:
@@ -311,10 +311,12 @@ static av_cold int svc_encode_init(AVCodecContext *avctx)
|
||||
|
||||
#if OPENH264_VER_AT_LEAST(1, 6)
|
||||
param.sSpatialLayers[0].uiVideoFormat = VF_UNDEF;
|
||||
|
||||
if (avctx->color_range != AVCOL_RANGE_UNSPECIFIED) {
|
||||
param.sSpatialLayers[0].bVideoSignalTypePresent = true;
|
||||
param.sSpatialLayers[0].bFullRange = (avctx->color_range == AVCOL_RANGE_JPEG);
|
||||
}
|
||||
} else if (avctx->pix_fmt == AV_PIX_FMT_YUVJ420P)
|
||||
param.sSpatialLayers[0].bFullRange = 1;
|
||||
|
||||
if (avctx->colorspace != AVCOL_SPC_UNSPECIFIED ||
|
||||
avctx->color_primaries != AVCOL_PRI_UNSPECIFIED ||
|
||||
@@ -443,6 +445,7 @@ const FFCodec ff_libopenh264_encoder = {
|
||||
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP |
|
||||
FF_CODEC_CAP_AUTO_THREADS,
|
||||
.p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P,
|
||||
AV_PIX_FMT_YUVJ420P,
|
||||
AV_PIX_FMT_NONE },
|
||||
.defaults = svc_enc_defaults,
|
||||
.p.priv_class = &class,
|
||||
|
Reference in New Issue
Block a user