1 /* 2 * TwoLAME: an optimized MPEG Audio Layer Two encoder 3 * 4 * Copyright (C) 2001-2004 Michael Cheng 5 * Copyright (C) 2004-2006 The TwoLAME Project 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * This library is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this library; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 * 21 * $Id$ 22 * 23 */ 24 25 #ifndef _BITBUFFER_H_ 26 #define _BITBUFFER_H_ 27 28 #include "common.h" 29 30 /* bit stream structure */ 31 typedef struct bit_stream_struc { 32 unsigned char *buf; /* bit stream buffer */ 33 int buf_size; /* size of buffer (in number of bytes) */ 34 long totbit; /* bit counter of bit stream */ 35 int buf_byte_idx; /* pointer to top byte in buffer */ 36 int buf_bit_idx; /* pointer to top bit of top byte in buffer */ 37 int eob; /* end of buffer index */ 38 int eobs; /* end of bit stream flag */ 39 } bit_stream; 40 41 42 bit_stream *buffer_init(unsigned char *buffer, int buffer_size); 43 void buffer_deinit(bit_stream ** bs); 44 45 /*return the current bit stream length (in bits)*/ 46 #define buffer_sstell(bs) (bs->totbit) 47 48 #endif 49 50 51 // vim:ts=4:sw=4:nowrap: 52