64 lines
2.0 KiB
C
64 lines
2.0 KiB
C
/*
|
|
* g722_1 - a library for the G.722.1 and Annex C codecs
|
|
*
|
|
* bitstream.h
|
|
*
|
|
* Copyright (C) 2006 Steve Underwood
|
|
*
|
|
* This program 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.
|
|
*/
|
|
|
|
/*! \file */
|
|
|
|
#if !defined(_G722_1_BITSTREAM_H_)
|
|
#define _G722_1_BITSTREAM_H_
|
|
|
|
#if 0
|
|
/*! Bitstream handler state */
|
|
typedef struct
|
|
{
|
|
/*! The bit stream. */
|
|
uint32_t bitstream;
|
|
/*! The residual bits in bitstream. */
|
|
int residue;
|
|
} g722_1_bitstream_state_t;
|
|
#endif
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/*! \brief Put a chunk of bits into the output buffer.
|
|
\param s A pointer to the bitstream context.
|
|
\param c A pointer to the bitstream output buffer.
|
|
\param value The value to be pushed into the output buffer.
|
|
\param bits The number of bits of value to be pushed. 1 to 32 bits is valid. */
|
|
void g722_1_bitstream_put(g722_1_bitstream_state_t *s, uint8_t **c, uint32_t value, int bits);
|
|
|
|
/*! \brief Get a chunk of bits from the input buffer.
|
|
\param s A pointer to the bitstream context.
|
|
\param c A pointer to the bitstream input buffer.
|
|
\param bits The number of bits of value to be grabbed. 1 to 32 bits is valid.
|
|
\return The value retrieved from the input buffer. */
|
|
uint32_t g722_1_bitstream_get(g722_1_bitstream_state_t *s, const uint8_t **c, int bits);
|
|
|
|
/*! \brief Flush any residual bit to the output buffer.
|
|
\param s A pointer to the bitstream context.
|
|
\param c A pointer to the bitstream output buffer. */
|
|
void g722_1_bitstream_flush(g722_1_bitstream_state_t *s, uint8_t **c);
|
|
|
|
/*! \brief Initialise a bitstream context.
|
|
\param s A pointer to the bitstream context.
|
|
\return A pointer to the bitstream context. */
|
|
g722_1_bitstream_state_t *g722_1_bitstream_init(g722_1_bitstream_state_t *s);
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
/*- End of file ------------------------------------------------------------*/
|