Mercurial > mplayer.hg
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 |