[FFmpeg-devel] [PATCH] lavfi: Port fspp to FFmpeg

arwa arif arwaarif1994 at gmail.com
Tue Dec 16 06:44:58 CET 2014


On Tue, Dec 16, 2014 at 6:06 AM, Michael Niedermayer <michaelni at gmx.at>
wrote:
>
> On Mon, Dec 15, 2014 at 10:55:26PM +0530, arwa arif wrote:
> > This patch seems to be working. Sorry for the previous one.
>
> >  doc/filters.texi                  |   24
> >  libavfilter/Makefile              |    1
> >  libavfilter/allfilters.c          |    1
> >  libavfilter/libmpcodecs/vf_fspp.c |    4
> >  libavfilter/version.h             |    2
> >  libavfilter/vf_fspp.c             |  400 ++++++++++
> >  libavfilter/vf_fspp.h             |  352 +++++++++
> >  libavfilter/x86/Makefile          |    1
> >  libavfilter/x86/vf_fspp.c         | 1391
> ++++++++++++++++++++++++++++++++++++++
> >  9 files changed, 2173 insertions(+), 3 deletions(-)
> > d945d17d2227a2628acbcba387267734c3914841  0001-Port-fspp-to-FFmpeg.patch
> > From 97d90c5a1a8c10a1b19a5250c90d02fb74e79735 Mon Sep 17 00:00:00 2001
> > From: Arwa Arif <arwaarif1994 at gmail.com>
> > Date: Sun, 14 Dec 2014 12:03:31 +0530
> > Subject: [PATCH] Port fspp to FFmpeg
>
> [...]
> > +    if (fspp->log2_count && !ctx->is_disabled) {
> > +        if (!fspp->use_bframe_qp && fspp->non_b_qp_table)
> > +            qp_table = fspp->non_b_qp_table;
> > +
> > +        if (qp_table || fspp->qp) {
> > +
> > +            /* get a new frame if in-place is not possible or if the
> dimensions
> > +             * are not multiple of 8 */
> > +            if (!av_frame_is_writable(in) || (inlink->w & 7) ||
> (inlink->h & 7)) {
> > +                const int aligned_w = FFALIGN(inlink->w, 8);
> > +                const int aligned_h = FFALIGN(inlink->h, 8);
> > +
> > +                out = ff_get_video_buffer(outlink, aligned_w,
> aligned_h);
> > +                if (!out) {
> > +                    av_frame_free(&in);
> > +                    return AVERROR(ENOMEM);
> > +                }
> > +                av_frame_copy_props(out, in);
> > +                out->width  = in->width;
> > +                out->height = in->height;
> > +            }
> > +
>
> > +            filter(fspp , out->data[0] , in->data[0] , out->linesize[0]
> , in->linesize[0] ,
> > +                   inlink->w , inlink->h , qp_table , qp_stride , 1);
>
> > +            filter(fspp , out->data[1] , in->data[1] , out->linesize[1]
> , in->linesize[1] ,
> > +                   inlink->w , inlink->h , qp_table , qp_stride , 0);
> > +            filter(fspp , out->data[2] , in->data[2] , out->linesize[2]
> , in->linesize[2] ,
> > +                   inlink->w , inlink->h , qp_table , qp_stride , 0);
>
> the 2 chroma planes are smaller than luma, thus
> "inlink->w , inlink->h" is wrong for them
>
> you can calculate the sizes of the chroma plane with
> log2_chroma_w and log2_chroma_h from av_pix_fmt_desc_get()
> see similar code in other filters
>
> [...]
>
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> No human being will ever know the Truth, for even if they happen to say it
> by chance, they would not even known they had done so. -- Xenophanes
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Port-fspp-to-FFmpeg.patch
Type: text/x-patch
Size: 90324 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141216/435d2bac/attachment.bin>


More information about the ffmpeg-devel mailing list