[NUT-devel] [RFC] some suggestions for the spec

Diego Biurrun diego at biurrun.de
Sat May 5 14:58:20 CEST 2007


I had these notes in my local tree from the last time I looked at the
spec.  Hopefully this is useful to point out problems and clarify the
spec a bit.

Diego
-------------- next part --------------
Index: nut.txt
===================================================================
--- nut.txt	(revision 23236)
+++ nut.txt	(working copy)
@@ -584,6 +584,7 @@
     global headers as long as no incorrect values are stored and as long as
     the stripped result is not less valid per codec spec as before stripping.
 
+FIXME: The frame_code description is convoluted and incomprehensible.
 frame_code (f(8))
     frame_code is an 8-bit field which exists before every frame, it can
     store part of the size of the frame, the stream number, the timestamp
@@ -602,6 +603,7 @@
                            presentation. (EOR)
        3  FLAG_CODED_PTS   If set, coded_pts is in the frame header.
        4  FLAG_STREAM_ID   If set, stream_id is coded in the frame header.
+FIXME: What does "at the frame header" mean?
        5  FLAG_SIZE_MSB    If set, data_size_msb at the frame header,
                            otherwise data_size_msb is 0.
        6  FLAG_CHECKSUM    If set, the frame header contains a checksum.
@@ -612,7 +614,7 @@
     EOR frames MUST be zero-length and must be set keyframe.
     All streams SHOULD end with EOR, where the pts of the EOR indicates the
     end presentation time of the final frame.
-    An EOR set stream is unset by the first content frames.
+    An EOR set stream is unset by the first content frame.
     EOR can only be unset in streams with zero decode_delay .
     FLAG_CHECKSUM MUST be set if the frame's data_size is strictly greater than
     2*max_distance or the difference abs(pts-last_pts) is strictly greater than
@@ -795,7 +797,7 @@
     The ID of the chapter this packet applies to. If zero, the packet applies
     to the whole file. Positive chapter_id values represent real chapters and
     MUST NOT overlap.
-    A negative chapter_id indicates a sub region of the file and not a real
+    A negative chapter_id indicates a region of the file and not a real
     chapter. chapter_id MUST be unique to the region it represents.
     chapter_id n MUST NOT be used unless there are at least n chapters in the
     file.
@@ -830,6 +832,7 @@
     "Source"
         "DVD", "VCD", "CD", "MD", "FM radio", "VHS", "TV", "LD"
         Optional: Appended PAL, NTSC, SECAM, ... in parentheses.
+FIXME: Does this have to be lowercase?
     "SourceContainer"
         "nut", "mkv", "mov", "avi", "ogg", "rm", "mpeg-ps", "mpeg-ts", "raw"
     "SourceCodecTag"
@@ -849,6 +852,7 @@
         including "und" (Undetermined), "mul" (Multiple languages).
         See http://www.loc.gov/standards/iso639-2/
         and http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/en_listp1.html
+FIXME: Does the following line have a meaning here?
         the language code
         A demuxer MUST ignore unknown language and country codes instead of
         treating them as an error.
@@ -884,6 +888,7 @@
 Headers may be repeated, but if they are, then they MUST all be repeated
 together and repeated headers MUST be identical.
 
+FIXME: This description is confusing, after 2^x *and* end of file???
 Each set of repeated headers not at the beginning or end of the file SHOULD
 be stored at the earliest possible position after 2^x where x is an integer
 and the end of the file. So the headers may be repeated at 4102 if that is
@@ -923,6 +928,7 @@
 demuxer (non-normative):
 ------------------------
 
+FIXME: Where is the syncpoint included?
 In the absence of a valid header at the beginning, players SHOULD search for
 backup headers starting at offset 2^x; for each x players SHOULD end their
 search at a particular offset when any startcode (including a syncpoint) is


More information about the NUT-devel mailing list