[FFmpeg-devel] Fwd: [PATCH] lavfi: add xbr filter

arwa arif arwaarif1994 at gmail.com
Sat Nov 8 12:42:13 CET 2014


On Sat, Nov 8, 2014 at 2:56 AM, Michael Niedermayer <michaelni at gmx.at>
wrote:

> On Fri, Nov 07, 2014 at 11:08:54PM +0530, arwa arif wrote:
> > On Fri, Nov 7, 2014 at 10:53 PM, Michael Niedermayer <michaelni at gmx.at>
> > wrote:
> >
> > > On Tue, Nov 04, 2014 at 12:26:27AM +0530, arwa arif wrote:
> > > > Okay. I would try to complete it by tomorrow.
> > >
> > > any news about this ?
> > > i know this isnt trivial to update to the other reference ...
> > >
> > >
> > > >
> > > > On Mon, Nov 3, 2014 at 8:02 PM, Stefano Sabatini <stefasab at gmail.com
> >
> > > wrote:
> > > >
> > > > > On date Monday 2014-11-03 12:09:50 +0530, arwa arif encoded:
> > > [...]
> > > > > So we have:
> > > > > C++, 2xBR v3.3b, LGPL
> > > > >
> > > > >
> > >
> http://sourceforge.net/p/paintown/code/HEAD/tree/trunk/src/util/graphics/sdl/xbr.cpp
> > > > >
> > > > > C++, 2xBR v3.3b, GPL
> > > > >
> > > > >
> > >
> https://github.com/yoyofr/iFBA/blob/master/fba_src/src/intf/video/scalers/xbr.cpp
> > > > >
> > > > > The former is clearly a copy&paste from the latter, so that should
> be
> > > > > used as reference.
> > > > >
> > > > > paintown code was relicensed to GPL with Hyllian's consent, so we
> > > > > should be able to do the same (if licensing is a concerns, which
> > > > > probably isn't for such a fringe filter).
> > > > >
> > > > > Algorithm description can be found here:
> > > > >
> > > > >
> > >
> https://web.archive.org/web/20140904180543/http://board.byuu.org/viewtopic.php?f=10&t=2248
> > > > >
> > > > > (note: it was down the last time I checked).
> > > > >
> > > > > NOTE: since both are games/emulators, I suppose it won't be easy to
> > > > > make them generate a reference output, so we should rely on
> comparing
> > > > > the output generated by the filter with some output found on the
> web.
> > > > >
> > > > > @arwa: are you willing to readapt your xbr filter to make use of
> > > > > Hyllian's code?
> > > > > --
> > > > > FFmpeg = Freak and Frightening Maxi Powered Enhancing Gangster
> > > > > _______________________________________________
> > > > > ffmpeg-devel mailing list
> > > > > ffmpeg-devel at ffmpeg.org
> > > > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > > > >
> > > > _______________________________________________
> > > > ffmpeg-devel mailing list
> > > > ffmpeg-devel at ffmpeg.org
> > > > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > > >
> > >
> > >
> > I tried modifying the code. I have created a patch, but I am confused how
> > to do ALPHA_BLEND part without using float values. Currently I have
> > commented that part in the patch. In the reference code(
> >
> https://github.com/yoyofr/iFBA/blob/master/fba_src/src/intf/video/scalers/xbr.cpp
> ),
> > they are actually doing ALPHA_BLEND with masks for 565 format. But, since
> > FFmpeg has RGB24 format, I am not able to get a way which would do the
> same
> > thing without float.
> >
> >
> > > --
> > > Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> > >
> > > Good people do not need laws to tell them to act responsibly, while bad
> > > people will find a way around the laws. -- Plato
> > >
>
> >  doc/filters.texi         |    5
> >  libavfilter/Makefile     |    1
> >  libavfilter/allfilters.c |    1
> >  libavfilter/vf_xbr.c     |  359
> +++++++++++++++++++++++++++++++++++++++++++++++
> >  4 files changed, 366 insertions(+)
> > dc77f80072970067718918f0414f4bc94746c063
> 0001-i-This-is-a-combination-of-2-commits.patch
> > From 1e838a3045110791cfe1e6bf94a969b59f7160fc Mon Sep 17 00:00:00 2001
> > From: Arwa Arif <arwaarif1994 at gmail.com>
> > Date: Thu, 30 Oct 2014 22:06:20 +0530
> > Subject: [PATCH] i# This is a combination of 2 commits.
> >
> > [PATCH]lavfi: add xbr filter
> >
> > xBR
> > ---
> >  doc/filters.texi         |    5 +
> >  libavfilter/Makefile     |    1 +
> >  libavfilter/allfilters.c |    1 +
> >  libavfilter/vf_xbr.c     |  359
> ++++++++++++++++++++++++++++++++++++++++++++++
> >  4 files changed, 366 insertions(+)
> >  create mode 100644 libavfilter/vf_xbr.c
> >
> > diff --git a/doc/filters.texi b/doc/filters.texi
> > index 7be29de..2905e5d 100644
> > --- a/doc/filters.texi
> > +++ b/doc/filters.texi
> > @@ -9163,6 +9163,11 @@ Only deinterlace frames marked as interlaced.
> >  Default value is @samp{all}.
> >  @end table
> >
> > + at section xbr
> > +Apply high-quality magnification filter which is designed for pixel
> art. It follows a set
> > +of edge-detection rules @url{
> http://www.libretro.com/forums/viewtopic.php?f=6&t=134}.
> > +This filter was originally created by Hyllian.
> > +
> >  @anchor{yadif}
> >  @section yadif
> >
> > diff --git a/libavfilter/Makefile b/libavfilter/Makefile
> > index 6d868e7..2c56e38 100644
> > --- a/libavfilter/Makefile
> > +++ b/libavfilter/Makefile
> > @@ -198,6 +198,7 @@ OBJS-$(CONFIG_VIDSTABDETECT_FILTER)          +=
> vidstabutils.o vf_vidstabdetect.
> >  OBJS-$(CONFIG_VIDSTABTRANSFORM_FILTER)       += vidstabutils.o
> vf_vidstabtransform.o
> >  OBJS-$(CONFIG_VIGNETTE_FILTER)               += vf_vignette.o
> >  OBJS-$(CONFIG_W3FDIF_FILTER)                 += vf_w3fdif.o
> > +OBJS-$(CONFIG_XBR_FILTER)                    += vf_xbr.o
> >  OBJS-$(CONFIG_YADIF_FILTER)                  += vf_yadif.o
> >  OBJS-$(CONFIG_ZMQ_FILTER)                    += f_zmq.o
> >  OBJS-$(CONFIG_ZOOMPAN_FILTER)                += vf_zoompan.o
> > diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c
> > index d88a9ad..2352d44 100644
> > --- a/libavfilter/allfilters.c
> > +++ b/libavfilter/allfilters.c
> > @@ -213,6 +213,7 @@ void avfilter_register_all(void)
> >      REGISTER_FILTER(VIDSTABTRANSFORM, vidstabtransform, vf);
> >      REGISTER_FILTER(VIGNETTE,       vignette,       vf);
> >      REGISTER_FILTER(W3FDIF,         w3fdif,         vf);
> > +    REGISTER_FILTER(XBR,            xbr,            vf);
> >      REGISTER_FILTER(YADIF,          yadif,          vf);
> >      REGISTER_FILTER(ZMQ,            zmq,            vf);
> >      REGISTER_FILTER(ZOOMPAN,        zoompan,        vf);
> > diff --git a/libavfilter/vf_xbr.c b/libavfilter/vf_xbr.c
> > new file mode 100644
> > index 0000000..416c7ce
> > --- /dev/null
> > +++ b/libavfilter/vf_xbr.c
> > @@ -0,0 +1,359 @@
> > +/*
> > + * This file is part of FFmpeg.
> > + *
> > + * Copyright (c) 2014 Arwa Arif <arwaarif1994 at gmail.com>
>
> This should also have a copyright line for Hyllian/Jararaca
> as some/most of the code is takenfrom /based on his implementation
>
> [...]
>
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> No great genius has ever existed without some touch of madness. --
> Aristotle
>
>
How is RGB32 stored? Is it big endian or small endian? I assumed it to be
RRGGBBAA. I tried with AARRGGBB also. Neither of the two are giving the
desired results.


> _______________________________________________
> 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-PATCH-lavfi-add-xbr-filter.patch
Type: text/x-patch
Size: 14556 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141108/ca97d023/attachment.bin>


More information about the ffmpeg-devel mailing list