[Ffmpeg-devel] [PATCH] Partial port of ffmpeg to MS Visual C - and a note on the inttypes.h issue

Yuri Vilmanis yuri
Mon Feb 12 01:22:49 CET 2007


Dave Dodge wrote:
> On Thu, Feb 08, 2007 at 05:18:13PM +1030, Yuri Vilmanis wrote:
>   
>> Dave Dodge wrote:
>>     
>>> On Thu, Jan 25, 2007 at 06:34:54PM +1030, Yuri Vilmanis wrote:
>>>       
>>>> Incidentally, FFMpeg uses the following C99 features which are marked as
>>>> broken or missing in gcc (see http://gcc.gnu.org/c99status.html) (these
>>>> I noted off-hand - there may be others):
>>>>    
>>>>         
>>> [...]
>>>  
>>>       
>>>> - extended integer types - stdint.h is marked missing, inttypes.h is
>>>>         
>        ^^^^^^^^
>        ^^^^^^^^
>
>   
>>>> marked as having library issues (I gather this because it supplies the
>>>> typdefs which are meant to be in stdint.h - feel free to correct me here)
>>>>    
>>>>         
>>> This has to do with _extended_ integer types, which would be
>>> implementation-defined
>>>       
>
>   
>> If you take a look at the C99 standard, you'll find under the library 
>>     
>
> [...explanation of inttypes.h and stdint.h deleted...]
>
>   
>> I hope this answers your ... statement?
>>     
>
> My point is that on the gcc C99 status page you quoted, the entry
> where you seem to think it's saying stdint.h is missing (and as I note
> above) has to do with EXTENDED integer types.
>
> The term "extended integer type" has a specific meaning in C99, which
> can be found in section 6.2.5.  The types "signed char", "short int",
> "int", "long int", and "long long int" are not extended integer types,
> they are STANDARD integer types.  An extended integer type would be
> some implementation-defined integer type that is not one of the
> standard types.  For example if gcc provided a 1024-bit wide
> "__1024int" type, that would be an extended integer type.  C99 allows
> such types to exist, and has several requirements for how they must
> behave if they are present in the implementation.
>
> If extended integer types do exist, then they indeed may be mentioned
> in stdint.h.  For example there could be an int1024_t type that is
> typedef'd to __1024int.  A more realistic example might be if the
> architecture has no native 32-bit type (there's more than one real
> system of that sort), but decides to provide an int32_t anyway by
> using an extended integer type.
>
> According to gcc's documentation (as of 4.1.1) it doesn't actually
> have any extended integer types.  Therefore it is strange that the C99
> status page says these types are missing, because there aren't any
> such types to _be_ missing.  Either the C99 status page is wrong, or
> the gcc documentation is wrong.  And in either case it would have
> little to do with how ffmpeg uses stdint.h.
>   
Got it. Maybe it just comes down to the status page maintainers taking a 
'cautious' position...

Thanks,
  Yuri
>                                                   -Dave Dodge
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
> http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
>   





More information about the ffmpeg-devel mailing list