changeset 12184:17667db616d3

(de)coder -> (de)muxer some clarifications
author michael
date Tue, 13 Apr 2004 00:49:47 +0000
parents 6bf35678182c
children 97bbb47c0a04
files DOCS/tech/mpcf.txt
diffstat 1 files changed, 12 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/DOCS/tech/mpcf.txt	Tue Apr 13 00:12:03 2004 +0000
+++ b/DOCS/tech/mpcf.txt	Tue Apr 13 00:49:47 2004 +0000
@@ -78,8 +78,8 @@
 reserved_bytes
 	for(i=0; i<forward_ptr - length_of_non_reserved; i++)
 		reserved			u(8)
-	a decoder MUST ignore any reserved bytes
-	a encoder MUST NOT write any reserved bytes, as this would make it
+	a demuxer MUST ignore any reserved bytes
+	a muxer MUST NOT write any reserved bytes, as this would make it
 	inpossible to add new fields at the end of packets in the future in
 	a compatible way
 
@@ -254,7 +254,7 @@
 	32	audio
 	64	subtiles
 	Note the remaining values are reserved and MUST NOT be used
-	     a decoder MUST ignore streams with reserved classes
+	     a demuxer MUST ignore streams with reserved classes
 
 fourcc
 	identification for the codec
@@ -330,8 +330,9 @@
 		delta= last_timestamp - mask/2
 		timestamp= ((timestamp_lsb-delta)&mask) + delta
 		TTT must be 100 or 101 if the packet_type is not 0
-		the last timestamp differences are reset to the default values
-		from the stream header if a packet of type not 0 in encountered
+		the last timestamp differences are reset to the 
+		initial_timestamp_predictor values from the stream header if a
+		packet of type not 0 in encountered
 	if D is 1 then data_size_msb is coded, otherwise its 0
 	KK is the keyframe_type 
 		00-> no keyframe, 
@@ -368,12 +369,14 @@
 	if(data_size_lsb == data_size_mul)
 		data_size= last;
 	else if(data_size_lsb == data_size_mul+1)
-		data_size= next last;
+		data_size= next_last;
 	else if(data_size_lsb < data_size_mul)
 		data_size= data_size_lsb + data_size_msb*data_size_mul;
 	else reserved
-	last and next last are reset to the values stored in the stream header
-	if an frame with type > 0 is encountered
+	next_last is the second last unique data_size, for example:
+	previous data_size: 123,500,312,500,500    last=500, next_last=312
+	last and next_last are reset to the initial_data_size_predictor values
+	stored in the stream header if an frame with type > 0 is encountered
 
 lsb_timestamp
 	least significant bits of the timestamp in time_base precission
@@ -519,7 +522,7 @@
 for example, the current song title & artist of the currently shown music video
 
 		Unknown packets
-MUST be ignored by the decoder
+MUST be ignored by the demuxer
 
 			Sample code (GPL, & untested)