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

Michael Niedermayer michaelni
Wed Sep 8 15:40:50 CEST 2010


On Mon, Aug 30, 2010 at 03:19:18PM +0200, Tomas H?rdin wrote:
> 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
> 

>  common.h  |   10 ++++++++--
>  md5.h     |    3 ++-
>  pixdesc.h |    3 ++-
>  sha1.h    |    3 ++-
>  4 files changed, 14 insertions(+), 5 deletions(-)
> df35a9b6d2178e33054375e739a970c4b1a0536f  dllimport.patch

this patch should be ok if its shown to actually fix an issue.

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Dictatorship naturally arises out of democracy, and the most aggravated
form of tyranny and slavery out of the most extreme liberty. -- Plato
-------------- 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/20100908/4b1c887e/attachment.pgp>



More information about the ffmpeg-devel mailing list