Hi, On Fri, May 6, 2016 at 3:23 PM, Michael Niedermayer <mich...@niedermayer.cc> wrote:
> On Fri, May 06, 2016 at 12:27:02PM -0400, Ronald S. Bultje wrote: > > --- > > libavfilter/vf_colorspace.c | 7 +++++-- > > 1 file changed, 5 insertions(+), 2 deletions(-) > > > > diff --git a/libavfilter/vf_colorspace.c b/libavfilter/vf_colorspace.c > > index 7776a61..f932ce9 100644 > > --- a/libavfilter/vf_colorspace.c > > +++ b/libavfilter/vf_colorspace.c > > @@ -754,7 +754,8 @@ static int create_filtergraph(AVFilterContext *ctx, > > s->yuv2yuv_fastmode = s->rgb2rgb_passthrough && fmt_identical; > > s->yuv2yuv_passthrough = s->yuv2yuv_fastmode && s->in_rng == > s->out_rng && > > !memcmp(s->in_lumacoef, s->out_lumacoef, > > - sizeof(*s->in_lumacoef)); > > + sizeof(*s->in_lumacoef)) && > > + in_desc->comp[0].depth == > out_desc->comp[0].depth; > > if (!s->yuv2yuv_passthrough) { > > if (redo_yuv2rgb) { > > double rgb2yuv[3][3], (*yuv2rgb)[3] = s->yuv2rgb_dbl_coeffs; > > LGTM > > > > @@ -986,7 +987,9 @@ static int filter_frame(AVFilterLink *link, AVFrame > *in) > > td.in_ss_h = av_pix_fmt_desc_get(in->format)->log2_chroma_h; > > td.out_ss_h = av_pix_fmt_desc_get(out->format)->log2_chroma_h; > > if (s->yuv2yuv_passthrough) { > > - av_frame_copy(out, in); > > + res = av_frame_copy(out, in); > > + if (res < 0) > > + return res; > > } else { > > unrelated ? > but LGTM Hm, it's sort of related to the same bug. What happened is that when converting from yuv444p to yuv444p10, it would set passthrough=1 (because of the bug in hunk 1), and then the lack of the check in hunk 2 would cause the dest buffer to be uninitialized but the function would return as if it converted succesfully. So hunk 2 makes it fail correctly, and hunk 1 makes it then not use passthrough for that conversion so it actually succeeds. I'll adjust the log message to make that clearer. Ronald _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel