Lib ogg added new function
This commit is contained in:
parent
8cae5f1fc6
commit
04500e4694
2 changed files with 24 additions and 2 deletions
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue