huntercool
01-17-2010, 05:20 PM
Introducing Theora, a free video codec with a very friendly license (BSD).
Right now, I'm attempting to integrate Theora into clanlib. So far no major issues encountered. There are two things missing, a YUV to RGB converter and sound output. The sound codec is already available in clanlib as clanVorbis. So getting the sound to work is a breeze.
This project is WIP, until I have time to finish it off (probably a few weeks).
Screenshot
http://i45.tinypic.com/ajt0ea.png
Also see the attached sample app for a demo...
EDIT:
At the moment, I have no plan to release the unfinished source code.
EDIT2:
Almost complete.
Only Two things are left todo:
Implement sound output
Fix the frame rate issue
EDIT3:
Requires an SSE2 capable cpu
EDIT4:
Sneak preview of the header file
class CL_Theora
{
public:
CL_Theora();
CL_Theora(const CL_String &s);
~CL_Theora();
void load(const CL_String &file_name );
void start();
void stop();
void process(CL_GraphicContext &gc);
CL_PixelBuffer &get_frame();
int get_width() const;
int get_height() const;
double get_fps() const;
private:
CL_SharedPtr<CL_Theora_Impl> impl;
};
Right now, I'm attempting to integrate Theora into clanlib. So far no major issues encountered. There are two things missing, a YUV to RGB converter and sound output. The sound codec is already available in clanlib as clanVorbis. So getting the sound to work is a breeze.
This project is WIP, until I have time to finish it off (probably a few weeks).
Screenshot
http://i45.tinypic.com/ajt0ea.png
Also see the attached sample app for a demo...
EDIT:
At the moment, I have no plan to release the unfinished source code.
EDIT2:
Almost complete.
Only Two things are left todo:
Implement sound output
Fix the frame rate issue
EDIT3:
Requires an SSE2 capable cpu
EDIT4:
Sneak preview of the header file
class CL_Theora
{
public:
CL_Theora();
CL_Theora(const CL_String &s);
~CL_Theora();
void load(const CL_String &file_name );
void start();
void stop();
void process(CL_GraphicContext &gc);
CL_PixelBuffer &get_frame();
int get_width() const;
int get_height() const;
double get_fps() const;
private:
CL_SharedPtr<CL_Theora_Impl> impl;
};