[FFmpeg-devel] [PATCH] new function get_sbits_long()

Justin Ruggles justin.ruggles
Mon Mar 2 19:52:39 CET 2009


Reimar D?ffinger wrote:
> On Mon, Mar 02, 2009 at 01:35:45PM -0500, Justin Ruggles wrote:
>> Reimar D?ffinger wrote:
>>> On Mon, Mar 02, 2009 at 06:58:49PM +0100, Michael Niedermayer wrote:
>>>> On Mon, Mar 02, 2009 at 12:39:05PM -0500, Justin Ruggles wrote:
>>>>> I need a get_sbits_long() function to support FLAC files that are more
>>>>> than 24-bit.  There might be a better way to do it, but this works.
>>>> only where int is 32bit which isnt guranteed even if likely
>>> There is already the NEG_SSR32 macro to take care of that (and it
>>> also optimizes gcc's brain-deadness away on x86).
>> yes, this works well.
>>
>> -Justin
>>
> 
>> Index: libavcodec/bitstream.h
>> ===================================================================
>> --- libavcodec/bitstream.h	(revision 17735)
>> +++ libavcodec/bitstream.h	(working copy)
>> @@ -707,6 +707,14 @@
>>  }
>>  
>>  /**
>> + * reads 0-32 bits as a signed integer.
>> + */
>> +static inline int get_sbits_long(GetBitContext *s, int n) {
>> +    int val = get_bits_long(s, n);
>> +    return NEG_SSR32(val, n);
> 
> Can't imagine that, you must use it like in the SHOW_SBITS macro:
> NEG_SSR32(val<<(32-n), n)

You're right. The FLAC file I tested just happened not to trigger any
problem.  I tried another one.

-Justin



-------------- next part --------------
A non-text attachment was scrubbed...
Name: get_sbits_long.diff
Type: text/x-diff
Size: 502 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090302/baf4a208/attachment.diff>



More information about the ffmpeg-devel mailing list