On Fri, 24 Jul 2015 20:50:56 +0200 Michael Niedermayer <michae...@gmx.at> wrote:
> Works well with some scenes, works really not well with others > More work needed > if you can improve it, i would not be unhappy > > this should not be optimized yet except trivial things, first the code > should work well then it should be made to work fast > > Signed-off-by: Michael Niedermayer <michae...@gmx.at> > --- > libavcodec/internal.h | 3 + > libavcodec/snow.c | 30 ++ > libavcodec/utils.c | 10 + > libavfilter/Makefile | 1 + > libavfilter/allfilters.c | 1 + > libavfilter/vf_mcfps.c | 853 > ++++++++++++++++++++++++++++++++++++++++++++++ > 6 files changed, 898 insertions(+) > create mode 100644 libavfilter/vf_mcfps.c > > diff --git a/libavcodec/utils.c b/libavcodec/utils.c > index d926a26..8bc7b65 100644 > --- a/libavcodec/utils.c > +++ b/libavcodec/utils.c > @@ -3906,3 +3906,13 @@ const uint8_t *avpriv_find_start_code(const uint8_t > *av_restrict p, > > return p + 4; > } > + > +int avpriv_get_mvs(AVCodecContext *avctx, int16_t (*mvs)[2], int8_t *refs, > int width, int height) > +{ > + switch (avctx->codec_id) { > + case AV_CODEC_ID_SNOW: > + return ff_get_mvs_snow(avctx, mvs, refs, width, height); > + default: > + return AVERROR(EINVAL); > + } > +} > diff --git a/libavfilter/vf_mcfps.c b/libavfilter/vf_mcfps.c > new file mode 100644 > index 0000000..784275d > --- /dev/null > +++ b/libavfilter/vf_mcfps.c > +static int extract_mvs(MCFPSContext *mcfps, InputFrame *f, int dir) > +{ > + if (!f->mv[dir]) > + f->mv[dir] = av_malloc(mcfps->b_width * mcfps->b_height * > sizeof(*f->mv[0])); > + if (!f->ref[dir]) > + f->ref[dir] = av_malloc(mcfps->b_width * mcfps->b_height * > sizeof(*f->ref[0])); > + if (!f->mv[dir] || !f->ref[0]) > + return AVERROR(ENOMEM); > + > + return avpriv_get_mvs(mcfps->avctx_enc[dir], > + f->mv[dir], > + f->ref[dir], > + mcfps->b_width, > + mcfps->b_height); > +} That reminds me of MPlayer's filter using libavcodec internals. I'm very against this. It's a very awful form of code reuse. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel