Ogg 2 DTSC working lib
This commit is contained in:
parent
5d85548360
commit
0bf50edaea
2 changed files with 23 additions and 10 deletions
22
lib/ogg.cpp
22
lib/ogg.cpp
|
@ -198,6 +198,11 @@ namespace OGG{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Page::setSegmentTable(std::vector<unsigned int> layout){
|
bool Page::setSegmentTable(std::vector<unsigned int> layout){
|
||||||
|
dataSum=0;
|
||||||
|
for (unsigned int i = 0; i < layout.size(); i++){
|
||||||
|
dataSum += layout[i];
|
||||||
|
}
|
||||||
|
std::cerr << "dataSum size: " << dataSum << std::endl;
|
||||||
unsigned int place = 0;
|
unsigned int place = 0;
|
||||||
char table[255];
|
char table[255];
|
||||||
for (unsigned int i = 0; i < layout.size(); i++){
|
for (unsigned int i = 0; i < layout.size(); i++){
|
||||||
|
@ -217,11 +222,8 @@ namespace OGG{
|
||||||
table[place] = layout[i];
|
table[place] = layout[i];
|
||||||
place++;
|
place++;
|
||||||
}
|
}
|
||||||
|
setPageSegments(place);
|
||||||
setSegmentTable(table,place);
|
setSegmentTable(table,place);
|
||||||
dataSum=0;
|
|
||||||
for (unsigned int i = 0; i < layout.size(); i++){
|
|
||||||
dataSum += layout[i];
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,6 +237,10 @@ namespace OGG{
|
||||||
return 27 + getPageSegments()+dataSum;
|
return 27 + getPageSegments()+dataSum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char* Page::getPage(){
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
char* Page::getFullPayload(){
|
char* Page::getFullPayload(){
|
||||||
return data + 27 + getPageSegments();
|
return data + 27 + getPageSegments();
|
||||||
}
|
}
|
||||||
|
@ -433,18 +439,24 @@ namespace OGG{
|
||||||
return dataSum;
|
return dataSum;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Page::clear(){
|
bool Page::clear(){
|
||||||
|
if(!checkDataSize(27)){//check if size available in memory
|
||||||
|
return false;
|
||||||
|
}
|
||||||
memset(data,0,27);
|
memset(data,0,27);
|
||||||
datasize = 0;
|
datasize = 0;
|
||||||
dataSum = 0;
|
dataSum = 0;
|
||||||
codec = "";
|
codec = "";
|
||||||
|
setMagicNumber();
|
||||||
segmentTableDeque.clear();
|
segmentTableDeque.clear();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Page::setPayload(char* newData, unsigned int length){
|
bool Page::setPayload(char* newData, unsigned int length){
|
||||||
if(!checkDataSize(27 + getPageSegments() + length)){//check if size available in memory
|
if(!checkDataSize(27 + getPageSegments() + length)){//check if size available in memory
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
std::cerr << "Payload length: " << length << std::endl;
|
||||||
memcpy(data + 27 + getPageSegments(), newData, length);
|
memcpy(data + 27 + getPageSegments(), newData, length);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,8 +31,10 @@ namespace OGG{
|
||||||
std::deque<unsigned int> & getSegmentTableDeque();
|
std::deque<unsigned int> & getSegmentTableDeque();
|
||||||
bool setSegmentTable(std::vector<unsigned int> layout);
|
bool setSegmentTable(std::vector<unsigned int> layout);
|
||||||
void setSegmentTable(char* newVal, unsigned int length);
|
void setSegmentTable(char* newVal, unsigned int length);
|
||||||
|
|
||||||
|
char* getPage();//returns complete page with header
|
||||||
unsigned long int getPageSize();
|
unsigned long int getPageSize();
|
||||||
char* getFullPayload();
|
char* getFullPayload();//returns all segments in the page
|
||||||
int getPayloadSize();
|
int getPayloadSize();
|
||||||
bool typeBOS();
|
bool typeBOS();
|
||||||
bool typeEOS();
|
bool typeEOS();
|
||||||
|
@ -41,8 +43,7 @@ namespace OGG{
|
||||||
std::string toPrettyString(size_t indent = 0);
|
std::string toPrettyString(size_t indent = 0);
|
||||||
void setInternalCodec(std::string myCodec);
|
void setInternalCodec(std::string myCodec);
|
||||||
long unsigned int calcChecksum();
|
long unsigned int calcChecksum();
|
||||||
void clear();
|
bool clear();
|
||||||
|
|
||||||
bool setPayload(char* newData, unsigned int length);
|
bool setPayload(char* newData, unsigned int length);
|
||||||
private:
|
private:
|
||||||
std::deque<unsigned int> segmentTableDeque;
|
std::deque<unsigned int> segmentTableDeque;
|
||||||
|
|
Loading…
Add table
Reference in a new issue