mirror of https://github.com/mpv-player/mpv
spelling/grammar/wording
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@16429 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
e3ad55448c
commit
e548b29dd0
|
@ -6,38 +6,37 @@
|
|||
Intro:
|
||||
|
||||
Features / goals:
|
||||
(supported by the format, not necessary by a specific implementation)
|
||||
(supported by the format, not necessarily by a specific implementation)
|
||||
|
||||
Simple
|
||||
use the same encoding for nearly all fields
|
||||
simple decoding, so slow cpus (and embedded systems) can handle it
|
||||
simple decoding, so slow CPUs (and embedded systems) can handle it
|
||||
Extendible
|
||||
no limit for the possible values for all fields (using universal vlc)
|
||||
no limit for the possible values of all fields (using universal vlc)
|
||||
allow adding of new headers in the future
|
||||
allow adding more fields at the end of headers
|
||||
Compact
|
||||
~0.2% overhead, for normal bitrates
|
||||
index is <10kb per hour (1 keyframe every 3sec)
|
||||
a usual header for a file is about 100bytes (audio + video headers together)
|
||||
a usual header for a file is about 100 bytes (audio + video headers together)
|
||||
a packet header is about ~1-8 bytes
|
||||
Error resistant
|
||||
seeking / playback without an index
|
||||
headers & index can be repeated
|
||||
damaged files can be played back with minimal data lost and fast
|
||||
resyncing times
|
||||
|
||||
damaged files can be played back with minimal data loss and fast
|
||||
resync times
|
||||
|
||||
|
||||
Definitions:
|
||||
|
||||
MUST the specific part must be done to conform to this standard
|
||||
SHOULD it's recommended to be done that way, but it's not strictly required
|
||||
SHOULD it is recommended to be done that way, but not strictly required
|
||||
|
||||
|
||||
|
||||
Syntax:
|
||||
|
||||
Since nut heavily uses variable length fields, the simplest way to describe it
|
||||
Since NUT heavily uses variable length fields, the simplest way to describe it
|
||||
is using a pseudocode approach.
|
||||
|
||||
Conventions:
|
||||
|
@ -59,14 +58,14 @@ name: (optional note)
|
|||
[Optional notes]
|
||||
|
||||
The in-depth tag description follows the bitstream syntax.
|
||||
The functional definition has a C like syntax.
|
||||
The functional definition has a C-like syntax.
|
||||
|
||||
|
||||
Type definitions:
|
||||
|
||||
|
||||
f(n) (n fixed bits in big-endian order)
|
||||
u(n) (unsigned number encoded in n bits in MSB first order)
|
||||
u(n) (unsigned number encoded in n bits in MSB-first order)
|
||||
|
||||
v (variable length value, unsigned)
|
||||
value=0
|
||||
|
@ -86,7 +85,7 @@ b (binary data or string, to be use in vb, see below)
|
|||
for(i=0; i<length; i++){
|
||||
data[i] u(8)
|
||||
}
|
||||
[Note: strings MUST be encoded in utf8]
|
||||
[Note: strings MUST be encoded in UTF-8]
|
||||
|
||||
vb (variable length binary data or string)
|
||||
length v
|
||||
|
@ -298,7 +297,7 @@ version
|
|||
|
||||
max_distance
|
||||
max distance of frame_startcodes, the distance may only be larger if
|
||||
there is only a single frame between the 2 frame_startcodes this can
|
||||
there is only a single frame between the two frame_startcodes this can
|
||||
be used by the demuxer to detect damaged frame headers if the damage
|
||||
results in too long of a chain
|
||||
|
||||
|
@ -315,8 +314,8 @@ max_index_distance
|
|||
|
||||
stream_id[FIXME]
|
||||
Stream identifier
|
||||
Note: streams with a lower relative class MUST have a lower relative id
|
||||
so a stream with class 0 MUST always have an id which is lower than any
|
||||
Note: streams with a lower relative class MUST have a lower relative ID
|
||||
so a stream with class 0 MUST always have an ID which is lower than any
|
||||
stream with class > 0
|
||||
stream_id MUST be < stream_count
|
||||
|
||||
|
@ -336,7 +335,7 @@ fourcc
|
|||
|
||||
time_base_nom / time_base_denom = time_base
|
||||
the number of timer ticks per second, this MUST be equal to the fps
|
||||
if the fixed_fps is 1
|
||||
if fixed_fps is 1
|
||||
time_base_denom MUST NOT be 0
|
||||
time_base_nom and time_base_denom MUST be relatively prime
|
||||
time_base_nom MUST be < 2^31
|
||||
|
@ -379,8 +378,8 @@ msb_timestamp_shift
|
|||
decode_delay
|
||||
maximum time between input and output for a codec, used to generate
|
||||
dts from pts
|
||||
is set to 0 for streams without b frames, and set to 1 for streams with
|
||||
b frames, may be larger for future codecs
|
||||
is set to 0 for streams without B-frames, and set to 1 for streams with
|
||||
B-frames, may be larger for future codecs
|
||||
|
||||
fixed_fps
|
||||
1 indicates that the fps is fixed
|
||||
|
@ -454,7 +453,7 @@ dts
|
|||
the smallest value is removed, this is then the current dts
|
||||
this buffer is initalized with decode_delay -1 elements
|
||||
all frames with dts == timestamp must be monotone, that means a frame
|
||||
which occures later in the stream must have a larger or equal dts
|
||||
which occurs later in the stream must have a larger or equal dts
|
||||
than an earlier frame
|
||||
FIXME rename timestamp* to pts* ?
|
||||
|
||||
|
@ -487,15 +486,15 @@ index_position
|
|||
position in bytes of the first byte of a keyframe, relative to the
|
||||
last keyframe stored in this index
|
||||
there MUST be no keyframe with the same stream_id as this index between
|
||||
2 consecutive index entries if they are more than max_index_distance
|
||||
two consecutive index entries if they are more than max_index_distance
|
||||
apart
|
||||
|
||||
id
|
||||
the id of the type/name pair, so it's more compact
|
||||
the ID of the type/name pair, so it is more compact
|
||||
0 means end
|
||||
|
||||
type
|
||||
for example: "UTF8" -> String or "JPEG" -> jpeg image
|
||||
for example: "UTF8" -> string or "JPEG" -> JPEG image
|
||||
Note: nonstandard fields should be prefixed by "X-"
|
||||
Note: MUST be less than 6 byte long (might be increased to 64 later)
|
||||
|
||||
|
@ -508,14 +507,14 @@ info packet types
|
|||
"Copyright"
|
||||
"Encoder" the name & version of the software used for encoding
|
||||
"Title"
|
||||
"Cover" an image of the (cd,dvd,vhs,..) cover (preferable PNG or JPEG)
|
||||
"Cover" an image of the (CD, DVD, VHS, ..) cover (preferably PNG or JPEG)
|
||||
"Source" "DVD", "VCD", "CD", "MD", "FM radio", "VHS", "TV",
|
||||
"LD"
|
||||
Optional: appended PAL,NTSC,SECAM, ... in parentheses
|
||||
Optional: appended PAL, NTSC, SECAM, ... in parentheses
|
||||
"CaptureDevice" "BT878", "BT848", "webcam", ... (more exact names are fine too)
|
||||
"CreationTime" "2003-01-20 20:13:15Z", ...
|
||||
(ISO 8601 format, see http://www.cl.cam.ac.uk/~mgk25/iso-time.html)
|
||||
Note: don't forget the timezone
|
||||
Note: do not forget the timezone
|
||||
"Keywords"
|
||||
"TotalTime" total length of the stream in msecs
|
||||
"Language" ISO 639 and ISO 3166 for language/country code
|
||||
|
@ -571,7 +570,7 @@ the closest position after 2^12=4096 at which the headers can be placed
|
|||
|
||||
headers MUST be placed at least at the start of the file and immediately before
|
||||
the index or at the file end if there is no index
|
||||
headers MUST be repeated at least twice (so they exist 3 times in a file)
|
||||
headers MUST be repeated at least twice (so they exist three times in a file)
|
||||
|
||||
a demuxer MUST NOT demux a stream which contains more than one stream, or which
|
||||
is wrapped in a structure to facilitate more than one stream or otherwise
|
||||
|
@ -597,9 +596,9 @@ MUST be ignored by the demuxer
|
|||
|
||||
demuxer (non-normative)
|
||||
|
||||
in the absence of valid header at beginning, players SHOULD search for backup
|
||||
headers starting at offset 2^x for each x players SHOULD end their search from
|
||||
a particular offset when any startcode is found (including syncpoint)
|
||||
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 is found (including syncpoint)
|
||||
|
||||
|
||||
Sample code (GPL, & untested)
|
||||
|
@ -682,8 +681,8 @@ static int64_t get_dts(int64_t pts, int64_t *pts_cache, int delay, int reset){
|
|||
|
||||
Authors
|
||||
|
||||
Folks from MPlayer Developers Mailinglist (http://www.mplayehrq.hu/).
|
||||
Authors in ABC-order: (FIXME! Tell us if we left you out)
|
||||
Folks from the MPlayer developers mailing list (http://www.mplayerhq.hu/).
|
||||
Authors in alphabetical order: (FIXME! Tell us if we left you out)
|
||||
Beregszaszi, Alex (alex@fsn.hu)
|
||||
Bunkus, Moritz (moritz@bunkus.org)
|
||||
Diedrich, Tobias (ranma+mplayer@tdiedrich.de)
|
||||
|
|
Loading…
Reference in New Issue