On Fri, Nov 01, 2019 at 09:38:39PM +0100, Paul B Mahol wrote: > On 11/1/19, Michael Niedermayer <[email protected]> wrote: > > On Fri, Nov 01, 2019 at 04:50:38PM +0100, Paul B Mahol wrote: > >> On 11/1/19, Michael Niedermayer <[email protected]> wrote: > >> > On Fri, Nov 01, 2019 at 01:09:24PM +0100, Paul B Mahol wrote: > >> >> Signed-off-by: Paul B Mahol <[email protected]> > >> >> --- > >> >> doc/filters.texi | 78 +++++ > >> >> libavfilter/Makefile | 1 + > >> >> libavfilter/allfilters.c | 1 + > >> >> libavfilter/vf_eval.c | 687 > >> >> +++++++++++++++++++++++++++++++++++++++ > >> >> 4 files changed, 767 insertions(+) > >> >> create mode 100644 libavfilter/vf_eval.c > >> > > >> > This looks like it duplicates code from vf_geq.c > >> > also this should be integrated with or in vf_geq.c > >> > > >> > IIUC this was written because geq is GPL, but i had already agreed to > >> > relicense the code in it i wrote to LGPL, so iam not sure why you wrote > >> > this. > >> > > >> > Who disagreed to relicnce their contribution to geq to avoid this extra > >> > work you did ? > >> > Or did noone disagree ? then i do not understand why you wrote a > >> > seperate > >> > filter > >> > >> Do I need to contact all on blame list of vf_geq? or also mplayer devs > >> that touched geq in mplayer? > > > > all who touched it MINUS anyone who made a change that is totally not > > in the current version (there are several developers in mplayer who > > made auch changes) > > also in case of mplayer you may need to look at the commit messages > > some developers did apply patches from others. > > > > I took a quick look and these are the people i saw > > carl, ubitux, ivan, ods15, Alexis Ballier, derek, Marc-Antoine Arnaud, > > Nicolas George, Stefano and Paul > > reimar, zuxy and diego > > I do not think I can contact ods15.
His change was this below (the others seems obviously not in the ffmpeg geq
code)
i didnt check the one below before because its big.
But if we cannot contact him, then this should be checked
Does any of this prevail in the ffmpeg geq code ?
(if so tell me what and ill rewrite that)
Thanks
commit dd09bf52982fef6b29acfbcd5fa5c7cb46994c3b
Author: ods15 <ods15@b3059339-0415-0410-9bf9-f77b7e298cf2>
Date: Fri Oct 27 19:40:48 2006 +0000
update vf_geq to new ff_eval API
git-svn-id: svn://git.mplayerhq.hu/mplayer/trunk@20471
b3059339-0415-0410-9bf9-f77b7e298cf2
diff --git a/libmpcodecs/vf_geq.c b/libmpcodecs/vf_geq.c
index da33eac71..e8b8c0918 100644
--- a/libmpcodecs/vf_geq.c
+++ b/libmpcodecs/vf_geq.c
@@ -27,18 +27,12 @@
#include "mp_msg.h"
#include "cpudetect.h"
-#if 1
-double ff_eval(char *s, double *const_value, const char **const_name,
- double (**func1)(void *, double), const char **func1_name,
- double (**func2)(void *, double, double), char **func2_name,
- void *opaque);
-#endif
-
// Needed to bring in lrintf.
#define HAVE_AV_CONFIG_H
#include "libavcodec/avcodec.h"
#include "libavcodec/dsputil.h"
+#include "libavcodec/eval.h"
#include "libavutil/common.h"
/* FIXME: common.h defines printf away when HAVE_AV_CONFIG
@@ -57,7 +51,7 @@ double ff_eval(char *s, double *const_value, const char
**const_name,
struct vf_priv_s {
- char eq[3][2000];
+ AVEvalExpr * e[3];
int framenum;
mp_image_t *mpi;
};
@@ -120,25 +114,6 @@ static double cr(struct vf_instance_s* vf, double x,
double y){
static int put_image(struct vf_instance_s* vf, mp_image_t *mpi, double pts){
mp_image_t *dmpi;
int x,y, plane;
- static const char *const_names[]={
- "PI",
- "E",
- "X",
- "Y",
- "W",
- "H",
- "N",
- "SW",
- "SH",
- NULL
- };
- static const char *func2_names[]={
- "lum",
- "cb",
- "cr",
- "p",
- NULL
- };
if(!(mpi->flags&MP_IMGFLAG_DIRECT)){
// no DR, so get a new image! hope we'll get DR buffer:
@@ -157,13 +132,6 @@ static int put_image(struct vf_instance_s* vf, mp_image_t
*mpi, double pts){
int h= mpi->h >> (plane ? mpi->chroma_y_shift : 0);
uint8_t *dst = dmpi->planes[plane];
int dst_stride= dmpi->stride[plane];
- double (*func2[])(void *, double, double)={
- lum,
- cb,
- cr,
- plane==0 ? lum : (plane==1 ? cb : cr),
- NULL
- };
double const_values[]={
M_PI,
M_E,
@@ -176,11 +144,12 @@ static int put_image(struct vf_instance_s* vf, mp_image_t
*mpi, double pts){
h/(double)mpi->h,
0
};
+ if (!vf->priv->e[plane]) continue;
for(y=0; y<h; y++){
const_values[3]=y;
for(x=0; x<w; x++){
const_values[2]=x;
- dst[x+y* dst_stride]= ff_eval(vf->priv->eq[plane],
const_values, const_names, NULL, NULL, func2, func2_names, vf);
+ dst[x+y* dst_stride]= ff_parse_eval(vf->priv->e[plane],
const_values, vf);
}
}
}
@@ -199,6 +168,9 @@ static void uninit(struct vf_instance_s* vf){
//===========================================================================//
static int open(vf_instance_t *vf, char* args){
+ char eq[3][2000] = { { 0 }, { 0 }, { 0 } };
+ int plane;
+
vf->config=config;
vf->put_image=put_image;
// vf->get_image=get_image;
@@ -206,10 +178,45 @@ static int open(vf_instance_t *vf, char* args){
vf->priv=av_malloc(sizeof(struct vf_priv_s));
memset(vf->priv, 0, sizeof(struct vf_priv_s));
- if (args) sscanf(args, "%1999s:%1999s:%1999s", vf->priv->eq[0],
vf->priv->eq[1], vf->priv->eq[2]);
+ if (args) sscanf(args, "%1999s:%1999s:%1999s", eq[0], eq[1], eq[2]);
+
+ if (!eq[1][0]) strncpy(eq[1], eq[0], sizeof(eq[0])-1);
+ if (!eq[2][0]) strncpy(eq[2], eq[1], sizeof(eq[0])-1);
- if(!vf->priv->eq[1][0]) strncpy(vf->priv->eq[1], vf->priv->eq[0],
sizeof(vf->priv->eq[0])-1);
- if(!vf->priv->eq[2][0]) strncpy(vf->priv->eq[2], vf->priv->eq[1],
sizeof(vf->priv->eq[0])-1);
+ for(plane=0; plane<3; plane++){
+ static const char *const_names[]={
+ "PI",
+ "E",
+ "X",
+ "Y",
+ "W",
+ "H",
+ "N",
+ "SW",
+ "SH",
+ NULL
+ };
+ static const char *func2_names[]={
+ "lum",
+ "cb",
+ "cr",
+ "p",
+ NULL
+ };
+ double (*func2[])(void *, double, double)={
+ lum,
+ cb,
+ cr,
+ plane==0 ? lum : (plane==1 ? cb : cr),
+ NULL
+ };
+ char * a;
+ vf->priv->e[plane] = ff_parse(eq[plane], const_names, NULL, NULL,
func2, func2_names, &a);
+
+ if (!vf->priv->e[plane]) {
+ mp_msg(MSGT_VFILTER, MSGL_ERR, "geq: error loading equation `%s':
%s\n", eq[plane], a);
+ }
+ }
return 1;
}
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
In fact, the RIAA has been known to suggest that students drop out
of college or go to community college in order to be able to afford
settlements. -- The RIAA
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
