From c2c415d2ad52612df2d793f1a1187c93ecee235b Mon Sep 17 00:00:00 2001 From: Erik Zandvliet Date: Mon, 1 Aug 2011 21:19:46 +0200 Subject: [PATCH] Sync Commit --- Connector_TS/main.cpp | 37 +++++++++++++++++++++++++------------ TS_Analyser/main.cpp | 2 +- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/Connector_TS/main.cpp b/Connector_TS/main.cpp index c020898e..55270f9a 100644 --- a/Connector_TS/main.cpp +++ b/Connector_TS/main.cpp @@ -18,11 +18,12 @@ class Transport_Packet { public: Transport_Packet( bool NALUStart = false, int PID = 0x100 ); void SetPayload( char * Payload, int PayloadLen, int Offset = 13 ); - void SetPesHeader( ); + void SetPesHeader( int Offset = 4 ); void Write( ); void Write( Socket::Connection conn ); void SetContinuityCounter( int Counter ); void SetMessageLength( int MsgLen ); + void SetAdaptationField( ); private: int PID; char Buffer[188]; @@ -45,16 +46,27 @@ void Transport_Packet::SetContinuityCounter( int Counter ) { Buffer[3] = (char)0x00 + ( Counter & 0x0F ); } -void Transport_Packet::SetPesHeader( ) { - Buffer[4] = (char)0x00; - Buffer[5] = (char)0x00; - Buffer[6] = (char)0x01; - Buffer[7] = (char)0xE0; - Buffer[8] = (char)0xFF; - Buffer[9] = (char)0xFF; - Buffer[10] = (char)0x80; - Buffer[11] = (char)0x00; - Buffer[12] = (char)0x00; +void Transport_Packet::SetPesHeader( int Offset ) { + Buffer[Offset] = (char)0x00; + Buffer[Offset+1] = (char)0x00; + Buffer[Offset+2] = (char)0x01; + Buffer[Offset+3] = (char)0xE0; + Buffer[Offset+4] = (char)0xFF; + Buffer[Offset+5] = (char)0xFF; + Buffer[Offset+6] = (char)0x80; + Buffer[Offset+7] = (char)0x00; + Buffer[Offset+8] = (char)0x00; +} + +void Transport_Packet::SetAdaptationField( ) { + Buffer[3] = ( Buffer[3] & 0x0F ) + 0x30; + Buffer[4] = (char)0x07; + Buffer[5] = (char)0x10; + Buffer[6] = (char)0x00; + Buffer[7] = (char)0x00; + Buffer[8] = (char)0x8C; + Buffer[9] = (char)0xA0; + Buffer[10] = (char)0x7E; } void Transport_Packet::SetPayload( char * Payload, int PayloadLen, int Offset ) { @@ -72,7 +84,8 @@ std::vector WrapNalus( FLV::Tag tag ) { TS = Transport_Packet( true ); TS.SetContinuityCounter( ContinuityCounter ); ContinuityCounter = ( ( ContinuityCounter + 1 ) & 0x0F ); - TS.SetPesHeader( ); + TS.SetAdaptationField( ); + TS.SetPesHeader( 11 ); TS.SetMessageLength( tag.len - 16 ); TS.SetPayload( LeadIn, 4, 13 ); TS.SetPayload( &tag.data[16], 171, 17 ); diff --git a/TS_Analyser/main.cpp b/TS_Analyser/main.cpp index 4e451235..1080c731 100644 --- a/TS_Analyser/main.cpp +++ b/TS_Analyser/main.cpp @@ -438,7 +438,7 @@ int main( ) { } if( ( ( TempChar[1] & 0x40 ) ) && ( ( TempChar[1] & 0x1F ) << 8 ) + ( TempChar[2] ) ) { - fill_pes( PES, TempChar ); + fill_pes( PES, TempChar, ( Adaption == 3 ? 4 + TempChar[4] : 4 ) ); print_pes( PES ); }