[FFmpeg-devel] [PATCH] avfilter/vf_scale: Do not set YUV color range for RGB formats
Michael Niedermayer
michael at niedermayer.cc
Wed Mar 21 00:59:46 EET 2018
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
libavfilter/vf_scale.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
index 9f45032e85..2f6fa4791d 100644
--- a/libavfilter/vf_scale.c
+++ b/libavfilter/vf_scale.c
@@ -407,6 +407,7 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
AVFilterLink *outlink = link->dst->outputs[0];
AVFrame *out;
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(link->format);
+ const AVPixFmtDescriptor *out_desc = av_pix_fmt_desc_get(outlink->format);
char buf[32];
int in_range;
@@ -497,7 +498,11 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
table, out_full,
brightness, contrast, saturation);
- out->color_range = out_full ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG;
+ // color_range describes YUV, it is undefined for RGB
+ if ((out_desc->flags & AV_PIX_FMT_FLAG_RGB) && out_desc->nb_components != 1) {
+ out->color_range = AVCOL_RANGE_UNSPECIFIED;
+ } else
+ out->color_range = out_full ? AVCOL_RANGE_JPEG : AVCOL_RANGE_MPEG;
}
av_reduce(&out->sample_aspect_ratio.num, &out->sample_aspect_ratio.den,
--
2.16.2
More information about the ffmpeg-devel
mailing list