comparison DOCS/tech/mpcf.txt @ 17796:6edc4492b777

universal timestamp (= stream_id + timestamp in stream timebase) -> simplify add that thing to info packets as type too
author michael
date Fri, 10 Mar 2006 14:10:07 +0000
parents a4e7458d61ed
children b1d80d05eaa8
comparison
equal deleted inserted replaced
17795:a4e7458d61ed 17796:6edc4492b777
101 101
102 vb (variable length binary data or string) 102 vb (variable length binary data or string)
103 length v 103 length v
104 value b 104 value b
105 105
106 t (v coded universal timestamp)
107 tmp v
108 stream_id= tmp % stream_count
109 value= (tmp / stream_count) * stream[ stream_id ].timebase
106 110
107 111
108 Bitstream syntax: 112 Bitstream syntax:
109 ================= 113 =================
110 114
207 checksum u(32) 211 checksum u(32)
208 } 212 }
209 data 213 data
210 214
211 index: 215 index:
212 max_pts v 216 max_pts t
213 syncpoints v 217 syncpoints v
214 for(i=0; i<syncpoints; i++){ 218 for(i=0; i<syncpoints; i++){
215 syncpoint_pos_div8 v 219 syncpoint_pos_div8 v
216 } 220 }
217 for(i=0; i<stream_count; i++){ 221 for(i=0; i<stream_count; i++){
251 index_ptr u(64) 255 index_ptr u(64)
252 256
253 info_packet: 257 info_packet:
254 stream_id_plus1 v 258 stream_id_plus1 v
255 chapter_id v 259 chapter_id v
256 chapter_start v 260 chapter_start t
257 chapter_len v 261 chapter_len v
258 count v 262 count v
259 for(i=0; i<count; i++){ 263 for(i=0; i<count; i++){
260 name vb 264 name vb
261 value s 265 value s
266 type vb 270 type vb
267 value vb 271 value vb
268 }else if (value==-3){ 272 }else if (value==-3){
269 type= "s" 273 type= "s"
270 value s 274 value s
271 }else if (value<-3){ 275 }else if (value==-4){
276 type= "t"
277 value t
278 }else if (value<-4){
272 type= "r" 279 type= "r"
273 value.den= -value-3 280 value.den= -value-4
274 value.num s 281 value.num s
275 }else{ 282 }else{
276 type= "v" 283 type= "v"
277 } 284 }
278 } 285 }
279 286
280 syncpoint: 287 syncpoint:
281 coded_pts v 288 global_key_pts t
282 stream = coded_pts % stream_count
283 global_key_pts = coded_pts/stream_count
284 back_ptr_div8 v
285 289
286 Complete definition: 290 Complete definition:
287 291
288 file: 292 file:
289 file_id_string 293 file_id_string
617 621
618 Index tags: 622 Index tags:
619 ----------- 623 -----------
620 624
621 max_pts 625 max_pts
622 s = max_pts % stream_count 626 The highest pts in the entire file
623 pts = max_pts / stream_count
624 The highest pts in the entire file in the timebase of stream 's' .
625 627
626 syncpoint_pos_div8 628 syncpoint_pos_div8
627 offset from begginning of file to up to 7 bytes before the syncpoint 629 offset from begginning of file to up to 7 bytes before the syncpoint
628 referred to in this index entry. Relative to position of last 630 referred to in this index entry. Relative to position of last
629 syncpoint. 631 syncpoint.
662 chapter. chapter_id MUST be unique to the region it represents. 664 chapter. chapter_id MUST be unique to the region it represents.
663 chapter_id n MUST not be used unless there are at least n chapters in the 665 chapter_id n MUST not be used unless there are at least n chapters in the
664 file 666 file
665 667
666 chapter_start 668 chapter_start
667 s= chapter_start % stream_count 669 timestamp of start of chapter
668 timestamp= chapter_start / stream_count
669 timestamp of start of chapter in timebase of stream 's'.
670 670
671 chapter_len 671 chapter_len
672 Length of chapter in same timebase of chapter_start. 672 Length of chapter in same timebase of chapter_start.
673 673
674 type 674 type