winlin

add ts_info doc

  1 +AUDIO 0x0F ISO/IEC 13818-7 Audio with ADTS transport syntax
  2 +110x xxxx ISO/IEC 13818-3 or ISO/IEC 11172-3 or ISO/IEC 13818-7 or ISO/IEC 14496-3 audio stream number x xxxx
  3 +(gdb) p /x pkt.payload[0].pmt[0].at(1)[0]
  4 +$55 = {stream_type = 0xf, elementary_PID = 0x101}
  5 +========================================================================
  6 +(gdb) x /584xb msg->packet_data
  7 +TS(AAC-ADTS) header, 7bytes
  8 +0x60a320: 0xff 0xf1 0x5c 0x80 0x23 0xdf 0xfc
  9 +FLV(AAC) header, 2bytes
  10 +0xaf 0x01
  11 +TS(AAC-ADTS) RAW data,
  12 +0x21 0x1a 0xcb 0xfe 0xfc 0xff 0xff 0xff 0x98
  13 +0x60a330: 0xb1 0x52 0xd8 0x88 0x43 0x28 0xc4 0xcb
  14 +0x60a338: 0x95 0x2c 0x9a 0x09 0x5c 0x00 0x9c 0xfb
  15 +0x60a340: 0x50 0xb9 0x3d 0xa8 0x96 0x02 0x47 0x68
  16 +0x60a348: 0xfb 0xb3 0x1c 0x26 0x2e 0xdb 0xac 0x8a
  17 +0x60a350: 0xec 0x81 0x65 0xae 0x56 0x45 0x65 0x40
  18 +0x60a358: 0xcb 0x8f 0xa5 0x6a 0xe8 0x18 0x05 0x90
  19 +0x60a360: 0x8e 0x24 0xb7 0x55 0x72 0x0a 0x6d 0x07
  20 +0x60a368: 0x9b 0xa5 0xca 0xd2 0xc8 0x6d 0x0f 0xd2
  21 +0x60a370: 0x42 0xf0 0x83 0x1d 0x24 0x60 0xba 0x89
  22 +0x60a378: 0x57 0x3f 0x70 0x0f 0xc7 0x18 0xbc 0xc6
  23 +0x60a380: 0x0a 0xf2 0x2f 0x75 0x46 0x94 0x0b 0x81
  24 +0x60a388: 0x24 0x2e 0xfa 0x9d 0xa1 0x50 0x17 0x04
  25 +0x60a390: 0x50 0x0b 0xde 0x86 0xe5 0x80 0x0a 0x68
  26 +0x60a398: 0x56 0x30 0x1d 0xbf 0xf5 0x56 0x87 0xab
  27 +0x60a3a0: 0x0f 0x30 0x8c 0x01 0x2b 0x3d 0x56 0xa6
  28 +0x60a3a8: 0xc7 0xe5 0xe1 0x83 0x76 0x8a 0xd4 0x7e
  29 +0x60a3b0: 0xc0 0x04 0xad 0x31 0x0c 0xe1 0x3b 0x80
  30 +0x60a3b8: 0x41 0x0d 0x00 0xb6 0x88 0xb0 0xe3 0x62
  31 +0x60a3c0: 0xda 0xf3 0xb2 0x58 0x12 0x1c 0x9a 0x5e
  32 +0x60a3c8: 0x4f 0x9c 0x63 0x5c 0xc1 0x99 0xc2 0x5e
  33 +0x60a3d0: 0xc6 0x82 0x5e 0x95 0x9d 0x80 0x91 0x57
  34 +0x60a3d8: 0x66 0x22 0xaf 0x60 0x68 0xcc 0x9d 0x40
  35 +0x60a3e0: 0x16 0xc0 0x6c 0xee 0x69 0xae 0xda 0x3f
  36 +0x60a3e8: 0x1e 0xe6 0x2e 0x55 0xbc 0xf8 0x60 0xda
  37 +0x60a3f0: 0x5f 0x0a 0x08 0x6e 0xbb 0x82 0x48 0x53
  38 +0x60a3f8: 0x46 0x29 0x10 0xb2 0x99 0x50 0x69 0xe2
  39 +0x60a400: 0x74 0xa9 0xf1 0x2e 0xce 0x40 0x0c 0x70
  40 +0x60a408: 0xce 0x92 0x17 0x5c 0x02 0xc0 0x6d 0x19
  41 +0x60a410: 0xc0 0x17 0x58 0xb2 0x16 0xb9 0x2c 0x55
  42 +0x60a418: 0xc0 0xe2 0xbe 0x75 0xe4 0x8e 0xb9 0xd5
  43 +0x60a420: 0x24 0x12 0x5c 0x53 0x1c 0xa5 0xb5 0x78
  44 +0x60a428: 0x05 0x1a 0x74 0x85 0xd5 0x00 0x6d 0x00
  45 +0x60a430: 0x20 0xc0 0x00 0x34 0x80 0x00 0x00 0x00
  46 +0x60a438: 0x00 0x00 0x00 0x00 0x00 0x70
  47 +========================================================================
  48 +TS(AAC-ADTS) header, 7bytes
  49 +0xff 0xf1 0x5c 0x80 0x25 0x5f 0xfc
  50 +FLV(AAC) header, 2bytes
  51 +0xaf 0x01
  52 +TS(AAC-ADTS) RAW data,
  53 +0x21 0x1a 0xcf
  54 +0x60a448: 0x77 0xff 0xff 0x7f 0xff 0x98 0xa6 0xb1
  55 +0x60a450: 0x85 0x0a 0x11 0x70 0x05 0xbd 0x0b 0xbb
  56 +0x60a458: 0x88 0x80 0x59 0x19 0xa4 0x89 0x0d 0x68
  57 +0x60a460: 0xb9 0x01 0xb2 0x4d 0x7d 0xd7 0x18 0xe5
  58 +0x60a468: 0x77 0x1e 0x4b 0x5b 0xa1 0xa9 0xd5 0x2a
  59 +0x60a470: 0x12 0x76 0xcb 0x35 0xb8 0x27 0xf1 0xab
  60 +0x60a478: 0xf0 0xf8 0xb7 0xe5 0xcf 0x49 0xaa 0x15
  61 +0x60a480: 0x53 0x9a 0xdf 0x6d 0x9c 0x76 0xe4 0xcb
  62 +0x60a488: 0x2d 0x83 0x88 0x31 0x8d 0x06 0x03 0xb4
  63 +0x60a490: 0xc5 0x68 0xf3 0xa9 0x70 0x8d 0x63 0x96
  64 +0x60a498: 0x02 0xa3 0xf5 0xf6 0x69 0x44 0xa4 0x3e
  65 +0x60a4a0: 0x1d 0x27 0x68 0x6c 0x37 0x58 0x46 0xe5
  66 +0x60a4a8: 0xc5 0x26 0x21 0x1a 0x2f 0xee 0xa4 0x71
  67 +0x60a4b0: 0x02 0x29 0x44 0x16 0x96 0x7e 0x4b 0x16
  68 +0x60a4b8: 0x76 0x47 0x55 0x8c 0x44 0x28 0xbc 0x42
  69 +0x60a4c0: 0x1f 0xab 0x54 0x5d 0xf6 0xba 0xc3 0x73
  70 +0x60a4c8: 0x69 0x99 0xa5 0x72 0x12 0xce 0x8c 0xd7
  71 +0x60a4d0: 0xdf 0xae 0x3e 0xfa 0x13 0x14 0x96 0x31
  72 +0x60a4d8: 0x20 0xca 0x2e 0x00 0x95 0x5c 0x44 0x84
  73 +0x60a4e0: 0x89 0x05 0xaf 0x4a 0xcb 0xab 0x40 0xd7
  74 +0x60a4e8: 0x9a 0x25 0x80 0xc7 0x67 0x6e 0x87 0x9e
  75 +0x60a4f0: 0xe5 0x74 0xb7 0xc3 0x40 0xc3 0x27 0x83
  76 +0x60a4f8: 0x3a 0x1d 0xc4 0x6c 0xef 0xa2 0x2f 0xd0
  77 +0x60a500: 0xc4 0xf0 0x2e 0xaa 0x85 0xb0 0x82 0xc3
  78 +0x60a508: 0x48 0x64 0x39 0x32 0x57 0x7a 0x45 0x6a
  79 +0x60a510: 0x58 0xc6 0x82 0x40 0xaa 0x02 0xa3 0xea
  80 +0x60a518: 0xdd 0xbb 0x58 0x3d 0x54 0x8d 0x2a 0xd5
  81 +0x60a520: 0x66 0xc8 0xc1 0x7b 0x89 0x83 0x06 0xe0
  82 +0x60a528: 0xaf 0x3d 0x56 0x00 0x4b 0x40 0x06 0x4c
  83 +0x60a530: 0xb1 0x25 0x74 0xcb 0x0e 0x5a 0x9b 0x70
  84 +0x60a538: 0xaa 0x9d 0x68 0x8d 0xaf 0x0e 0xf1 0xe7
  85 +0x60a540: 0x6e 0x6b 0x4f 0xc4 0x60 0x48 0x88 0x97
  86 +0x60a548: 0x3f 0xc6 0x47 0xe7 0xf3 0xdb 0xb3 0x8e
  87 +0x60a550: 0x36 0xad 0x21 0x55 0x40 0x49 0x40 0x08
  88 +0x60a558: 0x0c 0x00 0x00 0x0d 0x60 0x00 0x00 0x00
  89 +0x60a560: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x1c
  90 +
  91 +
  92 +
  93 +VIDEO 0x15-0x7F ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Reserved
  94 +1110 xxxx ITU-T Rec. H.262 | ISO/IEC 13818-2 or ISO/IEC 11172-2 or ISO/IEC 14496-2 video stream number xxxx
  95 +(gdb) p /x pkt.payload[0].pmt[0].at(0)[0]
  96 +$54 = {stream_type = 0x1b, elementary_PID = 0x100}
  97 +========================================================================
  98 +(gdb) p msg[0]
  99 +$6 = {_vptr.TSMessage = 0x407b70, pid = 256, type = TSPidTypeVideo, stream_type = TSStreamTypeVideoH264,
  100 + PES_packet_length = 35808, stream_id = 224 '\340', packet_start_code_prefix = 1, packet_header_size = 13,
  101 + parsed_packet_size = 35795, packet_data_size = 35795, packet_data = 0x60b300 ""}
  102 +(gdb) x /356xb msg->packet_data
  103 +========================================================================
  104 +TS(H264) header
  105 +0x00 0x00 0x00 0x01
  106 +0x09 0xf0
  107 +0x00 0x00 0x00 0x01
  108 +========================================================================
  109 +FLV(H264) header
  110 +0x00 0x00 0x00 0x00 0x01 0x64 0x00 0x28
  111 +0xff 0xe1 0x00 0x1e
  112 +========================================================================
  113 +H264 Sequence header [section 0]
  114 +0x67 0x64 0x00 0x28 0xac 0xd1
  115 +0x60b310: 0xc0 0x50 0x05 0xbb 0xff 0x00 0x2d 0x00
  116 +0x60b318: 0x22 0x10 0x00 0x00 0x03 0x00 0x10 0x00
  117 +0x60b320: 0x00 0x03 0x03 0x08 0xf1 0x83 0x11 0xe0
  118 +========================================================================
  119 +TS(H264) header
  120 +0x00 0x00 0x00 0x01
  121 +========================================================================
  122 +H264 Sequence header [section 1]
  123 +0x68 0xe9 0xab 0x2c 0x8b
  124 +========================================================================
  125 +
  126 +TS(H264) header, xbytes
  127 +0x00 0x00 0x01
  128 +========================================================================
  129 +FLV(H264) header, xbytes
  130 +0x01 0x00 0x00 0x2a 0x00 0x00 0x00 0x02
  131 +0x09 0xf0 0x00 0x00 0x00 0x1e
  132 +H264 Sequence header [section 0]
  133 +0x67 0x64 0x00 0x28 0xac 0xd1
  134 +0xc0 0x50 0x05 0xbb 0xff 0x00 0x2d 0x00
  135 +0x22 0x10 0x00 0x00 0x03 0x00 0x10 0x00
  136 +0x00 0x03 0x03 0x08 0xf1 0x83 0x11 0xe0
  137 +FLV header?
  138 +0x00 0x00 0x00 0x05
  139 +H264 Sequence header [section 1]
  140 +0x68 0xe9 0xab 0x2c 0x8b
  141 +FLV header?
  142 +0x00 0x00 0x8b 0x9f
  143 +========================================================================
  144 +0x65 0x88 0x84 0x00
  145 +0x60b338: 0x42 0xbf 0x4e 0x19 0x2a 0x00 0x0b 0xa7
  146 +0x60b340: 0xeb 0x07 0xb7 0xfc 0xc2 0x24 0x8d 0xfa
  147 +0x60b348: 0xc0 0xaf 0x2a 0x76 0x53 0xc4 0x2d 0x80
  148 +0x60b350: 0x8f 0xc8 0xba 0x2e 0x2b 0xb7 0x18 0x9f
  149 +0x60b358: 0xba 0x47 0x10 0x8b 0xc7 0x93 0x92 0x89
  150 +0x60b360: 0x00 0x2d 0xdf 0x3b 0xcb 0x51 0xfe 0x27
  151 +0x60b368: 0x13 0xe3 0x29 0x48 0x71 0xf7 0x70 0x07
  152 +0x60b370: 0xf4 0x5c 0xb4 0xf0 0xbd 0x65 0x76 0xa1
  153 +0x60b378: 0x4e 0x96 0xd7 0x2c 0x66 0xdf 0xc3 0x9e
  154 +0x60b380: 0xad 0x23 0x4b 0xc3 0xe1 0xf8 0xb4 0x59
  155 +0x60b388: 0x24 0x59 0xf3 0x7b 0x8e 0xb0 0xa6 0x95
  156 +0x60b390: 0xdf 0x4b 0x05 0x90 0xbd 0x87 0x87 0x99
  157 +0x60b398: 0xd5 0xc1 0xb6 0x9f 0x89 0xff 0x2f 0x7d
  158 +0x60b3a0: 0xc6 0xac 0x0c 0x8f 0x00 0x07 0x28 0xac
  159 +0x60b3a8: 0x09 0xf7 0x87 0xc7 0xc8 0xb6 0x19 0xc3
  160 +0x60b3b0: 0xda 0x3b 0x3d 0x9d 0x00 0x5f 0xc7 0xe6
  161 +0x60b3b8: 0x39 0xc5 0xc4 0x58 0x76 0xac 0xaa 0x16
  162 +0x60b3c0: 0xb7 0x05 0x5d 0xe4 0xe7 0x9d 0xda 0x97
  163 +0x60b3c8: 0x1c 0x3c 0xeb 0x66 0xf1 0xd9 0xa8 0x6e
  164 +0x60b3d0: 0xae 0xdf 0xbd 0xa9 0x36 0xc9 0x86 0x88
  165 +0x60b3d8: 0x54 0x4b 0xb8 0xcc 0xe7 0xa6 0x60 0x40
  166 +0x60b3e0: 0x52 0xd9 0x32 0xf4 0xf0 0x2c 0x4f 0xf5
  167 +0x60b3e8: 0xc0 0xce 0x74 0x61 0x4a 0xc8 0x65 0x6e
  168 +0x60b3f0: 0x92 0x8f 0xc8 0x63 0xd2 0xca 0xcc 0xe1
  169 +0x60b3f8: 0x65 0xa6 0x3b 0x6b 0xfd 0x7b 0x66 0x2a
  170 +0x60b400: 0x0a 0xea 0x86 0x93 0xce 0x90 0xe7 0x9b
  171 +0x60b408: 0x75 0x92 0x0d 0x6f 0xfa 0xa2 0xac 0x26
  172 +0x60b410: 0xae 0xb1 0xc3 0x4c 0xab 0x92 0xc6 0xae
  173 +0x60b418: 0x7a 0xcf 0xfa 0x0c 0xe7 0xc4 0x00 0x62
  174 +0x60b420: 0xc3 0xc8 0x49 0xbd 0x5e 0xb0 0xd3 0x4f
  175 +0x60b428: 0xb2 0x60 0xf4 0x53 0xe8 0xba 0xa0 0xf3
  176 +0x60b430: 0xe5 0xb4 0xf4 0xb1 0x15 0x9d 0x28 0x4f
  177 +0x60b438: 0x7f 0xc9 0x0a 0x50 0x90 0x4a 0xc3 0x19
  178 +0x60b440: 0xeb 0x50 0xee 0xde 0xe4 0x7d 0xed 0x69
  179 +0x60b448: 0x37 0x50 0x5d 0x0f 0x26 0x8b 0x96 0x57
  180 +0x60b450: 0x3e 0x5c 0x5f 0x68 0xbf 0xb8 0xb0 0xcb
  181 +0x60b458: 0x90 0x9c 0xb2 0x18 0x23 0x1f 0x62 0xa5
  182 +0x60b460: 0x6f 0x37 0x9f 0x3a
@@ -48,11 +48,6 @@ SECTION 2 ¨C TECHNICAL ELEMENTS @@ -48,11 +48,6 @@ SECTION 2 ¨C TECHNICAL ELEMENTS
48 2.4.4.6 Conditional access Table 48 2.4.4.6 Conditional access Table
49 2.5 Program Stream bitstream requirements 49 2.5 Program Stream bitstream requirements
50 2.6 Program and program element descriptors 50 2.6 Program and program element descriptors
51 - 2.6.2 Video stream descriptor  
52 - 2.6.4 Audio stream descriptor  
53 - 2.6.34 IBP descriptor  
54 - 2.6.37 Semantic definition of fields in MPEG-4 video descriptor  
55 - 2.6.38 MPEG-4 audio descriptor  
56 2.7 Restrictions on the multiplexed stream semantics 51 2.7 Restrictions on the multiplexed stream semantics
57 Annex A ¨C CRC Decoder Model 52 Annex A ¨C CRC Decoder Model
58 */ 53 */
@@ -1641,6 +1636,14 @@ int TSHeader::demux(TSContext* ctx, TSPacket* pkt, u_int8_t* start, u_int8_t* la @@ -1641,6 +1636,14 @@ int TSHeader::demux(TSContext* ctx, TSPacket* pkt, u_int8_t* start, u_int8_t* la
1641 } 1636 }
1642 1637
1643 /** 1638 /**
  1639 +* Annex B Byte stream format
  1640 +*/
  1641 +class TSH264Codec
  1642 +{
  1643 +public:
  1644 +};
  1645 +
  1646 +/**
1644 * 6.2 Audio Data Transport Stream, ADTS 1647 * 6.2 Audio Data Transport Stream, ADTS
1645 */ 1648 */
1646 class TSAacAdts 1649 class TSAacAdts
@@ -393,6 +393,11 @@ public: @@ -393,6 +393,11 @@ public:
393 393
394 /** 394 /**
395 * the decoded message payload. 395 * the decoded message payload.
  396 +* @remark we seperate the packet from message,
  397 +* for the packet focus on logic and domain data,
  398 +* the message bind to the protocol and focus on protocol, such as header.
  399 +* we can merge the message and packet, using OOAD hierachy, packet extends from message,
  400 +* it's better for me to use components -- the message use the packet as payload.
396 */ 401 */
397 class SrsPacket 402 class SrsPacket
398 { 403 {