diff options
| author | Dave Chapman <dave@dchapman.com> | 2005-10-26 12:35:58 +0000 |
|---|---|---|
| committer | Dave Chapman <dave@dchapman.com> | 2005-10-26 12:35:58 +0000 |
| commit | 273d2e81f72c7721447ab9c539877f6712faaecc (patch) | |
| tree | 79c66b0b699ca65ac2cc2369cd5bbed764c35a4b /apps/codecs/libffmpegFLAC/bitstream.c | |
| parent | 48be8e6a8b45fa16380af97829ba944430a78f17 (diff) | |
| download | rockbox-273d2e81f72c7721447ab9c539877f6712faaecc.zip rockbox-273d2e81f72c7721447ab9c539877f6712faaecc.tar.gz rockbox-273d2e81f72c7721447ab9c539877f6712faaecc.tar.bz2 rockbox-273d2e81f72c7721447ab9c539877f6712faaecc.tar.xz | |
New FLAC decoder from the ffmpeg project
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7656 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libffmpegFLAC/bitstream.c')
| -rw-r--r-- | apps/codecs/libffmpegFLAC/bitstream.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/apps/codecs/libffmpegFLAC/bitstream.c b/apps/codecs/libffmpegFLAC/bitstream.c new file mode 100644 index 0000000..e53ec0f --- /dev/null +++ b/apps/codecs/libffmpegFLAC/bitstream.c @@ -0,0 +1,62 @@ +/* + * Common bit i/o utils + * Copyright (c) 2000, 2001 Fabrice Bellard. + * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * alternative bitstream reader & writer by Michael Niedermayer <michaelni@gmx.at> + */ + +/** + * @file bitstream.c + * bitstream api. + */ + +#include <stdio.h> +#include "bitstream.h" + +/* bit input functions */ + +/** + * reads 0-32 bits. + */ +unsigned int get_bits_long(GetBitContext *s, int n){ + if(n<=17) return get_bits(s, n); + else{ + int ret= get_bits(s, 16) << (n-16); + return ret | get_bits(s, n-16); + } +} + +/** + * shows 0-32 bits. + */ +unsigned int show_bits_long(GetBitContext *s, int n){ + if(n<=17) return show_bits(s, n); + else{ + GetBitContext gb= *s; + int ret= get_bits_long(s, n); + *s= gb; + return ret; + } +} + +void align_get_bits(GetBitContext *s) +{ + int n= (-get_bits_count(s)) & 7; + if(n) skip_bits(s, n); +} + |