pretty printing fixed
This commit is contained in:
parent
837b7068c4
commit
50dd32301d
1 changed files with 14 additions and 14 deletions
28
lib/mp4.cpp
28
lib/mp4.cpp
|
@ -38,9 +38,9 @@ namespace MP4{
|
||||||
bool Box::read(std::string & newData) {
|
bool Box::read(std::string & newData) {
|
||||||
if( newData.size() > 4 ) {
|
if( newData.size() > 4 ) {
|
||||||
size_t size = ntohl( ((int*)newData.c_str())[0] );
|
size_t size = ntohl( ((int*)newData.c_str())[0] );
|
||||||
if( newData.size() > size + 8 ) {
|
if( newData.size() > size ) {
|
||||||
data = newData.substr( 0, size + 8 );
|
data = newData.substr( 0, size );
|
||||||
newData.erase( 0, size + 8 );
|
newData.erase( 0, size );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,12 +69,12 @@ namespace MP4{
|
||||||
|
|
||||||
std::string Box::toPrettyString(int indent){
|
std::string Box::toPrettyString(int indent){
|
||||||
switch( ntohl(((int*)data.c_str())[1]) ) { //type is at this address
|
switch( ntohl(((int*)data.c_str())[1]) ) { //type is at this address
|
||||||
case 0x6D666864: return ((MFHD*)this)->toPrettyString(indent);
|
case 0x6D666864: return ((MFHD*)this)->toPrettyString(indent); break;
|
||||||
case 0x6D6F6F66: return ((MOOF*)this)->toPrettyString(indent);
|
case 0x6D6F6F66: return ((MOOF*)this)->toPrettyString(indent); break;
|
||||||
case 0x61627374: return ((ABST*)this)->toPrettyString(indent);
|
case 0x61627374: return ((ABST*)this)->toPrettyString(indent); break;
|
||||||
case 0x61667274: return ((AFRT*)this)->toPrettyString(indent);
|
case 0x61667274: return ((AFRT*)this)->toPrettyString(indent); break;
|
||||||
case 0x61737274: return ((ASRT*)this)->toPrettyString(indent);
|
case 0x61737274: return ((ASRT*)this)->toPrettyString(indent); break;
|
||||||
default: return std::string(indent, ' ')+"Unimplemented pretty-printing for box "+std::string(data,4,4)+"\n";
|
default: return std::string(indent, ' ')+"Unimplemented pretty-printing for box "+std::string(data,4,4)+"\n"; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ namespace MP4{
|
||||||
data.resize( index + 1 );
|
data.resize( index + 1 );
|
||||||
}
|
}
|
||||||
newData = htons( newData );
|
newData = htons( newData );
|
||||||
memcpy( (char*)data.c_str() + index, (char*)newData, 2 );
|
memcpy( (void*)(data.c_str() + index), (void*)&newData, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
short Box::getInt16( size_t index ) {
|
short Box::getInt16( size_t index ) {
|
||||||
|
@ -109,7 +109,7 @@ namespace MP4{
|
||||||
data.resize( index + 1 );
|
data.resize( index + 1 );
|
||||||
}
|
}
|
||||||
short result;
|
short result;
|
||||||
memcpy( (char*)result, (char*)data.c_str() + index, 2 );
|
memcpy( (void*)&result, (void*)(data.c_str() + index), 2 );
|
||||||
return ntohs(result);
|
return ntohs(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ namespace MP4{
|
||||||
data.resize( index + 3 );
|
data.resize( index + 3 );
|
||||||
}
|
}
|
||||||
newData = htonl( newData );
|
newData = htonl( newData );
|
||||||
memcpy( (char*)data.c_str() + index, (char*)newData, 4 );
|
memcpy( (char*)data.c_str() + index, (char*)&newData, 4 );
|
||||||
}
|
}
|
||||||
|
|
||||||
long Box::getInt32( size_t index ) {
|
long Box::getInt32( size_t index ) {
|
||||||
|
@ -152,7 +152,7 @@ namespace MP4{
|
||||||
}
|
}
|
||||||
long result;
|
long result;
|
||||||
|
|
||||||
memcpy( (char*)result, (char*)data.c_str() + index, 4 );
|
memcpy( (char*)&result, (char*)data.c_str() + index, 4 );
|
||||||
return ntohl(result);
|
return ntohl(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -577,10 +577,10 @@ namespace MP4{
|
||||||
std::string MOOF::toPrettyString( int indent ) {
|
std::string MOOF::toPrettyString( int indent ) {
|
||||||
std::string r;
|
std::string r;
|
||||||
r += std::string(indent, ' ')+"Movie Fragment\n";
|
r += std::string(indent, ' ')+"Movie Fragment\n";
|
||||||
|
|
||||||
for( uint32_t i = 0; i < content.size(); i++ ) {
|
for( uint32_t i = 0; i < content.size(); i++ ) {
|
||||||
r += content[i]->toPrettyString(indent+2);
|
r += content[i]->toPrettyString(indent+2);
|
||||||
}
|
}
|
||||||
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRUN::TRUN() : Box("trun") {
|
TRUN::TRUN() : Box("trun") {
|
||||||
|
|
Loading…
Add table
Reference in a new issue