[FFmpeg-devel] [PATCH] eliminate long from ByteIOContext structure

Michael Niedermayer michaelni
Thu Apr 3 02:24:21 CEST 2008


On Thu, Apr 03, 2008 at 01:52:42AM +0200, Diego Biurrun wrote:
> On Thu, Apr 03, 2008 at 01:48:31AM +0200, Michael Niedermayer wrote:
> > On Thu, Apr 03, 2008 at 01:17:41AM +0200, Diego Biurrun wrote:
> > > On Thu, Apr 03, 2008 at 01:06:04AM +0200, Michael Niedermayer wrote:
> > > > On Wed, Apr 02, 2008 at 09:04:47PM +0200, Diego Biurrun wrote:
> > > > > On Wed, Apr 02, 2008 at 11:30:50AM +0200, Reimar D?ffinger wrote:
> > > > > > On Wed, Apr 02, 2008 at 09:19:45AM +0200, Diego Biurrun wrote:
> > > > > > > +unsigned long get_checksum(ByteIOContext *s);
> > > > > > > +#if LIBAVFORMAT_VERSION_MAJOR >= 53
> > > > > > > +unsigned long ff_crc04C11DB7_update(unsigned int checksum, const uint8_t *buf, unsigned int len);
> > > > > > > +void init_checksum(ByteIOContext *s, unsigned int (*update_checksum)(unsigned int c, const uint8_t *p, unsigned int len), unsigned int checksum);
> > > > > > > +#else
> > > > > > >  unsigned long ff_crc04C11DB7_update(unsigned long checksum, const uint8_t *buf, unsigned int len);
> > > > > > > -unsigned long get_checksum(ByteIOContext *s);
> > > > > > 
> > > > > > Hm, should get_checksum and ff_crc04C11DB7_update really continue to
> > > > > > return unsigned long?
> > > > > 
> > > > > .. next try ..
> > > > [...]
> > > > > +#if LIBAVFORMAT_VERSION_MAJOR >= 53
> > > > > +uint32_t ff_crc04C11DB7_update(unsigned int checksum, const uint8_t *buf, unsigned int len);
> > > >    ^^^^^^^^
> > > > 
> > > > And iam sure there are more things you should to change to int
> > > 
> > > This is on purpose, 
> > 
> > In that case i think it might be better to leave the code as it is currently
> > in svn. Because it is working currently. :)
> 
> Well, it's hard to satisfy all comments when you and Reimar tell me
> diametrically opposed things...

:)


> 
> > > ff_crc04C11DB7_update is a wrapper around av_crc,
> > > which returns uint32_t ...
> 
> So how is it not a bug if the wrapper returns unsigned long, but the
> wrapped function returns uint32_t?

That has perfectly defined behavior in C, what you wrote though has not
and gcc should if it compiles it at all spew out warnings.

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Democracy is the form of government in which you can choose your dictator
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080403/006b2b46/attachment.pgp>



More information about the ffmpeg-devel mailing list