On Mon, Mar 26, 2018 at 08:34:06AM +0200, Paul B Mahol wrote: > On 3/26/18, Michael Niedermayer <mich...@niedermayer.cc> wrote: > > On Wed, Mar 21, 2018 at 09:18:21AM +0100, Paul B Mahol wrote: > >> On 3/20/18, Michael Niedermayer <mich...@niedermayer.cc> wrote: > >> > Signed-off-by: Michael Niedermayer <mich...@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@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.
It has no meaning for RGB. There is no limited range RGB also, the API defines it only for YUV. So if it had meaning for RGB its not defined what meaning that would be. The ranges for luma and chroma differ so its not natural or obvious how to extend it to RGB. Iam also not aware of any specification that defines limited range RGB also please be a little more verbose about what you speak of. That should speed up resolving this /** * MPEG vs JPEG YUV range. */ enum AVColorRange { AVCOL_RANGE_UNSPECIFIED = 0, AVCOL_RANGE_MPEG = 1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges AVCOL_RANGE_JPEG = 2, ///< the normal 2^n-1 "JPEG" YUV ranges AVCOL_RANGE_NB ///< Not part of ABI [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Asymptotically faster algorithms should always be preferred if you have asymptotical amounts of data
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel