summaryrefslogtreecommitdiffstats
path: root/DOCS/tech/mpcf.txt
diff options
context:
space:
mode:
authoralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-09-11 09:18:07 +0000
committeralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-09-11 09:18:07 +0000
commit4434fc4f050a8deaec21ff99958c683d0f15dc26 (patch)
tree6677103df36ef80dd718aef83e0f1e5550a03999 /DOCS/tech/mpcf.txt
parent9135ad61544815b86cbb1d636d66083934343788 (diff)
downloadmpv-4434fc4f050a8deaec21ff99958c683d0f15dc26.tar.bz2
mpv-4434fc4f050a8deaec21ff99958c683d0f15dc26.tar.xz
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
Diffstat (limited to 'DOCS/tech/mpcf.txt')
-rw-r--r--DOCS/tech/mpcf.txt60
1 files changed, 44 insertions, 16 deletions
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: