[FFmpeg-devel] [PATCH] lavfi: Port fspp to FFmpeg
Stefano Sabatini
stefasab at gmail.com
Mon Dec 22 17:23:44 CET 2014
On date Monday 2014-12-22 13:07:03 +0100, Stefano Sabatini encoded:
> On date Friday 2014-12-19 16:46:40 +0530, arwa arif encoded:
> [...]
> > From c1c3255203226663fc382a0994182df3d558afe6 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] lavfi: port mp=fspp to a native libavfilter filter
[...]
> > + 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) {
> > + const int cw = FF_CEIL_RSHIFT(inlink->w, fspp->hsub);
> > + const int ch = FF_CEIL_RSHIFT(inlink->h, fspp->vsub);
> > +
> > + /* 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;
>
> is this required?
>
> [...]
>
> LGTM otherwise. I'm going to test and see if it works on this machine.
>
> What about adding a FATE test?
Note: I had to rebase the patch because of a conflict in version.h,
please always rebase against latest master.
@all
I'm testing with:
ffmpeg -i matrixbench_mpeg2.mpg -b:v 200k matrixbench_mpeg2-lq.mpg
ffplay -f lavfi -i "nullsrc=s=720x576 [bg]; movie=matrixbench_mpeg2-lq.mpg:s=dv+da [v][out1]; [v]split[v1][v2]; [v1]crop=in_w/2:in_h:0:0 [v1pp]; [v2]crop=in_w/2:in_h:in_w/2:0,fspp [v2pp]; [bg][v1pp] overlay[bg+v1pp]; [bg+v1pp][v2pp] overlay=W/2 [out0]"
I'm unable to see significant differences in terms of quality between
left and right part of the output (same with mp=fspp, so it doesn't
depend on the port).
Is this expected?
What's the use case of fspp?
--
FFmpeg = Fanciful & Fast Martial Puristic Elaborated Game
More information about the ffmpeg-devel
mailing list