ABST box finished
This commit is contained in:
parent
d008c0bd6b
commit
0ea566e462
1 changed files with 26 additions and 14 deletions
|
@ -118,9 +118,11 @@ void Box_abst::WriteContent( ) {
|
|||
|
||||
for( uint32_t i = 0; i < Servers.size(); i++ ) {
|
||||
serializedServers.append(Servers[i].ServerBaseUrl.c_str());
|
||||
serializedServers += '\0';
|
||||
}
|
||||
for( uint32_t i = 0; i < Qualities.size(); i++ ) {
|
||||
serializedQualities.append(Qualities[i].QualityModifier.c_str());
|
||||
serializedQualities += '\0';
|
||||
}
|
||||
for( uint32_t i = 0; i < SegmentRunTables.size(); i++ ) {
|
||||
current=SegmentRunTables[i];
|
||||
|
@ -136,21 +138,31 @@ void Box_abst::WriteContent( ) {
|
|||
serializedFragments.append((char*)current->GetBoxedata(),current->GetBoxedDataSize());
|
||||
}
|
||||
}
|
||||
uint32_t OffsetServerEntryCount = 29 + curMovieIdentifier.size();
|
||||
uint32_t OffsetQualityEntryCount = OffsetServerEntryCount + 4 + SerializedServers.size();
|
||||
uint32_t OffsetDrmData = OffsetQualityEntryCount + 4 + SerializedServers.size();
|
||||
uint32_t OffsetServerEntryCount = 29 + curMovieIdentifier.size() + 1;
|
||||
uint32_t OffsetQualityEntryCount = OffsetServerEntryCount + 4 + serializedServers.size();
|
||||
uint32_t OffsetDrmData = OffsetQualityEntryCount + 4 + serializedQualities.size();
|
||||
uint32_t OffsetMetaData = OffsetDrmData + curDRM.size() + 1;
|
||||
uint32_t OffsetSegmentRuntableCount = OffsetMetaData + curMetaData.size() + 1;
|
||||
uint32_t OffsetFragmentRuntableCount = OffsetSegmentRuntableCount + 4 + serializedSegments.size();
|
||||
|
||||
temp[0] = 0 & ( curProfile << 6 ) & ( (uint8_t)isLive << 7 ) & ( (uint8_t)isUpdate << 7 );
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(curBootstrapInfoVersion),4);
|
||||
Container->SetPayload((uint32_t)1,temp,8);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(curTimeScale),9);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),13);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(curMediaTime),17);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),21);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(curSMPTE),25);
|
||||
Container->SetPayload((uint32_t)curMovieIdentifier.size(),(uint8_t*)curMovieIdentifier.c_str(),29);
|
||||
|
||||
//CalcOffsets
|
||||
Container->SetPayload((uint32_t)serializedSegments.size(),(uint8_t*)serializedSegments.c_str());
|
||||
Container->SetPayload((uint32_t)serializedFragments.size(),(uint8_t*)serializedFragments.c_str());
|
||||
Container->SetPayload((uint32_t)serializedFragments.size(),(uint8_t*)serializedFragments.c_str(),OffsetFragmentRuntableCount+4);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(FragmentAmount),OffsetFragmentRuntableCount);
|
||||
Container->SetPayload((uint32_t)serializedSegments.size(),(uint8_t*)serializedSegments.c_str(),OffsetSegmentRuntableCount+4);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(SegmentAmount),OffsetSegmentRuntableCount);
|
||||
Container->SetPauload((uint32_t)curMetaData.size()+1,(uint8_t*)curMetaData.c_str(),OffsetMetaData);
|
||||
Container->SetPayload((uint32_t)curDRM.size()+1,(uint8_t*)curDRM.c_str(),OffsetDrmData);
|
||||
Container->SetPayload((uint32_t)serializedQualities.size(),(uint8_t*)serializedQualities.c_str(),OffsetQualityEntryCount+4);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(Qualities.size()),OffsetQualityEntryCount);
|
||||
Container->SetPayload((uint32_t)serializedServers.size(),(uint8_t*)serializedServers.c_str(),OffsetServerEntryCount+4);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(Servers.size()),OffsetServerEntryCount);
|
||||
Container->SetPayload((uint32_t)curMovieIdentifier.size()+1,(uint8_t*)curMovieIdentifier.c_str(),29);//+1 for \0-terminated string...
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(curSMPTE),25);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),21);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(curMediaTime),17);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),13);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(curTimeScale),9);
|
||||
Container->SetPayload((uint32_t)1,temp,8);
|
||||
Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(curBootstrapInfoVersion),4);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue