KVIrc  4.9.2
DeveloperAPIs
Public Member Functions | Private Member Functions | Private Attributes | List of all members
KviOggTheoraDecoder Class Reference

An ogg/theora+irct decoder class; accepts a proper ogg stream, outputs argb32 images and binary text. More...

#include <KviOggTheoraDecoder.h>

Public Member Functions

void addData (KviDataBuffer *stream)
 Feeds the decoded with some received data to decode. More...
 
 KviOggTheoraDecoder (KviDataBuffer *videoSignal, KviDataBuffer *textSignal)
 Constructs the KviOggTheoraDecoder object. More...
 
virtual ~KviOggTheoraDecoder ()
 Destroys the KviTheoraEncoder object. More...
 

Private Member Functions

int queue_page (ogg_page *page)
 Internal function that queues an ogg page to the codec decoders. More...
 
void video_write (void)
 Internal function that takes a theora yuv buffer, transforms it and appends to the video stream. More...
 

Private Attributes

KviOggTheoraGeometry geometry
 
int irct_p
 
int lu_B [256]
 
int lu_GU [256]
 
int lu_GV [256]
 
int lu_R [256]
 
int lu_Y [256]
 
KviDataBufferm_pTextSignal
 
KviDataBufferm_pVideoSignal
 
ogg_page og
 
ogg_packet op
 
ogg_sync_state oy
 
int pp_inc
 
int pp_level
 
int pp_level_max
 
th_pixel_fmt px_fmt
 
unsigned char * RGBbuffer
 
int stateflag
 
th_comment tc
 
th_dec_ctx * td
 
bool thda
 
int theora_p
 
bool thtic
 
th_info ti
 
ogg_stream_state to
 
th_setup_info * ts
 
ogg_int64_t videobuf_granulepos
 
int videobuf_ready
 
double videobuf_time
 
ogg_stream_state zo
 

Detailed Description

An ogg/theora+irct decoder class; accepts a proper ogg stream, outputs argb32 images and binary text.

Constructor & Destructor Documentation

KviOggTheoraDecoder::KviOggTheoraDecoder ( KviDataBuffer videoSignal,
KviDataBuffer textSignal 
)

Constructs the KviOggTheoraDecoder object.

Parameters
videoSignalthe output video stream object
textSignalthe output text stream object
Returns
KviOggTheoraDecoder

References i, and NULL.

KviOggTheoraDecoder::~KviOggTheoraDecoder ( )
virtual

Destroys the KviTheoraEncoder object.

References KviOggIrcText::irct_encode_clear().

Member Function Documentation

void KviOggTheoraDecoder::addData ( KviDataBuffer stream)

Feeds the decoded with some received data to decode.

Parameters
streamthe databuffer containing the received data
Returns
void

References KviDataBuffer::clear(), KviDataBuffer::data(), h, KviOggIrcText::irct_decode_headerin(), KviOggIrcText::irct_decode_packetin(), KviDataBuffer::size(), and w.

Referenced by DccVideoTheoraCodec::decode().

int KviOggTheoraDecoder::queue_page ( ogg_page *  page)
private

Internal function that queues an ogg page to the codec decoders.

Returns
int
void KviOggTheoraDecoder::video_write ( void  )
private

Internal function that takes a theora yuv buffer, transforms it and appends to the video stream.

Returns
int

References ARGB32_BPP, g, i, j, OC_CLAMP255, r, and y.

Member Data Documentation

KviOggTheoraGeometry KviOggTheoraDecoder::geometry
private

Stream geometry definition

int KviOggTheoraDecoder::irct_p
private

True if the ogg stream contains an irct stream

int KviOggTheoraDecoder::lu_B[256]
private

Surface used in yuv->rgb processing (B)

int KviOggTheoraDecoder::lu_GU[256]
private

Surface used in yuv->rgb processing (GU)

int KviOggTheoraDecoder::lu_GV[256]
private

Surface used in yuv->rgb processing (GV)

int KviOggTheoraDecoder::lu_R[256]
private

Surface used in yuv->rgb processing (R)

int KviOggTheoraDecoder::lu_Y[256]
private

Surface used in yuv->rgb processing (Y)

KviDataBuffer* KviOggTheoraDecoder::m_pTextSignal
private

Output text stream pointer

KviDataBuffer* KviOggTheoraDecoder::m_pVideoSignal
private

Output video stream pointer

ogg_page KviOggTheoraDecoder::og
private

One Ogg bitstream page. Vorbis packets are inside

ogg_packet KviOggTheoraDecoder::op
private

One raw packet of encoded data

ogg_sync_state KviOggTheoraDecoder::oy
private
int KviOggTheoraDecoder::pp_inc
private

Theora postprocessing: increment

int KviOggTheoraDecoder::pp_level
private

Theora postprocessing: current level

int KviOggTheoraDecoder::pp_level_max
private

Theora postprocessing: max level

th_pixel_fmt KviOggTheoraDecoder::px_fmt
private

Theora stream pixel format definition

unsigned char* KviOggTheoraDecoder::RGBbuffer
private

RGB decoded surface pointer

int KviOggTheoraDecoder::stateflag
private

Internal flag used in stream processing

th_comment KviOggTheoraDecoder::tc
private

Theora stream comments struct

th_dec_ctx* KviOggTheoraDecoder::td
private

Theora stream decoding struct

bool KviOggTheoraDecoder::thda
private

Theora decode alloc state

int KviOggTheoraDecoder::theora_p
private

True if the ogg stream contains a theora stream

bool KviOggTheoraDecoder::thtic
private

Theora setup clear state

th_info KviOggTheoraDecoder::ti
private

Theora stream info struct

ogg_stream_state KviOggTheoraDecoder::to
private

Take physical pages, weld into a logical stream of theora packets

th_setup_info* KviOggTheoraDecoder::ts
private

Theora stream setup info struct

ogg_int64_t KviOggTheoraDecoder::videobuf_granulepos
private

Single frame video buffering : granule position

int KviOggTheoraDecoder::videobuf_ready
private

Single frame video buffering : ready state

double KviOggTheoraDecoder::videobuf_time
private

Single frame video buffering : duration

ogg_stream_state KviOggTheoraDecoder::zo
private

Take physical pages, weld into a logical stream of irct packets


The documentation for this class was generated from the following files: