[FFmpeg-devel] [PATCH] pixdesc: Add av_get_pix_fmt_descriptor()

Tomas Härdin tomas.hardin
Mon Aug 30 15:19:18 CEST 2010


On Fri, 2010-07-09 at 16:45 +0200, Michael Niedermayer wrote:
> On Thu, Jul 08, 2010 at 02:48:29PM +0200, Tomas H?rdin wrote:
> > Hi
> > 
> > While poking around with MinGW compiled lav* DLLs in MSVC I noticed
> > link.exe can't resolve references to av_pix_fmt_descriptors. This is due
> > to how import libraries work, but I'm not an expert. The important thing
> > is that only functions get exported properly - globals don't.
> 
> see:
> __declspec(dllexport)
> __attribute__ ((dllexport))
> --export-all
> msdn
> gcc docs

I finally got around to poking at this again. Adding
__declspec(dllimport) is enough for the variable to be imported
properly. It's already exported. The attached patch defines a macro
called AV_DLLIMPORT, listed below:

#ifdef WIN32
#define AV_DLLIMPORT __declspec(dllimport)
#else
#define AV_DLLIMPORT
#endif

I'm not sure this is the prettiest solution, but it works well enough on
my Ubuntu machine, in MSYS and in MSVC.

I also realized that there are more variables that won't be imported
properly in MSVC without such a macro. A quick search among the
installed headers indicate that at least the following variables are
part of the public API:

ff_log2_tab
av_reverse
av_pix_fmt_descriptors
av_md5_size
av_sha1_size

The attached patch adds AV_DLLIMPORT to those variables, and passes
regtests.

/Tomas

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dllimport.patch
Type: text/x-patch
Size: 1981 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100830/c6e009d2/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100830/c6e009d2/attachment.pgp>



More information about the ffmpeg-devel mailing list