[FFmpeg-devel] [PATCH] avfilter/vf_scale: Do not set YUV color range for RGB formats

Paul B Mahol onemda at gmail.com
Mon Mar 26 09:34:06 EEST 2018


On 3/26/18, Michael Niedermayer <michael at niedermayer.cc> wrote:
> On Wed, Mar 21, 2018 at 09:18:21AM +0100, Paul B Mahol wrote:
>> 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.
>
> there is no range for rgb formats. The range is specific to YUV based
> formats.
> Thats, if iam guessing correctly what you meant. You did not really say
> which case you meant here. So maybe there is an issue and i misunderstand
> what you refer to

Maybe not for swscale here but does exist otherwise.

>
> [...]
>
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Many things microsoft did are stupid, but not doing something just because
> microsoft did it is even more stupid. If everything ms did were stupid they
> would be bankrupt already.
>


More information about the ffmpeg-devel mailing list