[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