On Sat, Nov 22, 2014 at 11:44:29PM +0100, Stefano Sabatini wrote: > TODO: bump minor > --- > Changelog | 1 + > doc/filters.texi | 4 ++ > libavfilter/Makefile | 1 + > libavfilter/allfilters.c | 1 + > libavfilter/vf_tdiff.c | 131 > +++++++++++++++++++++++++++++++++++++++++++++++ > 5 files changed, 138 insertions(+) > create mode 100644 libavfilter/vf_tdiff.c > > diff --git a/Changelog b/Changelog > index 5f38aea..41fdf18 100644 > --- a/Changelog > +++ b/Changelog > @@ -15,6 +15,7 @@ version <next>: > - ffserver supports codec private options > - creating DASH compatible fragmented MP4, MPEG-DASH segmenting muxer > - WebP muxer with animated WebP support > +- tdiff filter > > > version 2.4: > diff --git a/doc/filters.texi b/doc/filters.texi > index 8c16c7a..9882da7 100644 > --- a/doc/filters.texi > +++ b/doc/filters.texi > @@ -8394,6 +8394,10 @@ Useful for enlarging pixel art images without reducing > sharpness. > @section swapuv > Swap U & V plane. > > +@section tdiff > + > +Show difference between consecutive frames. > + > @section telecine > > Apply telecine process to the video. > diff --git a/libavfilter/Makefile b/libavfilter/Makefile > index 2c56e38..3217c99 100644 > --- a/libavfilter/Makefile > +++ b/libavfilter/Makefile > @@ -97,6 +97,7 @@ OBJS-$(CONFIG_BLACKDETECT_FILTER) += > vf_blackdetect.o > OBJS-$(CONFIG_BLACKFRAME_FILTER) += vf_blackframe.o > OBJS-$(CONFIG_BLEND_FILTER) += vf_blend.o dualinput.o > framesync.o > OBJS-$(CONFIG_BOXBLUR_FILTER) += vf_boxblur.o
> +OBJS-$(CONFIG_CDIFF_FILTER) += vf_cdiff.o [...] > --- /dev/null > +++ b/libavfilter/vf_tdiff.c the name doesnt match [...] > + > +static int filter_frame(AVFilterLink *inlink, AVFrame *frame) > +{ > + TDiffContext *tdiff = inlink->dst->priv; > + AVFilterLink *outlink = inlink->dst->outputs[0]; > + > + if (tdiff->prev_frame) { > + int i, j; > + > + AVFrame *diff = ff_get_video_buffer(outlink, outlink->w, outlink->h); > + av_frame_copy_props(frame, diff); > + if (!diff) { > + av_frame_free(&frame); > + return AVERROR(ENOMEM); > + } > + > + /* compute difference with previous frame */ > + for (i = 0; i < frame->height; i++) { > + uint8_t *pdiff = diff ->data[0] + i * diff > ->linesize[0]; > + uint8_t *pprev = tdiff->prev_frame->data[0] + i * > tdiff->prev_frame->linesize[0]; > + uint8_t *pthis = frame ->data[0] + i * frame > ->linesize[0]; > + for (j = 0; j < frame->width; j++) { > + *pdiff++ = abs(*pthis++ - *pprev++); a difference that leaves the sign intact might be interresting too like 128 + *pthis++ - *pprev++ or something like that [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Those who are too smart to engage in politics are punished by being governed by those who are dumber. -- Plato
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel