On Thu, Oct 16, 2014 at 03:06:48PM +0200, Robert Krüger wrote: > On Thu, Oct 16, 2014 at 2:40 PM, Michael Niedermayer <g...@videolan.org> > wrote: > > ffmpeg | branch: master | Michael Niedermayer <michae...@gmx.at> | Thu Oct > > 16 13:23:39 2014 +0200| [411be72dcbc99b339a7b3fbd1011b54a9185add3] | > > committer: Michael Niedermayer > > > > avfilter/vf_noise: fix high resolution support > > > > Fixes Ticket4017 > > Signed-off-by: Michael Niedermayer <michae...@gmx.at> > > > >> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=411be72dcbc99b339a7b3fbd1011b54a9185add3 > > --- > > > > libavfilter/vf_noise.c | 22 +++++++++++++--------- > > 1 file changed, 13 insertions(+), 9 deletions(-) > > > > diff --git a/libavfilter/vf_noise.c b/libavfilter/vf_noise.c > > index 1028a3c..051ccc2 100644 > > --- a/libavfilter/vf_noise.c > > +++ b/libavfilter/vf_noise.c > > @@ -348,16 +348,20 @@ static void noise(uint8_t *dst, const uint8_t *src, > > > > for (y = start; y < end; y++) { > > const int ix = y & (MAX_RES - 1); > > - if (flags & NOISE_TEMPORAL) > > - shift = av_lfg_get(lfg) & (MAX_SHIFT - 1); > > - else > > - shift = n->rand_shift[ix]; > > + int x; > > + for (x=0; x < width; x+= MAX_RES) { > > + int w = FFMIN(width - x, MAX_RES); > > + if (flags & NOISE_TEMPORAL) > > + shift = av_lfg_get(lfg) & (MAX_SHIFT - 1); > > + else > > + shift = n->rand_shift[ix]; > > > > - if (flags & NOISE_AVERAGED) { > > - n->line_noise_avg(dst, src, width, (const > > int8_t**)p->prev_shift[ix]); > > - p->prev_shift[ix][shift & 3] = noise + shift; > > - } else { > > - n->line_noise(dst, src, noise, width, shift); > > + if (flags & NOISE_AVERAGED) { > > + n->line_noise_avg(dst + x, src + x, w, (const > > int8_t**)p->prev_shift[ix]); > > + p->prev_shift[ix][shift & 3] = noise + shift; > > + } else { > > + n->line_noise(dst + x, src + x, noise, w, shift); > > + } > > } > > dst += dst_linesize; > > src += src_linesize; > > > > I can confirm the fix solves the issue for me. Since I am not fluent > enough in this part of the API, I am not able to understand which > pixel formats are supported by vf_noise by just looking at the > query_formats function. Could someone shed some light on this?
the filter supports 8bit based formats, it supports 16bit formats by treating them like 8bit, which works out more or less. [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Why not whip the teacher when the pupil misbehaves? -- Diogenes of Sinope
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog