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

Reimar Döffinger Reimar.Doeffinger
Mon Mar 2 19:40:21 CET 2009


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)




More information about the ffmpeg-devel mailing list