Hi, On Mon, Jun 5, 2017 at 4:08 PM, Vittorio Giovara <vittorio.giov...@gmail.com > wrote:
> Signed-off-by: Vittorio Giovara <vittorio.giov...@gmail.com> > --- > libavfilter/vf_colorspace.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/libavfilter/vf_colorspace.c b/libavfilter/vf_colorspace.c > index 0024505a44..0b1bc81f99 100644 > --- a/libavfilter/vf_colorspace.c > +++ b/libavfilter/vf_colorspace.c > @@ -183,6 +183,13 @@ static const double ycgco_matrix[3][3] = > { 0.5, 0, -0.5 }, > }; > > +static const double gbr_matrix[3][3] = > +{ > + { 0, 1, 0 }, > + { 0, -0.5, 0.5 }, > + { 0.5, -0.5, 0 }, > +}; > + > /* > * All constants explained in e.g. https://linuxtv.org/downloads/ > v4l-dvb-apis/ch02s06.html > * The older ones (bt470bg/m) are also explained in their respective ITU > docs > @@ -196,6 +203,7 @@ static const struct LumaCoefficients > luma_coefficients[AVCOL_SPC_NB] = { > [AVCOL_SPC_BT709] = { 0.2126, 0.7152, 0.0722 }, > [AVCOL_SPC_SMPTE240M] = { 0.212, 0.701, 0.087 }, > [AVCOL_SPC_YCOCG] = { 0.25, 0.5, 0.25 }, > + [AVCOL_SPC_RGB] = { 1, 1, 1 }, > [AVCOL_SPC_BT2020_NCL] = { 0.2627, 0.6780, 0.0593 }, > [AVCOL_SPC_BT2020_CL] = { 0.2627, 0.6780, 0.0593 }, > }; > @@ -222,6 +230,9 @@ static void fill_rgb2yuv_table(const struct > LumaCoefficients *coeffs, > if (coeffs->cr == 0.25 && coeffs->cg == 0.5 && coeffs->cb == 0.25) { > memcpy(rgb2yuv, ycgco_matrix, sizeof(double) * 9); > return; > + } else if (coeffs->cr == 1 && coeffs->cg == 1 && coeffs->cb == 1) { > + memcpy(rgb2yuv, gbr_matrix, sizeof(double) * 9); > + return; Not a big fan of these special cases, but I guess it's OK and I don't quite know how to prevent it. So LGTM. Need me to push? Ronald _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel