bsp 5108 src/ftdm_io.c FT_DECLARE(void) ftdm_bitstream_init(ftdm_bitstream_t *bsp, uint8_t *data, uint32_t datalen, ftdm_endian_t endian, uint8_t ss) bsp 5110 src/ftdm_io.c memset(bsp, 0, sizeof(*bsp)); bsp 5111 src/ftdm_io.c bsp->data = data; bsp 5112 src/ftdm_io.c bsp->datalen = datalen; bsp 5113 src/ftdm_io.c bsp->endian = endian; bsp 5114 src/ftdm_io.c bsp->ss = ss; bsp 5117 src/ftdm_io.c bsp->top = bsp->bit_index = 7; bsp 5118 src/ftdm_io.c bsp->bot = 0; bsp 5120 src/ftdm_io.c bsp->top = bsp->bit_index = 0; bsp 5121 src/ftdm_io.c bsp->bot = 7; bsp 5126 src/ftdm_io.c FT_DECLARE(int8_t) ftdm_bitstream_get_bit(ftdm_bitstream_t *bsp) bsp 5131 src/ftdm_io.c if (bsp->byte_index >= bsp->datalen) { bsp 5135 src/ftdm_io.c if (bsp->ss) { bsp 5136 src/ftdm_io.c if (!bsp->ssv) { bsp 5137 src/ftdm_io.c bsp->ssv = 1; bsp 5139 src/ftdm_io.c } else if (bsp->ssv == 2) { bsp 5140 src/ftdm_io.c bsp->byte_index++; bsp 5141 src/ftdm_io.c bsp->ssv = 0; bsp 5149 src/ftdm_io.c bit = (bsp->data[bsp->byte_index] >> (bsp->bit_index)) & 1; bsp 5151 src/ftdm_io.c if (bsp->bit_index == bsp->bot) { bsp 5152 src/ftdm_io.c bsp->bit_index = bsp->top; bsp 5153 src/ftdm_io.c if (bsp->ss) { bsp 5154 src/ftdm_io.c bsp->ssv = 2; bsp 5158 src/ftdm_io.c if (++bsp->byte_index > bsp->datalen) { bsp 5164 src/ftdm_io.c bsp->bit_index = bsp->bit_index + bsp->endian; bsp 516 src/include/private/ftdm_core.h FT_DECLARE(int8_t) ftdm_bitstream_get_bit(ftdm_bitstream_t *bsp); bsp 517 src/include/private/ftdm_core.h FT_DECLARE(void) ftdm_bitstream_init(ftdm_bitstream_t *bsp, uint8_t *data, uint32_t datalen, ftdm_endian_t endian, uint8_t ss);