Mike Melanson
2003-Sep-10 14:16 UTC
[theora-dev] [Ffmpeg-devel] libavcodec/vp3.c compile problem (fwd)
Hi, I don't know how much of the old VP3 codebase is incorporated into Theora. I wrote ffmpeg's VP3 decoder from scratch but eventually ported in the original VP3 IDCT function. A BSD conflict cropped up that I thought I would pass along. -- -Mike Melanson <p>---------- Forwarded message ---------- Date: Wed, 10 Sep 2003 13:06:37 -0700 (PDT) From: Steven M. Schultz <sms@2BSD.COM> Reply-To: ffmpeg-devel@lists.sourceforge.net To: ffmpeg-devel@lists.sourceforge.net Subject: [Ffmpeg-devel] libavcodec/vp3.c compile problem Hi! Since sourceforge finally caught up (it seemed to be running even more behind than usual for a couple days) I was able to try compiling the latest version. Ran into a problem with vp3.c due to a conflict of the variables _A, _B, _C, _D, _G and _H with defines from the system header <ctype.h>: vp3.c: In function `vp3_idct_c': vp3.c:314: syntax error before `0x00000100L' vp3.c:351: invalid lvalue in assignment vp3.c:357: invalid lvalue in assignment vp3.c:363: invalid lvalue in assignment vp3.c:369: invalid lvalue in assignment vp3.c:374: `_Ad' undeclared (first use in this function) vp3.c:374: (Each undeclared identifier is reported only once vp3.c:374: for each function it appears in.) vp3.c:376: warning: integer overflow in expression vp3.c:378: `_Bd' undeclared (first use in this function) vp3.c:381: `_Cd' undeclared (first use in this function) vp3.c:382: `_Dd' undeclared (first use in this function) vp3.c:386: `_E' undeclared (first use in this function) vp3.c:390: `_F' undeclared (first use in this function) vp3.c:396: invalid lvalue in assignment vp3.c:402: `_H' undeclared (first use in this function) Why this BSD variant exposes _A ... _G I have no idea but the work around is either to change the names or to change vp3.c like this: --- libavcodec/vp3.c.dist Wed Sep 10 11:23:12 2003 +++ libavcodec/vp3.c Wed Sep 10 12:55:44 2003 @@ -311,6 +311,25 @@ int32_t *ip = intermediate_data; int16_t *op = output_data; +#ifdef _A +#undef _A +#endif +#ifdef _B +#undef _B +#endif +#ifdef _C +#undef _C +#endif +#ifdef _D +#undef _D +#endif +#ifdef _G +#undef _G +#endif +#ifdef _H +#undef _H +#endif + int32_t _A, _B, _C, _D, _Ad, _Bd, _Cd, _Dd, _E, _F, _G, _H; int32_t _Ed, _Gd, _Add, _Bdd, _Fd, _Hd; int32_t t1, t2; I've run into this only once or twice over the years but I forget now how it was resolved then (I think the variable names were changed). Steven Schultz <p>------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Ffmpeg-devel mailing list Ffmpeg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ffmpeg-devel --- >8 ---- List archives: http://www.xiph.org/archives/ Ogg project homepage: http://www.xiph.org/ogg/ To unsubscribe from this list, send a message to 'theora-dev-request@xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.