[FFmpeg-devel] [PATCH] Symbian OS won't load binaries which have a function pointer assigned directly using a library routine
Michael Niedermayer
michaelni
Mon Jan 24 16:18:51 CET 2011
On Mon, Jan 24, 2011 at 01:16:04PM +0000, M?ns Rullg?rd wrote:
> Pankaj yadav <pankajdnapster at gmail.com> writes:
>
> > Hi,
> >
> > We are porting VLC and dependency libraries to Symbian OS and this is a
> > small patch which is a workaround to a Symbian OS limitation.
> >
> > --
> > Pankaj Yadav
> > http://people.videolan.org/~pk <http://people.videolan.org/%7Epk>
> > Open Source Enthusiast
> >
> > From c09de83ea0a4ed13653e26296d5bd5b20db93e31 Mon Sep 17 00:00:00 2001
> > From: Pankaj Yadav <pk at videolan.org>
> > Date: Mon, 24 Jan 2011 18:01:03 +0530
> > Subject: [PATCH] Symbian OS won't load binaries which have a function pointer assigned directly using a library routine
> >
> > ---
> > libavutil/eval.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++--------
> > 1 files changed, 72 insertions(+), 12 deletions(-)
> >
> > diff --git a/libavutil/eval.c b/libavutil/eval.c
> > index 0fef97b..a5b7dc7 100644
> > --- a/libavutil/eval.c
> > +++ b/libavutil/eval.c
> > @@ -71,6 +71,66 @@ static const int8_t si_prefixes['z' - 'E' + 1] = {
> > ['Y'-'E']= 24,
> > };
> >
> > +static double staticsin(double a)
> > +{
> > + return sin(a);
> > +}
> > +
>
> [...]
>
> > double av_strtod(const char *numstr, char **tail)
> > {
> > double d;
> > @@ -250,18 +310,18 @@ static int parse_primary(AVExpr **e, Parser *p)
> > p->s++; // ")"
> >
> > d->type = e_func0;
> > - if (strmatch(next, "sinh" )) d->a.func0 = sinh;
> > - else if (strmatch(next, "cosh" )) d->a.func0 = cosh;
> > - else if (strmatch(next, "tanh" )) d->a.func0 = tanh;
> > - else if (strmatch(next, "sin" )) d->a.func0 = sin;
> > - else if (strmatch(next, "cos" )) d->a.func0 = cos;
> > - else if (strmatch(next, "tan" )) d->a.func0 = tan;
> > - else if (strmatch(next, "atan" )) d->a.func0 = atan;
> > - else if (strmatch(next, "asin" )) d->a.func0 = asin;
> > - else if (strmatch(next, "acos" )) d->a.func0 = acos;
> > - else if (strmatch(next, "exp" )) d->a.func0 = exp;
> > - else if (strmatch(next, "log" )) d->a.func0 = log;
> > - else if (strmatch(next, "abs" )) d->a.func0 = fabs;
> > + if (strmatch(next, "sinh" )) d->a.func0 = staticsinh;
> > + else if (strmatch(next, "cosh" )) d->a.func0 = staticcosh;
> > + else if (strmatch(next, "tanh" )) d->a.func0 = statictanh;
> > + else if (strmatch(next, "sin" )) d->a.func0 = staticsin;
> > + else if (strmatch(next, "cos" )) d->a.func0 = staticcos;
> > + else if (strmatch(next, "tan" )) d->a.func0 = statictan;
> > + else if (strmatch(next, "atan" )) d->a.func0 = staticatan;
> > + else if (strmatch(next, "asin" )) d->a.func0 = staticasin;
> > + else if (strmatch(next, "acos" )) d->a.func0 = staticacos;
> > + else if (strmatch(next, "exp" )) d->a.func0 = staticexp;
> > + else if (strmatch(next, "log" )) d->a.func0 = staticlog;
> > + else if (strmatch(next, "abs" )) d->a.func0 = staticfabs;
> > else if (strmatch(next, "squish")) d->type = e_squish;
> > else if (strmatch(next, "gauss" )) d->type = e_gauss;
> > else if (strmatch(next, "mod" )) d->type = e_mod;
>
> This is ridiculous. What is the reason for this crazy limitation?
i dont like you mans but i agree this is crazy
maybe its something with a missing linked in lib? and this works
because macros get used or something in that direction i dont know exactly
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
The educated differ from the uneducated as much as the living from the
dead. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20110124/3b1d83c1/attachment.pgp>
More information about the ffmpeg-devel
mailing list