comparison DOCS/tech/mpcf.txt @ 17639:56ec8716e25b

some cleanup. enforce decode_delay to not be too high.
author ods15
date Fri, 17 Feb 2006 19:45:35 +0000
parents 363d23eb55d3
children 6b69c5b4b92a
comparison
equal deleted inserted replaced
17638:ee8d71a1b7ba 17639:56ec8716e25b
109 ================= 109 =================
110 110
111 Common elements: 111 Common elements:
112 ---------------- 112 ----------------
113 113
114 packet header:
115 forward ptr v
116
117 reserved_bytes: 114 reserved_bytes:
118 for(i=0; i<forward_ptr - length_of_non_reserved; i++) 115 for(i=0; i<forward_ptr - length_of_non_reserved; i++)
119 reserved u(8) 116 reserved u(8)
120 [a demuxer MUST ignore any reserved bytes 117 [a demuxer MUST ignore any reserved bytes
121 a muxer MUST NOT write any reserved bytes, as this would make it 118 a muxer MUST NOT write any reserved bytes, as this would make it
124 121
125 Headers: 122 Headers:
126 123
127 main header: 124 main header:
128 main_startcode f(64) 125 main_startcode f(64)
129 packet header 126 forward_ptr v
130 version v 127 version v
131 stream_count v 128 stream_count v
132 max_distance v 129 max_distance v
133 tmp_pts=0 130 tmp_pts=0
134 tmp_mul=1 131 tmp_mul=1
168 reserved_bytes 165 reserved_bytes
169 checksum u(32) 166 checksum u(32)
170 167
171 stream_header: 168 stream_header:
172 stream_startcode f(64) 169 stream_startcode f(64)
173 packet_header 170 forward_ptr v
174 stream_id v 171 stream_id v
175 stream_class v 172 stream_class v
176 fourcc vb 173 fourcc vb
177 time_base_nom v 174 time_base_nom v
178 time_base_denom v 175 time_base_denom v
229 } 226 }
230 data 227 data
231 228
232 index: 229 index:
233 index_startcode f(64) 230 index_startcode f(64)
234 packet header 231 forward_ptr v
235 max_pts v 232 max_pts v
236 syncpoints v 233 syncpoints v
237 for(i=0; i<syncpoints; i++){ 234 for(i=0; i<syncpoints; i++){
238 syncpoint_pos_div8 v 235 syncpoint_pos_div8 v
239 } 236 }
294 reserved_bytes 291 reserved_bytes
295 checksum u(32) 292 checksum u(32)
296 293
297 info_packet: (optional) 294 info_packet: (optional)
298 info_startcode f(64) 295 info_startcode f(64)
299 packet header 296 forward_ptr v
300 info_frame 297 info_frame
301 298
302 syncpoint: 299 syncpoint:
303 syncpoint_startcode f(64) 300 syncpoint_startcode f(64)
304 coded_pts v 301 coded_pts v
454 decode_delay 451 decode_delay
455 maximum time between input and output for a codec, used to generate 452 maximum time between input and output for a codec, used to generate
456 dts from pts 453 dts from pts
457 is set to 0 for streams without B-frames, and set to 1 for streams with 454 is set to 0 for streams without B-frames, and set to 1 for streams with
458 B-frames, may be larger for future codecs 455 B-frames, may be larger for future codecs
456 decode_delay MUST NOT be set higher than necessary for a codec.
459 457
460 fixed_fps 458 fixed_fps
461 1 indicates that the fps is fixed 459 1 indicates that the fps is fixed
462 460
463 codec_specific_data 461 codec_specific_data
560 checksum 558 checksum
561 crc32 checksum 559 crc32 checksum
562 checksum is calculated for the area pointed to by forward_ptr not 560 checksum is calculated for the area pointed to by forward_ptr not
563 including the checksum itself (from first byte after the 561 including the checksum itself (from first byte after the
564 forward_ptr until last byte before the checksum). 562 forward_ptr until last byte before the checksum).
563 In the case of info frames, covers area from begginning of frame.
565 564
566 syncpoint_checksum 565 syncpoint_checksum
567 crc32 checksum 566 crc32 checksum
568 checksum covers from first byte after syncpoint startcode until last 567 checksum covers from first byte after syncpoint startcode until last
569 byte before the syncpoint_checksum. 568 byte before the syncpoint_checksum.
727 ------------ 726 ------------
728 727
729 Info frames can be used to describe the file or some part of it (chapters) 728 Info frames can be used to describe the file or some part of it (chapters)
730 729
731 730
732 Unknown packets:
733 ----------------
734
735 MUST be ignored by the demuxer
736
737
738 demuxer (non-normative): 731 demuxer (non-normative):
739 ------------------------ 732 ------------------------
740 733
741 in the absence of a valid header at the beginning, players SHOULD search for 734 in the absence of a valid header at the beginning, players SHOULD search for
742 backup headers starting at offset 2^x; for each x players SHOULD end their 735 backup headers starting at offset 2^x; for each x players SHOULD end their