Hi Garrett,

 

A bit OT, but which part of the C standard says that all uninitialized
variables shall default to 0? The only zero initialization guarantee of
the C standard I know of is related to static variables (which MSVC
supports).

 

If what you say about FFmpeg expected C behaviour is true, it sounds to
me that FFmpeg is relying on a non-standard extensions of GCC.

 

 

If you don't mind, I'll take your email as an opportunity to express my
biggest complain about the FFmpeg project: its portability.

 

On the current situation of FFmpeg on Windows, IMHO the FFmpeg dev team
has abslolutely no valid reasons for not making FFmpeg portable. In
fact, it looks like they took several decisions with the sole purpose of
making FFmpeg a GCC-only / MSVC-incompatible product. Reading their rant
about MSVC on the official website tends to confirm that some of their
choices are mainly motivated by anti-microsoft political reasons rather
than technical.

 

- They've chosen to rely on the C99 standard, which is not as widely as
supported as C89 and C++98. GCC is the only widely-used compiler that
comes close to having a full C99 support (followed by the Intel
compiler), but even GCC is still missing several features
(http://gcc.gnu.org/c99status.html). MSVC and Borland have little C99
support.

 

- They use the AT&T assembly syntax for x86/x86-64 assembly code instead
of using the Intel assembly syntax or Intel intrinsics.

 

These two decisions alone mean that one would have to rewrite most of
FFmpeg to get it compiling on any compiler that is not a GCC-clone.
While there is nothing close to FFmpeg on the market (open or closed
source), while I'm a huge supported of FFmpeg and related projects, such
poor decisions are ridicule from a software engineering point of view
and ultimately hurts FFmpeg.

 

 

Tanguy

 

 

 

From: [email protected]
[mailto:[email protected]] On Behalf Of Garrett
Potts
Sent: 11 July 2009 03:24
To: OpenSceneGraph Users
Subject: Re: [osg-users] ffmpeg stdint on Windows?

 

Hello All:

 

The link below is the one I used before to add stdint.h and inttypes.h.
I use it for the builds on windws.  I have sucessfully used mingw then
use Microsofts implib tool to create a import lib for the dll.

 

Like they said below.  ffmpeg will not build on MSVC and  even if you
can the ffmpeg dev team rely heavily on c standard that defines all
uninitialized variables shall default to 0.  MSVC does not put anything
in an uninitialized variables and  most of the variable definitions in
ffmpeg core library are unnitialized.  The only option is to use mingw
to build a dll file and I use the implib to generate a import library
for the dll.

 

 

 

Take care all

 

 

Garrett

 

_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to