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

Michael Niedermayer michael at niedermayer.cc
Mon Mar 26 03:00:34 EEST 2018


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

[...]

-- 
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180326/750fc78b/attachment.sig>


More information about the ffmpeg-devel mailing list