Changes for working TS support

This commit is contained in:
Erik Zandvliet 2012-12-27 22:15:43 +01:00
parent b45153d051
commit d925bdfbe3

View file

@ -57,30 +57,32 @@ int main( ) {
(DTMIData[2] << 8) + DTMIData[3]; (DTMIData[2] << 8) + DTMIData[3];
DTMIData.erase(0,4);//Erase the first four characters; DTMIData.erase(0,4);//Erase the first four characters;
TSType = (int)DTMIData[0] & 0x1F; TSType = (int)DTMIData[0] & 0x1F;
if( TSType == 0x05 ) { if( !( TSType == 0x09 ) ) {// || TSType == 0x07 || TSType == 0x08 ) ) {
if( FirstPic ) { if( TSType == 0x05 ) {
ToPack += avccbox.asAnnexB( ); if( FirstPic ) {
FirstPic = false; ToPack += avccbox.asAnnexB( );
} FirstPic = false;
if( IsKeyFrame ) { }
if( !FirstKeyFrame && FirstIDRInKeyFrame ) { if( IsKeyFrame ) {
if( !FirstKeyFrame && FirstIDRInKeyFrame ) {
ToPack.append(TS::NalHeader,4);
FirstIDRInKeyFrame = false;
} else {
ToPack.append(TS::ShortNalHeader,3);
}
}
} else if ( TSType == 0x01 ) {
if( FirstPic ) {
ToPack.append(TS::NalHeader,4); ToPack.append(TS::NalHeader,4);
FirstIDRInKeyFrame = false; FirstPic = false;
} else { } else {
ToPack.append(TS::ShortNalHeader,3); ToPack.append(TS::ShortNalHeader,3);
} }
}
} else if ( TSType == 0x01 ) {
if( FirstPic ) {
ToPack.append(TS::NalHeader,4);
FirstPic = false;
} else { } else {
ToPack.append(TS::ShortNalHeader,3); ToPack.append(TS::NalHeader,4);
} }
} else { ToPack.append(DTMIData,0,ThisNaluSize);
ToPack.append(TS::NalHeader,4);
} }
ToPack.append(DTMIData,0,ThisNaluSize);
DTMIData.erase(0,ThisNaluSize); DTMIData.erase(0,ThisNaluSize);
} }
WritePesHeader = true; WritePesHeader = true;
@ -135,7 +137,6 @@ int main( ) {
AudioCounter ++; AudioCounter ++;
if( WritePesHeader ) { if( WritePesHeader ) {
PackData.UnitStart( 1 ); PackData.UnitStart( 1 );
PackData.RandomAccess( 1 );
PackData.AddStuffing( 184 - (14 + ToPack.size()) ); PackData.AddStuffing( 184 - (14 + ToPack.size()) );
PackData.PESAudioLeadIn( ToPack.size(), TimeStamp ); PackData.PESAudioLeadIn( ToPack.size(), TimeStamp );
WritePesHeader = false; WritePesHeader = false;