![]() |
KVIrc 5.2.6
Developer APIs
|
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. | |
KviOggTheoraDecoder (KviDataBuffer *videoSignal, KviDataBuffer *textSignal) | |
Constructs the KviOggTheoraDecoder object. | |
virtual | ~KviOggTheoraDecoder () |
Destroys the KviTheoraEncoder object. | |
Private Member Functions | |
int | queue_page (ogg_page *page) |
Internal function that queues an ogg page to the codec decoders. | |
void | video_write (void) |
Internal function that takes a theora yuv buffer, transforms it and appends to the video stream. | |
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] |
KviDataBuffer * | m_pTextSignal |
KviDataBuffer * | m_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 |
An ogg/theora+irct decoder class; accepts a proper ogg stream, outputs argb32 images and binary text.
KviOggTheoraDecoder::KviOggTheoraDecoder | ( | KviDataBuffer * | videoSignal, |
KviDataBuffer * | textSignal ) |
Constructs the KviOggTheoraDecoder object.
videoSignal | the output video stream object |
textSignal | the output text stream object |
References i, irct_p, lu_B, lu_GU, lu_GV, lu_R, lu_Y, m_pTextSignal, m_pVideoSignal, oy, stateflag, tc, thda, theora_p, thtic, ti, ts, videobuf_granulepos, videobuf_ready, and videobuf_time.
|
virtual |
void KviOggTheoraDecoder::addData | ( | KviDataBuffer * | stream | ) |
Feeds the decoded with some received data to decode.
stream | the databuffer containing the received data |
References KviDataBuffer::append(), KviDataBuffer::clear(), KviDataBuffer::data(), KviOggTheoraGeometry::frame_h, KviOggTheoraGeometry::frame_w, geometry, h, KviOggIrcText::irct_decode_headerin(), KviOggIrcText::irct_decode_packetin(), irct_p, m_pTextSignal, og, op, oy, KviOggTheoraGeometry::pic_h, KviOggTheoraGeometry::pic_w, KviOggTheoraGeometry::pic_x, KviOggTheoraGeometry::pic_y, pp_inc, pp_level, pp_level_max, px_fmt, queue_page(), RGBbuffer, KviDataBuffer::size(), stateflag, tc, td, thda, theora_p, thtic, ti, to, ts, video_write(), videobuf_granulepos, videobuf_ready, w, and zo.
Referenced by DccVideoTheoraCodec::decode().
|
private |
|
private |
Internal function that takes a theora yuv buffer, transforms it and appends to the video stream.
References KviDataBuffer::append(), ARGB32_BPP, KviDataBuffer::clear(), g, geometry, i, j, lu_B, lu_GU, lu_GV, lu_R, lu_Y, m_pVideoSignal, OC_CLAMP255, KviOggTheoraGeometry::pic_h, KviOggTheoraGeometry::pic_w, KviOggTheoraGeometry::pic_x, KviOggTheoraGeometry::pic_y, r, RGBbuffer, td, and y.
Referenced by addData().
|
private |
Stream geometry definition
Referenced by addData(), and video_write().
|
private |
True if the ogg stream contains an irct stream
Referenced by addData(), KviOggTheoraDecoder(), queue_page(), and ~KviOggTheoraDecoder().
|
private |
Surface used in yuv->rgb processing (B)
Referenced by KviOggTheoraDecoder(), and video_write().
|
private |
Surface used in yuv->rgb processing (GU)
Referenced by KviOggTheoraDecoder(), and video_write().
|
private |
Surface used in yuv->rgb processing (GV)
Referenced by KviOggTheoraDecoder(), and video_write().
|
private |
Surface used in yuv->rgb processing (R)
Referenced by KviOggTheoraDecoder(), and video_write().
|
private |
Surface used in yuv->rgb processing (Y)
Referenced by KviOggTheoraDecoder(), and video_write().
|
private |
Output text stream pointer
Referenced by addData(), and KviOggTheoraDecoder().
|
private |
Output video stream pointer
Referenced by KviOggTheoraDecoder(), and video_write().
|
private |
One Ogg bitstream page. Vorbis packets are inside
Referenced by addData().
|
private |
One raw packet of encoded data
Referenced by addData().
|
private |
Referenced by addData(), KviOggTheoraDecoder(), and ~KviOggTheoraDecoder().
|
private |
Theora postprocessing: increment
Referenced by addData().
|
private |
Theora postprocessing: current level
Referenced by addData().
|
private |
Theora postprocessing: max level
Referenced by addData().
|
private |
Theora stream pixel format definition
Referenced by addData().
|
private |
RGB decoded surface pointer
Referenced by addData(), and video_write().
|
private |
Internal flag used in stream processing
Referenced by addData(), and KviOggTheoraDecoder().
|
private |
Theora stream comments struct
Referenced by addData(), KviOggTheoraDecoder(), and ~KviOggTheoraDecoder().
|
private |
Theora stream decoding struct
Referenced by addData(), video_write(), and ~KviOggTheoraDecoder().
|
private |
Theora decode alloc state
Referenced by addData(), and KviOggTheoraDecoder().
|
private |
True if the ogg stream contains a theora stream
Referenced by addData(), KviOggTheoraDecoder(), queue_page(), and ~KviOggTheoraDecoder().
|
private |
Theora setup clear state
Referenced by addData(), and KviOggTheoraDecoder().
|
private |
Theora stream info struct
Referenced by addData(), KviOggTheoraDecoder(), and ~KviOggTheoraDecoder().
|
private |
Take physical pages, weld into a logical stream of theora packets
Referenced by addData(), queue_page(), and ~KviOggTheoraDecoder().
|
private |
Theora stream setup info struct
Referenced by addData(), and KviOggTheoraDecoder().
|
private |
Single frame video buffering : granule position
Referenced by addData(), and KviOggTheoraDecoder().
|
private |
Single frame video buffering : ready state
Referenced by addData(), and KviOggTheoraDecoder().
|
private |
Single frame video buffering : duration
Referenced by KviOggTheoraDecoder().
|
private |
Take physical pages, weld into a logical stream of irct packets
Referenced by addData(), queue_page(), and ~KviOggTheoraDecoder().