[Mplayer-cvslog] CVS: main/DOCS/tech mpcf.txt,1.1,1.2
Michael Niedermayer CVS
michael at mplayerhq.hu
Thu Feb 6 18:19:30 CET 2003
Update of /cvsroot/mplayer/main/DOCS/tech
In directory mail:/var/tmp.root/cvs-serv24741
Modified Files:
mpcf.txt
Log Message:
update
Index: mpcf.txt
===================================================================
RCS file: /cvsroot/mplayer/main/DOCS/tech/mpcf.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mpcf.txt 6 Feb 2003 15:33:02 -0000 1.1
+++ mpcf.txt 6 Feb 2003 17:19:09 -0000 1.2
@@ -9,6 +9,7 @@
Simple
use the same encoding for nearly all fields
+ simple decoding, so slow cpus can handle it
Extendible
no limit for the possible values for all fields (using universal vlc)
allow adding of new headers in the future
@@ -35,6 +36,31 @@
Syntax:
+ Type definitions:
+v
+ value=0
+ do{
+ more_data u(1)
+ data u(7)
+ value= 128*value + data
+ }while(more_data)
+ value-=4
+
+sz (zero terminated string)
+ for(i=0; next_byte != 0; i++){
+ string[i] u(8)
+ }
+ zero_byte f(8)
+Note: the string MUST not be 0 bytes long (only a zero byte coded), instead
+ {'?', 0} should be used instead, this is done to avoid emulating
+ startcode prefixes (if we allow 0 then there could be 0,0,1 which
+ is a startcode prefix in mpeg)
+
+f(x) n fixed bits
+u(x) unsigned number encoded in x bits in MSB first order
+
+
+ Bitstream syntax:
packet header
forward ptr v
backward ptr v
@@ -129,32 +155,13 @@
info_header: (optional)
packet header
info_startcode f(64)
- title sz
- author sz
- copyright sz
- description sz
+ entry_count v
+ for(i=0; i<entry_count; i++){
+ name sz
+ value sz
+ }
checksum u(32)
-v
- value=0
- do{
- more_data u(1)
- data u(7)
- value= 128*value + data
- }while(more_data)
- value-=4
-
-sz (zero terminated string)
- for(i=0; next_byte != 0; i++){
- string[i] u(8)
- }
- zero_byte f(8)
-Note: the string MUST not be 0 bytes long (only a zero byte coded), instead
- {'?', 0} should be used instead
-
-f(x) n fixed bits
-u(x) unsigned number encoded in x bits in MSB first order
-
forward_ptr
backward_ptr
@@ -174,7 +181,7 @@
Note: streams with a lower relative class MUST have a lower relative id
so a stream with class 0 MUST allways have a id which is lower then any
stream with class > 0
- if there is a stream with id n>0 then there MUST be a stream with id n-1
+ streams should use low ids
stream_class
0 video
@@ -274,6 +281,14 @@
position in bytes of the first byte of the keyframe header, relative
to the last index_position
+name
+ the name of the info entry, valid names are
+ "Author","Description","Copyright","Encoder","Title"
+ Note: if someone needs some others, please tell us about them, so we can
+ add them to the official standard (if they are sane)
+
+value
+
Structure:
@@ -292,6 +307,9 @@
and repeated headers MUST be identical
headers MUST be repeated every 10sec at least ? FIXME
+
+the info_header can be repeated, it can also contain different names & values
+each time
Sample code (GPL, & untested)
More information about the MPlayer-cvslog
mailing list