Lib ogg added new function

This commit is contained in:
Oswald de Bruin 2013-06-17 15:55:29 +02:00 committed by Erik Zandvliet
parent 8cae5f1fc6
commit 04500e4694
2 changed files with 24 additions and 2 deletions

View file

@ -34,6 +34,19 @@ namespace theora{
return ntohl(result); return ntohl(result);
} }
uint16_t header::getInt16(size_t index){
/*if (index + 3 >= datasize){
if ( !reserve(index, 0, 4)){
return 0;
}
setInt32(0, index);
}*/
uint16_t result;
memcpy((char*) &result, data + index, 2);
return ntohs(result);
}
header::header(){ header::header(){
data = NULL; data = NULL;
datasize = 0; datasize = 0;
@ -83,6 +96,13 @@ namespace theora{
}; };
} }
char header::getKFGShift(){
if (getHeaderType() == 0){
return (getInt16(40) >> 5) & 0x1F;
}
return 0;
}
long unsigned int header::getFRN(){ long unsigned int header::getFRN(){
if (getHeaderType() == 0){ if (getHeaderType() == 0){
return getInt32(22); return getInt32(22);

View file

@ -7,10 +7,12 @@ namespace theora{
header(); header();
bool read(char* newData, unsigned int length); bool read(char* newData, unsigned int length);
int getHeaderType(); int getHeaderType();
long unsigned int getFRN(); char getKFGShift();
long unsigned int getFRD(); long unsigned int getFRN();//frame rate numerator
long unsigned int getFRD();//frame rate denominator
protected: protected:
uint32_t getInt32(size_t index); uint32_t getInt32(size_t index);
uint16_t getInt16(size_t index);
private: private:
char* data; char* data;
unsigned int datasize; unsigned int datasize;