# HG changeset patch # User ods15 # Date 1140759695 0 # Node ID cb73482267a0222bd042446e227d9f8af8822b79 # Parent b822575a11404695296aba763809e143256e6e8b info packet stuff, chapters... diff -r b822575a1140 -r cb73482267a0 DOCS/tech/mpcf.txt --- a/DOCS/tech/mpcf.txt Thu Feb 23 10:18:10 2006 +0000 +++ b/DOCS/tech/mpcf.txt Fri Feb 24 05:41:35 2006 +0000 @@ -262,21 +262,32 @@ checksum u(32) info_frame: (optional) - for(;;){ - id v - if(id==0) break - name= info_table[id][0] - type= info_table[id][1] - if(type==NULL) + stream_id_plus1 v + chapter_id v + if (chapter_id) { + chapter_start v + chapter_len v + } + count v + for(i=0; i string or "JPEG" -> JPEG image @@ -620,15 +645,13 @@ info packet types the name of the info entry, valid names are - "StreamId" - the stream(s) to which the info packet applies "Author" "Description" "Copyright" "Encoder" the name & version of the software used for encoding "Title" - "Cover" + "Cover" (allowed types are "PNG" and "JPEG") image of the (CD, DVD, VHS, ..) cover (preferably PNG or JPEG) "Source" "DVD", "VCD", "CD", "MD", "FM radio", "VHS", "TV", "LD" @@ -640,8 +663,6 @@ (ISO 8601 format, see http://www.cl.cam.ac.uk/~mgk25/iso-time.html) Note: do not forget the timezone "Keywords" - "TotalTime" - total length of the stream in msecs "Language" ISO 639 and ISO 3166 for language/country code something like "eng" (US english), can be 0 if unknown @@ -664,24 +685,6 @@ stuffing 0x80 can be placed in front of any type v entry for stuffing purposes -info_table[][2]={ - {NULL , NULL }, // end - {NULL , NULL }, - {NULL , "UTF8"}, - {NULL , "v"}, - {NULL , "s"}, - {"StreamId" , "v"}, - {"Author" , "UTF8"}, - {"Title" , "UTF8"}, - {"Language" , "UTF8"}, - {"Description" , "UTF8"}, - {"Copyright" , "UTF8"}, - {"Encoder" , "UTF8"}, - {"Keyword" , "UTF8"}, - {"Cover" , "JPEG"}, - {"Cover" , "PNG"}, - {"Disposition" , "UTF8"}, -}; Structure: @@ -721,11 +724,20 @@ file as well. -Info frames: ------------- +Info: +----- + +All info packets with the same chapter_id and stream_id are repeated info +packets and MUST be binary identical. + +All info packets MUST appear after main headers at begginning of file, and +SHOULD be repeated after all main headers unless they are very large. Info frames can be used to describe the file or some part of it (chapters) +Info SHOULD be stored in global packets instead of info streams/frames if +possible, and the amount of data is not large. + demuxer (non-normative): ------------------------