From 4434fc4f050a8deaec21ff99958c683d0f15dc26 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 11 Sep 2004 09:18:07 +0000 Subject: info packet is now file global, while meta pakcet is stream specific, as discussed with Rich git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13309 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/tech/mpcf.txt | 60 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 16 deletions(-) (limited to 'DOCS/tech/mpcf.txt') diff --git a/DOCS/tech/mpcf.txt b/DOCS/tech/mpcf.txt index 5360ba790f..42d7bd5bec 100644 --- a/DOCS/tech/mpcf.txt +++ b/DOCS/tech/mpcf.txt @@ -1,4 +1,4 @@ - NUT Open Container Format DRAFT 20040409 + NUT Open Container Format DRAFT 20040911 ---------------------------------------- @@ -127,7 +127,6 @@ stream_header: stream_class v fourcc vb average_bitrate v - language_code vb time_base_nom v time_base_denom v msb_timestamp_shift v @@ -185,7 +184,7 @@ Index: reserved_bytes checksum u(32) -info_packet: (optional) +info_packet: (optional) (file global) info_startcode f(64) packet header for(;;){ @@ -204,6 +203,27 @@ info_packet: (optional) } reserved_bytes checksum u(32) + +meta_packet: (optional) (stream specific) + meta_startcode f(64) + packet header + stream_id v + for(;;){ + id v + if(id==0) break + name= meta_table[id][0] + type= meta_table[id][1] + if(type==NULL) + type vb + if(name==NULL) + name vb + if(type=="v") + value v + else + value vb + } + reserved_bytes + checksum u(32) sync_point frame_startcode f(64) @@ -257,6 +277,8 @@ index_startcode 0xDD672F23E64EULL + (((uint64_t)('N'<<8) + 'X')<<48) info_startcode 0xAB68B596BA78ULL + (((uint64_t)('N'<<8) + 'I')<<48) +meta_startcode + FIXME version 2 for now @@ -367,7 +389,7 @@ codec_specific_data_type 3 waveformatex 4 imagedesc 5 sounddesc - "native", means a simple api & container independanet storage form, + "native", means a simple api & container independent storage form, for example some mpeg4-es headers codec_specific_data @@ -480,13 +502,9 @@ type Note: nonstandard fields should be prefixed by "X-" Note: MUST be less than 6 byte long (might be increased to 64 later) -name +info packet types the name of the info entry, valid names are - "TotalTime" total length of the stream in msecs - "StreamId" the stream(s) to which the info packet applies - "StartTimestamp" - "EndTimestamp" the time range in msecs to which the info applies - "SegmentId" a unique id for the streams + time specified + "Author" "Description" "Copyright" @@ -500,8 +518,12 @@ name "CreationTime" "2003-01-20 20:13:15Z", ... (ISO 8601 format, see http://www.cl.cam.ac.uk/~mgk25/iso-time.html) Note: dont forget the timezone - "ReplayGain" "Keywords" + "TotalTime" total length of the stream in msecs + +meta packet types + "ReplayGain" + "Language" the language code "Disposition" "original", "dub" (translated), "comment", "lyrics", "karaoke" Note: if someone needs some others, please tell us about them, so we can add them to the official standard (if they are sane) @@ -521,10 +543,6 @@ info_table[][2]={ {NULL , "UTF8"}, {NULL , "v"}, {NULL , "s"}, - {"StreamId" , "v"}, - {"SegmentId" , "v"}, - {"StartTimestamp" , "v"}, - {"EndTimestamp" , "v"}, {"Author" , "UTF8"}, {"Titel" , "UTF8"}, {"Description" , "UTF8"}, @@ -533,7 +551,17 @@ info_table[][2]={ {"Keyword" , "UTF8"}, {"Cover" , "JPEG"}, {"Cover" , "PNG"}, - {"Disposition" , "UTF8"}, +}; + +meta_table[][2]={ + {NULL , NULL }, // end + {NULL , NULL }, + {NULL , "UTF8"}, + {NULL , "v"}, + {NULL , "s"}, + {"Language" , to be decided}, + {"Disposition" , to be decided}, + {"ReplayGain" , to be decided}, }; Structure: -- cgit v1.2.3