snapcast/client/oggDecoder.h
(no author) 42f27c328d ogg
git-svn-id: svn://elaine/murooma/trunk@222 d8a302eb-03bc-478d-80e4-98257eca68ef
2014-08-30 20:48:43 +00:00

39 lines
1 KiB
C++

#ifndef OGG_DECODER_H
#define OGG_DECODER_H
#include "decoder.h"
#include <vorbis/codec.h>
class OggDecoder
{
public:
OggDecoder();
virtual bool decode(Chunk* chunk);
private:
bool decodePayload(Chunk* chunk);
bool decodeHeader(Chunk* chunk);
ogg_sync_state oy; /* sync and verify incoming physical bitstream */
ogg_stream_state os; /* take physical pages, weld into a logical
stream of packets */
ogg_page og; /* one Ogg bitstream page. Vorbis packets are inside */
ogg_packet op; /* one raw packet of data for decode */
vorbis_info vi; /* struct that stores all the static vorbis bitstream
settings */
vorbis_comment vc; /* struct that stores all the bitstream user comments */
vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
vorbis_block vb; /* local working space for packet->PCM decode */
ogg_int16_t convbuffer[4096]; /* take 8k out of the data segment, not the stack */
int convsize=4096;
char *buffer;
int bytes;
};
#endif