Mercurial > mplayer.hg
comparison DOCS/tech/mpcf.txt @ 17533:86a9a60ef596
Index repetition
author | ods15 |
---|---|
date | Sat, 04 Feb 2006 08:54:31 +0000 |
parents | 724816ab19be |
children | 114699930136 |
comparison
equal
deleted
inserted
replaced
17532:724816ab19be | 17533:86a9a60ef596 |
---|---|
297 | 297 |
298 Complete definition: | 298 Complete definition: |
299 | 299 |
300 file: | 300 file: |
301 file_id_string | 301 file_id_string |
302 while(!eof && next_code != index_startcode){ | 302 while(!eof){ |
303 main_header | 303 main_header |
304 for(i=0; i<stream_count; i++){ | 304 for(i=0; i<stream_count; i++){ |
305 if(next_packet==video_stream_header) | 305 if(next_packet==video_stream_header) |
306 video_stream_header | 306 video_stream_header |
307 else if(next_packet==audio_stream_header) | 307 else if(next_packet==audio_stream_header) |
310 other_stream_header | 310 other_stream_header |
311 } | 311 } |
312 while(next_code == info_startcode){ | 312 while(next_code == info_startcode){ |
313 info_packet | 313 info_packet |
314 } | 314 } |
315 while(next_code != main_startcode){ | 315 if(next_code == index_startcode){ |
316 index | |
317 } | |
318 if (!eof) while(next_code != main_startcode){ | |
316 if(next_code == syncpoint_startcode) | 319 if(next_code == syncpoint_startcode) |
317 syncpoint | 320 syncpoint |
318 frame | 321 frame |
319 } | 322 } |
320 } | 323 } |
321 if (next_code == index_startcode){ | 324 if (has_index){ |
322 index | |
323 index_ptr u(64) | 325 index_ptr u(64) |
324 } | 326 } |
325 | 327 |
326 | 328 |
327 Tag description: | 329 Tag description: |
588 that EOR. EOR is unset by the first keyframe after it. | 590 that EOR. EOR is unset by the first keyframe after it. |
589 | 591 |
590 index_ptr | 592 index_ptr |
591 Length in bytes from the first byte of the index startcode to the first | 593 Length in bytes from the first byte of the index startcode to the first |
592 byte of the index_ptr. If there is no index, index_ptr MUST NOT be | 594 byte of the index_ptr. If there is no index, index_ptr MUST NOT be |
593 written. | 595 written. If there are several indexes, index_ptr MUST point to the last |
596 index. | |
594 | 597 |
595 id | 598 id |
596 the ID of the type/name pair, so it is more compact | 599 the ID of the type/name pair, so it is more compact |
597 0 means end | 600 0 means end |
598 | 601 |
690 | 693 |
691 Index: | 694 Index: |
692 ------ | 695 ------ |
693 | 696 |
694 Note: with realtime streaming, there is no end, so no index there either | 697 Note: with realtime streaming, there is no end, so no index there either |
695 An index SHOULD be written for every stream. Indices MUST be placed at end | 698 Index MAY only be repeated after main headers. |
696 of file. Indices MAY be repeated for a stream. | 699 If an index is written anywhere in the file, it MUST be written at end of |
700 file as well. | |
697 | 701 |
698 | 702 |
699 Info frames: | 703 Info frames: |
700 ------------ | 704 ------------ |
701 | 705 |