Sync Commit
This commit is contained in:
parent
9369f5f08f
commit
c2c415d2ad
2 changed files with 26 additions and 13 deletions
|
@ -18,11 +18,12 @@ class Transport_Packet {
|
||||||
public:
|
public:
|
||||||
Transport_Packet( bool NALUStart = false, int PID = 0x100 );
|
Transport_Packet( bool NALUStart = false, int PID = 0x100 );
|
||||||
void SetPayload( char * Payload, int PayloadLen, int Offset = 13 );
|
void SetPayload( char * Payload, int PayloadLen, int Offset = 13 );
|
||||||
void SetPesHeader( );
|
void SetPesHeader( int Offset = 4 );
|
||||||
void Write( );
|
void Write( );
|
||||||
void Write( Socket::Connection conn );
|
void Write( Socket::Connection conn );
|
||||||
void SetContinuityCounter( int Counter );
|
void SetContinuityCounter( int Counter );
|
||||||
void SetMessageLength( int MsgLen );
|
void SetMessageLength( int MsgLen );
|
||||||
|
void SetAdaptationField( );
|
||||||
private:
|
private:
|
||||||
int PID;
|
int PID;
|
||||||
char Buffer[188];
|
char Buffer[188];
|
||||||
|
@ -45,16 +46,27 @@ void Transport_Packet::SetContinuityCounter( int Counter ) {
|
||||||
Buffer[3] = (char)0x00 + ( Counter & 0x0F );
|
Buffer[3] = (char)0x00 + ( Counter & 0x0F );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Transport_Packet::SetPesHeader( ) {
|
void Transport_Packet::SetPesHeader( int Offset ) {
|
||||||
Buffer[4] = (char)0x00;
|
Buffer[Offset] = (char)0x00;
|
||||||
Buffer[5] = (char)0x00;
|
Buffer[Offset+1] = (char)0x00;
|
||||||
Buffer[6] = (char)0x01;
|
Buffer[Offset+2] = (char)0x01;
|
||||||
Buffer[7] = (char)0xE0;
|
Buffer[Offset+3] = (char)0xE0;
|
||||||
Buffer[8] = (char)0xFF;
|
Buffer[Offset+4] = (char)0xFF;
|
||||||
Buffer[9] = (char)0xFF;
|
Buffer[Offset+5] = (char)0xFF;
|
||||||
Buffer[10] = (char)0x80;
|
Buffer[Offset+6] = (char)0x80;
|
||||||
Buffer[11] = (char)0x00;
|
Buffer[Offset+7] = (char)0x00;
|
||||||
Buffer[12] = (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 ) {
|
void Transport_Packet::SetPayload( char * Payload, int PayloadLen, int Offset ) {
|
||||||
|
@ -72,7 +84,8 @@ std::vector<Transport_Packet> WrapNalus( FLV::Tag tag ) {
|
||||||
TS = Transport_Packet( true );
|
TS = Transport_Packet( true );
|
||||||
TS.SetContinuityCounter( ContinuityCounter );
|
TS.SetContinuityCounter( ContinuityCounter );
|
||||||
ContinuityCounter = ( ( ContinuityCounter + 1 ) & 0x0F );
|
ContinuityCounter = ( ( ContinuityCounter + 1 ) & 0x0F );
|
||||||
TS.SetPesHeader( );
|
TS.SetAdaptationField( );
|
||||||
|
TS.SetPesHeader( 11 );
|
||||||
TS.SetMessageLength( tag.len - 16 );
|
TS.SetMessageLength( tag.len - 16 );
|
||||||
TS.SetPayload( LeadIn, 4, 13 );
|
TS.SetPayload( LeadIn, 4, 13 );
|
||||||
TS.SetPayload( &tag.data[16], 171, 17 );
|
TS.SetPayload( &tag.data[16], 171, 17 );
|
||||||
|
|
|
@ -438,7 +438,7 @@ int main( ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if( ( ( TempChar[1] & 0x40 ) ) && ( ( TempChar[1] & 0x1F ) << 8 ) + ( TempChar[2] ) ) {
|
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 );
|
print_pes( PES );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue