[FFmpeg-devel] [PATCH] avfilter/vf_scale: Do not set YUV color range for RGB formats
Paul B Mahol
onemda at gmail.com
Wed Mar 21 10:18:21 EET 2018
On 3/20/18, Michael Niedermayer <michael at niedermayer.cc> wrote:
> 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
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
This is not optimal, as full color_range should remain full when not changed.
More information about the ffmpeg-devel
mailing list