[FFmpeg-devel] [PATCH] libavcodec/libx264.c: Fix chromaoffset of libx264 doesn't work
Takio Yamaoka
y.takio at gmail.com
Sun Jul 26 15:48:04 EEST 2020
An initial value of `AVCodecContext::chromaoffset` is zero,
then it causes to block `-chromaoffset` setting as result.
In addition, even though a negative number of `chromaoffset`
is meaningful, `X264Context::chroma_offset` is initialized
with `-1` as no setting and ignored if it is negative number.
To fix above, it changes ...
- a value of `X264Context::chroma_offset` to 0 as no setting
- due to x264's default value
- conditional statement to import `-chromaoffset`
---
libavcodec/libx264.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 7bbeab7d4c..347d29df27 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -681,11 +681,11 @@ static av_cold int X264_init(AVCodecContext *avctx)
#if FF_API_PRIVATE_OPT
FF_DISABLE_DEPRECATION_WARNINGS
- if (avctx->chromaoffset >= 0)
+ if (avctx->chromaoffset)
x4->chroma_offset = avctx->chromaoffset;
FF_ENABLE_DEPRECATION_WARNINGS
#endif
- if (x4->chroma_offset >= 0)
+ if (x4->chroma_offset)
x4->params.analyse.i_chroma_qp_offset = x4->chroma_offset;
if (avctx->gop_size >= 0)
@@ -1140,7 +1140,7 @@ static const AVOption options[] = {
{ "vlc", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, VE, "coder" },
{ "ac", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, VE, "coder" },
{ "b_strategy", "Strategy to choose between I/P/B-frames", OFFSET(b_frame_strategy), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 2, VE },
- { "chromaoffset", "QP difference between chroma and luma", OFFSET(chroma_offset), AV_OPT_TYPE_INT, { .i64 = -1 }, INT_MIN, INT_MAX, VE },
+ { "chromaoffset", "QP difference between chroma and luma", OFFSET(chroma_offset), AV_OPT_TYPE_INT, { .i64 = 0 }, INT_MIN, INT_MAX, VE },
{ "sc_threshold", "Scene change threshold", OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, { .i64 = -1 }, INT_MIN, INT_MAX, VE },
{ "noise_reduction", "Noise reduction", OFFSET(noise_reduction), AV_OPT_TYPE_INT, { .i64 = -1 }, INT_MIN, INT_MAX, VE },
--
2.17.1
More information about the ffmpeg-devel
mailing list