Mercurial > mplayer.hg
changeset 16428:5f4317692b7c
spelling/grammar/wording
author | diego |
---|---|
date | Fri, 09 Sep 2005 09:25:07 +0000 |
parents | a40cc42e9efb |
children | 84174804804b |
files | DOCS/tech/mpcf.txt |
diffstat | 1 files changed, 30 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/tech/mpcf.txt Fri Sep 09 07:26:38 2005 +0000 +++ b/DOCS/tech/mpcf.txt Fri Sep 09 09:25:07 2005 +0000 @@ -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 @@ [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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ "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 @@ 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 @@ 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 @@ 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)