home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-06-05 | 52.9 KB | 1,277 lines |
- TABLE OF CONTENTS
-
- mpegvideo.datatype/--datasheed--
- mpegvideo.datatype/ADTM_LOADFRAME
- mpegvideo.datatype/ADTM_UNLOADFRAME
- mpegvideo.datatype/DTM_WRITE
- mpegvideo.datatype/MAIN
- mpegvideo.datatype/OM_DISPOSE
- mpegvideo.datatype/OM_NEW
- mpegvideo.datatype/preferences
- mpegvideo.datatype/--datasheed-- mpegvideo.datatype/--datasheed--
-
- NAME
- mpegvideo.datatype -- data type for mpeg video streams
-
- SUPERCLASS
- animation.datatype
-
- DESCRIPTION
- The mpegvideo data type, a sub-class of the animation.datatype, is
- used to load, play and save (encode) mpeg 1 and mpeg 2 video
- streams.
-
- METHODS
- OM_NEW -- Create a new animation object from a description file. The
- source may a file or no source (e.g. an empty object created
- with DTST_RAM for encoding etc.).
-
- OM_DISPOSE -- Dispose instance and contents (frames, colormaps etc.),
- then pass msg to superclass
-
- OM_UPDATE -- Perform an ICM_CHECKLOOP check, and if succesfull, the
- method will be executed like OM_SET downstairs.
-
- OM_SET -- Pass msg to superclass, and if the mpegvideo.datatype
- instance is the "top instance", call GM_RENDER if retval from
- superclass was != 0UL.
-
- DTM_WRITE -- Saves either the local (RAW) format, which is
- a MPEG1/2-Video-stream, or passes the message to superclass
- (which saves the current frame as an IFF ILBM picture).
-
- ADTM_LOADFRAME -- Fill in struct adtFrame with requested information
- from internal FrameNode list like bitmap, colormap, samples, etc.
-
- ADTM_UNLOADFRAME -- Release resources obtained in a successfull or
- unsuccessfull call to ADTM_LOADFRAME.
-
- All other methods are passed unchanged to superclass.
-
- ATTRIBUTES
- Following attributes are set by the object and are READ-ONLY for
- applications:
- DTA_NominalHoriz -- same as ADTA_Width
- DTA_NominalVert -- same as ADTA_Height
- DTA_ObjName -- same as DTA_Name
- ADTA_Width -- set by video stream
- ADTA_Height -- set by video stream
- ADTA_Depth -- set by video stream (or by prefs)
- ADTA_NumColors -- set by ADTA_Depth or to the num. of
- palette entries
- ADTA_ColorRegisters -- obj's palette with ADTA_NumColors entries
- ADTA_CRegs -- obj's palette with ADTA_NumColors entries
- ADTA_Frames -- total number of frames
- ADTA_FramesPerSecond -- set by video stream
- ADTA_ModeID -- calculated internally or set by prefs
- ADTA_KeyFrame -- key frame
- ADTA_Sample -- sample (optional, if a sample is attached)
- ADTA_SampleLength -- sample length (for one timestamp/see above)
- ADTA_Period -- sample period (optional, see ADTA_Sample)
- ADTA_Volume -- sample volume (optional, see ADTA_Sample)
- ADTA_Cycles -- 1UL
-
- BUGS
- - animation.datatype >= V41.3 is preferred...
- WARNING: NOLOADALL mode MUST NOT be used with animation.datatype
- V40 (it's safe, but...).
-
- - EHB, COLOR, and GRAY dithering are broken
-
- - YUV420 dithering (using Picasso 96 yuv-bitmaps) isn't tested yet.
-
- - The DEVICE option for using a cd32mpeg.device-compatible device for
- decoding isn't tested yet.
-
- - NOLOADALL mode has some funny effects: If you press the play button,
- I'll take some time until playback starts. This is caused
- by animation.datatype which pre-fetches the first ~10 frames
- before starting the playback. This is not a bug !
- The PPC version should not have this problem.
-
- - NOLOADALL mode does not work with the most mpeg2-streams
- (no interlace support in NOLOADALL mode).
-
- - NOLOADALL mode has problems with loading the last frame sequence.
-
- - Index generation in NOLOADALL mode is buggy, which results
- in a (somtimes) very confused decoder.
- (I-Frame-ONLY streams should work perfectly...).
-
- - In interlaced mpeg streams (mpeg 2 only) the first frame isn't
- decoded properly.
-
- - Interlaced mpeg streams (mpeg 2 only) cannot be scaled properly
- using the WIDTH and HEIGHT prefs options.
-
- - The DITHERATPLAYBACKTIME causes that the key frame is not filled
- with the initial frame data at OM_NEW time.
-
- - The datatype allocates much more memory than really used.
-
- - In large videos, the frames at the end will be played slower than
- those at the beginning of the file. This is the result of the
- sequential search internally used (only serious with more than
- 25000 frames (mc68030/50mhz)) for scanning the internal index list.
- Will be fixed.
-
- - CyberGFX 24 bit output mode uses 32 bit ARGB bitmaps, but the A
- (alpha) byte is not set to 0xFF (visible), instead it is set to 0.
- The same for 15 bit output mode, where the MSB is a alpha mask bit.
-
- - If you don't have my "paranimdtcpatch" patch running,
- animation.datatype (animation.datatype 40.7 (28.09.93)) subclasses
- will suffer under timing problems when two or more
- animation.datatype objetcs are playing. I've released a matching
- patch, DON'T blame me for this bug. Any comments for this problem
- should be related to the "paranimdtcpatch" project.
- "paranimdtcpatch" is available in the aminet
- ("util/dtype/panimdtcptch012.LhA").
- NOTE that animation.datatype V41 does NOT require the patch
- anymore.
-
- - The encoder aligns the width of the animation to be divisible by
- two.
-
- - The PPC version is slow because both (m68k and PPC) caches
- are flushed for each AmigaOS call, which slows down the thing
- significantly.
-
- - NOBFRAMES / NOPFRAMES option seems to slow down the decoder
- (unneccesary) due an inefficient piece in the bit parsing code.
- Will be fixed soon.
-
- - The duration values in the ADTM_LOADFRAME/struct adtFrame message
- are not correct. The duration value belongs to the previous frame.
- Due the fact that the duration value is mainly the same (skipping
- B frames means (normally) that everytimes the same number of
- frames is skiped), this is not a problem (yet) for the NOBFRAMES
- option and MPEG-1.
- Will be fixed soon.
-
- - The PPC version sometimes hangs with ppc.library V45.20.
- Try a later ppc.library version.
-
- TODO
- - Code cleanup
-
- - Bug fixing
-
- - Writing an amigaguide document
-
- - Support for 24 bit planar bitmaps in the encoder
-
- - Interleaved planar bitmap output
-
- - Update the IDCT to avoid unneccesary table accesses.
-
- HISTORY
- V2.1
- First testing release, mainly to find some bugs...
-
- V2.2
- - ADTA_SampleLength calculations were wrong. The value was got
- from the first frame. Now the value is set correctly to
- alf_SampleLength / (alf_Duration + 1)
- Fixed.
-
- - The encoder (and maybe other parts) did not like planar
- interleaved bitmaps because the internal CopyBitMap
- function expected evertimes a non-interleaved bitmap.
- (I replaced the functions with the functions used in
- animation.datatype V41.5 to fix the bug...).
- Fixed.
-
- - If a ADTM_LOADFRAME method gets a message from a previous
- ADTM_LOADFRAME call, the contents are freed now after
- the requested data have been loaded. This avoids the
- pathological case that if the same frame (or one from a
- matching IBBP...I sequence) should be freed and returned
- the frame IS freed and then re-loaded.
- Now the free of the given frame is done after the loading
- of the requested frame which avoids this inefficienty.
-
- - The encoder is now faster during loading of frames because
- it now processes and converts RGB -> YUV line by line
- instead of block by block base.
- The reason is that the new way uses a cache more efficient
- then the previous method.
-
- - Decreased the minimum decoder buffer size down to 2048 bytes,
- which makes the progress gauge more accurate for small files.
-
- - Fixed the bug that the encoder treats mpeg timestamp as
- animation.datatype timestamp. Now the conversion is donre using
- animdtc_timestamp = mpeg_frame_ts /
- (mpeg_frame_rate / ADTA_FramesPerSecond);
- Fixed.
-
- - The encoder now allocates some resouces once in the init setup
- instead of allocating/freeing them per-frame.
-
- - Fixed the bug that if the loading of a frame failed that this
- frame wasn't free'd using ADTM_UNLOADFRAME.
-
- - The encoder now recognizes ADTM_Frame (startframe) and
- ADTM_Frames (number of frames to encode).
-
- - The encoder now supports palette-per-frame, e.g. colormap
- changes in the source animation.
-
- - The encoder now uses "realloc" like-loading from source object
- (e.g. that ADTM_LOADFRAME can re-use the data from a previous
- ADTM_LOADFRAME call).
- This can be turned off using the ENC_NO_REALLOC_LOADFRAME prefs
- switch.
-
- - Implemented frame rate code 9. The XING products use this rate
- code as 15 fps.
-
- - The encoder now selects the "best" FPS rate, e.g. which mpeg fps
- rate is the nearest to the source fps rate.
- This includes the rate code 9 (XING 15 fps rate code) !
-
- - Fixed the default ENC_BIT_RATE value. It now defaults to
- (ADTA_Width * ADTA_Height * 24 * mpeg_fps) / 52.8,
- which results in 1152000.0 bits/s for 352 * 288 (SIF) display.
- (e.g. the default compression ration is 52.8).
- Fixed.
-
- - If CyberGFX is active some output formats now create
- chunkypixel output (currently ORDERED and GRAY output mode
- which create LUT8 bitmaps in this case).
- (Suggested by Ralf Heinert (frodo@w-specht.rhein-ruhr.de)).
-
- - Implemented MONO and MONO_THRESHOLD dithering. Interlaced
- MPEG streams are not supported yet.
-
- - Little speedup for all dithering modes which use the Y data
- only (MONO#? and GRAY dithering, ORDERED dithering if
- CR_RANGE and CB_RANGE are both 1).
-
- - CyberGFX bitmap output in conjunction with the USEVMM switch
- now forces the DITHERATPLAYBACKTIME switch to be sure that
- the datatype really uses VMM memory to cache frame data.
-
- - If no prefs-file is found, a warning is printed and VERBOSE
- mode is forced.
- This should avoid some emails like "I didn't know that the
- datatype has a prefs-file...".
-
- - Ported the whole datatype to the PPC environment:
- - All structures shared between m68k and PPC side have
- been padded to get the same size and offsets for all
- structure members. A small C program which prints
- the offsets was used for fiddeling out these things.
-
- - I introduced some own library functions to pack multiple
- AmigaOS calls into one PPCCallOS-call to save cache
- flushing cycles.
-
- - Extensive testing to get rid of some little problem.
-
- - Wrote some interface functions for PPC task support.
-
- - Removed some table accesses, removed and updated some parts
- to match the SAS/C PPC needs.
-
- - Frank Mariak (fmariak@chaosengine.ping.de) ported the HAM
- code from m68k assember to C that this can be used on the
- PPC side.
- Thanks !
-
- - Fixed a bug in the encoder's motion estimation section
- which caused quality loss.
- Fixed.
-
- V2.3
- - PPC version recompiled with SAS/C PPC beta 14.
-
- - Switched to ppc.library V45.9, which fixes some problems in
- the PPCCallOS function...
-
- - Optimized some PPC AmigaOS stub functions by hand to get more
- speed; replaced some functions by their PPC kernel equivalents
- for the same reason.
-
- - Chunkypixel bitmap allocation (AllocBitMap) now gets the
- ADTA_KeyFrame keyframe bitmap as parameter.
- Maybe, the RTG software can do something usefull with this
- hint...
-
- - Fixed HAM dithering code. The used abs()-macro was wrong,
- I replaced it with SAS/C build-in abs macro call.
- Thanks to Frank Mariak (fmariak@chaosengine.ping.de) for
- fixing the bug.
- Fixed.
-
- - Major speed up in the YUV420 and YUV 422 non-interlaced ->
- truecolor code
- I seperated both parts to get the maximum performance in both
- parts.
-
- - Fixed a bug in the interlaced remapping section (MPEG-2 only)
- which caused the display jittering more than "required".
- Fixed.
-
- - Fixed a bug in the "smakefile" which caused that the autodoc
- file "mpegvideo.datatype.doc" missed the "preferences"
- section and other things...
- Thanks to Frederic Steinfeld (fsteine@iiic.ethz.ch) for reporting
- the problem...
- Fixed.
-
- - Minor fixes in the autodocs.
-
- - Speedup in the CyberGFX output modes: The dither routines now
- writes directly into the chunkymaps instead of using a temporary
- buffer.
-
- - Added code which checks if it is possible to skip the
- LockBitMap/UnLockBitMap protocoll. If it is possible (in the case
- of CyberGFX), bitmaps are accessed througth (bm -> Planes[ 0 ])
- directly.
-
- - Major speedup in the encoder. IMHO it is now twice as fast as
- in V2.2...
-
- V2.4
- - Fixed a bug which caused big trouble with CyberGFX.
- Starting with V2.3, mpegvideo.datatype's decoder allocates
- chunkypixel bitmaps with the ADTA_KeyBitMap as friend bitmap
- (the RTG-software should be forced to allocate all bitmaps from
- the same type/chunk of memory).
- Due a missing BMF_MINPLANES CyberGFX returned a planar bitmap,
- which wasn't expected here.
- Changes to fix this bug:
- - Set BMF_MINPLANES in AllocBitMap's flag field.
- - The returned bitmap is tested using GetCyberMapAttr if
- it has _really_ the requested pixelformat.
- Thanks to Frank Mariak (fmariak@chaosengine.ping.de) for his
- help...
- Fixed.
-
- - The decoder now works with PIPE: as input again, as requested by
- many people. Still requires that the DataType is set by the
- user because the datatypes.library file type identification code
- (ObtainDataTypeA) does not work on non-seekable streams.
- Usage:
- GMultiView DATATYPE="MPEG Video" FILE="x.m1v"
- Fixed.
-
- - Any attempt to use the NOLOADALL mode on a non-seekable stream
- (PIPE: for example) now results in an error message and
- forces the LOADALL mode.
-
- - Minor fixes in the autodocs.
-
- V2.5
- - PPC version recompiled with SAS/C PPC beta 22.
- - Minor fixes to match the new SAS/C ppc beta 22.
-
- - The PPC version now requires a mc68040 as "companion" processor.
- This change was done because Phase5 dropped the m68030/PPC boards.
-
- - Found a serious bug in the #?ieee versions of mpegvideo.datatype
- (e.g. 000ieee/ and 020ieee/) which seems to be present in all V2
- versions...:
- The startup code did not open mathieeedoubtrans.library, which is
- used by the "sqrt" function in the dct table setup.
- Thanks to Chris McVeigh (escom4@escom4.demon.co.uk) for reporting
- the problem.
- Fixed.
-
- - The p96.library is now opened before the cybergraphics.library
- because the p96.library can be opened WITHOUT any gfx-card
- present. This allows to get access to the 24-bit-chunky-bitmaps.
- You may not be able to view them, but tools like "DTConvert"
- may benefit from this...
-
- - The PPC-Version now checks ppc.library's revision field
- (must be at least rev 13 (yet), current development was done with
- ppc.library V45.20, V46 preferred), except the version field
- is > V45. This fixes crashes if someone tries an earlier
- version...
- Fixed.
-
- - Added an alert (AN_Unknown + 0x531) and an endless loop in the
- _XCEXIT stub code. This code should never be called, but if
- the case occurs (should not, should not), the system won't crash
- now. Only the application hangs, and a little bit informative
- alert occurs.
- Should never ever happen, but...
-
- - Big change in the PPC decoder launch: Instead of creating a
- process per "frame decoding sequence" now the decoder starts one
- ppc task at startup and sends the decoding jobs as messages to
- it on demand. This is much more efficient and faster than the
- old way.
- Still experimental, but works.
- The NOLOADALL mode (and the DITHERATPLAYBACKTIME option, too)
- now makes much more fun...
-
- - The PPC code is now compiled with SAS/C's HUNKOBJ mode, which
- makes the compilation/project build much easier...
-
- - DITHER=MONO_THRESHOLD now uses lum > 127 instead of lum > 128 as
- the way to choose between black or white. Now both back and white
- have the same range of values.
- Another benefit is that the compiler maybe can use the change to
- optimize the code much more...
-
- - Found and fixed the bug that the NOBFRAMES / NOPFRAMES options
- did not work.
- Fixed.
-
- - NOBFRAMES / NOPFRAMES options are now compatible with the
- NOLOADALL mode.
-
- - Changes in the encoder and encoder support code.
- The encoder is now faster; it now reaches ~80% of the maximum
- possible speed (the remaining 20% are (maybe) a victim of the
- cacheflushed required for PPCCallOS calls :-( ).
-
- NOTES
- - Time-codes in the GOP are ignored - which isn't serious here
- yet.
-
- - Not all parameters in a given "mpeg2enc"-like parameter file
- are recognized by the encoder because the information is
- directly got from the object (like width, height, copyright
- info etc.).
- Other things like scalability are not implemented yet.
-
- SEE ALSO
- animation.datatype,
- mpegsystem.datatype, mpegaudio.datatype
- picmovie.datatype,
- paranimdtcpatch
-
- mpegvideo.datatype/ADTM_LOADFRAME mpegvideo.datatype/ADTM_LOADFRAME
-
- NAME
- ADTM_LOADFRAME -- Load frame
-
- FUNCTION
- The ADTM_LOADFRAME method is used to obtain the bitmap and timing
- data of the animation.
- The given timestamp will be used to find the closest timestamp
- in stream. If it was found, the corresponding timing, bitmap,
- colormap and sound data are stored into the struct adtFrame.
- In NOLOADALL mode, missing frame data are dynamically loaded
- from the stream.
-
- NOTE
- In NOLOADALL mode mpegvideo.datatype always loads a
- whole IPPB...I sequence into memory; the sequence stays in memory
- until all frames of the sequence are unloaded.
-
- RESULT
- Returns non-zero if the frame was loaded, 0UL otherwise
- (Result2 (IoErr()) contains then the cause).
-
- mpegvideo.datatype/ADTM_UNLOADFRAME mpegvideo.datatype/ADTM_UNLOADFRAME
-
- NAME
- ADTM_UNLOADFRAME -- Unload frame contents
-
- FUNCTION
- The ADTM_UNLOADFRAME method is used to release the contents of a
- animation frame.
-
- This method frees the bitmap data found in adtFrame.
-
- RESULT
- Returns always 0UL.
-
- mpegvideo.datatype/DTM_WRITE mpegvideo.datatype/DTM_WRITE
-
- NAME
- DTM_WRITE -- Save data
-
- FUNCTION
- This method saves the object's contents to disk.
-
- If dtw_Mode is DTWM_IFF, the method is passed unchanged to the
- superclass (animation.datatype), which writes a single IFF ILBM
- picture.
- The local data format (e.g. dtw_Mode == DTWM_RAW) writes
- a mpeg video stream, as set by the prefereces.
-
- RESULT
- Returns 0 for failure (IoErr() returns result2), non-zero
- for success.
-
- SEE ALSO
- preferences section for encoder options
-
- mpegvideo.datatype/MAIN mpegvideo.datatype/MAIN
-
- INTRODUCTION
- Datatypes class for decoding/encoding MPEG Video streams (MPEG 1
- and MPEG 2).
-
- REQUIREMENTS
- - You need at least Kick/WB 3.0.
-
- - "datatypes/animation.datatype", >= V40 (V41 preferred)
- which requires itself some libraries/boopsi classes:
- - "realtime.library", >= V39 - for timing
- - "gadgets/tapedeck.gadget" (any version) - for the controls
-
- - ppc.library >= V45 rev 13 for the PPC version
- (It was developed with V45.20...)
-
- - 2 MB of memory (3 MB for the PPC version)
-
- USAGE
- If the datatypes descriptor file was activated, any attempt to load
- a MPEG Video stream using GMultiView, MultiView, AmigaGuide or
- SwitchWindow will load and play the movie.
-
- INSTALLATION
- After unpacking this archive:
- Because this version does not include an Installer script, you have
- to do the installation manually through the shell:
-
- - Unpack this archive and copy the "mpegvideo.datatype" to
- SYS:Classes/DataTypes/:
-
- Copy CLONE FROM "mpegvideo.datatype" TO
- "SYS:Classes/DataTypes/mpegvideo.datatype"
-
- The "mpegvideo.datatype" class library is available in different
- versions for different cpu versions:
-
- directory | cpu type (minimum requirements)
- -----------+--------------------------------------
- 000ieee/ | m68000 using IEEE math library
- 020ieee/ | m68020 using IEEE math library
- 020881/ | m68020 using 68881 FPU
- 040881/ | m68040 using 68881 FPU emulation code
- 060881/ | m68060 using 68881 FPU emulation code
- 040ppc/ | m68040 and a PowerPC cpu
-
- Use the "C:CPU" shell command to check which m68k version you need.
-
- - Then copy the datatypes descriptor into the DEVS:DataTypes
- directory.
- If the descriptor already exists, you should not replace it,
- otherwise you may loose "toolnodes" and other settings stored in
- the existing descriptor.
-
- Copy CLONE FROM "MPEG Video(%|.info)" TO DEVS:Datatypes/
-
- NOTES
- Both encoder and decoder loosely based on "mpeg2dec" and "mpeg2enc"
- of the MSSG. See http://www.mpeg.org.
-
- AUTHOR
- If you want to blame me, report any bugs, or wants a new version
- send your letter to:
- Roland Mainz
- Hohenstaufenstraße 8
- 52388 Nörvenich
- GERMANY
-
- Phone: (+49)(0)2426/901568
- Fax: (+49)(0)2426/901569
-
- EMAIL is also available (if you want to send me attachments
- larger than 1MB (up to 5MB, more with my permission):
-
- GISBURN@w-specht.rhein-ruhr.de
-
- Up to August 1998 I'm reachable using this email address, too:
- Reinhold.A.Mainz@KBV.DE
-
- | Please put your name and address in your mails !
- | German mailers should add their phone numbers.
- | See BUGS section above when submitting bug reports.
-
- Sorry, but I can only look once a week for mails.
- If you don't hear something from me within three weeks, please
- send your mail again (but watch about new releases) (problems with
- this email port are caused by reconfigurations, hackers, network
- problems etc.).
-
- The entire "mpegvideo.datatype" package may be noncommercially
- redistributed, provided that the package is always distributed
- in it's complete form (including it's documentation). A small
- copy fee for media costs is okay but any kind of commercial
- distribution is strictly forbidden without my permission !
- Comments and suggestions how to improve this program are
- generally appreciated!
-
- Thanks to David Junod, who wrote the animation.datatype and lots of
- the datatypes example code, Matt Dillon for his DICE,
- Olaf 'Olsen' Barthel and Frank Mariak for their help, Phase5 for
- their PPC board.
-
- mpegvideo.datatype/OM_DISPOSE mpegvideo.datatype/OM_DISPOSE
-
- NAME
- OM_DISPOSE -- Delete a mpegvideo.datatype object.
-
- FUNCTION
- The OM_DISPOSE method is used to delete an instance of the
- mpegvideo.datatype class. This method is passed to the superclass
- when it has completed.
- This method frees all frame nodes and their contents (pictures, their
- colormaps, sounds etc.).
-
- NOTE
- This method preserved Result2 (IoErr()).
-
- RESULT
- The object is deleted. 0UL is returned.
-
- mpegvideo.datatype/OM_NEW mpegvideo.datatype/OM_NEW
-
- NAME
- OM_NEW -- Create a mpegvideo.datatype object.
-
- FUNCTION
- The OM_NEW method is used to create an instance of the
- mpegvideo.datatype class. This method is passed to the superclass
- first. After this, mpegvideo.datatype loads it's preference file
- (and the sound file, if one was specified) and starts it work on
- the video stream (load frames or scan stream for index information).
- Any fatal error aborts the load, non-serious errors are reported.
-
- ATTRIBUTES
- The following attributes can be specified at creation time.
-
- DTA_SourceType (ULONG) -- Determinates the type of DTA_Handle
- attribute. Both DTST_FILE and DTST_RAM are supported.
- If any other type was set in a given DTA_SourceType,
- OM_NEW will be rejected with result2 == ERROR_OBJECT_WRONG_TYPE.
- Defaults to DTST_FILE.
-
- DTA_Handle (BPTR) -- If DTA_SourceType is DTST_FILE, the given file
- handle will be used as an mpeg video stream to read in.
- DTST_RAM requires that this tag data is NULL !
-
- RESULT
- If the object was created a pointer to the object is returned,
- otherwise NULL is returned.
-
- mpegvideo.datatype/preferences mpegvideo.datatype/preferences
-
- NAME
- preferences
-
- DESCRIPTION
- The "ENV:Classes/DataTypes/mpegvideo.prefs" file contains global
- settings for the datatype.
- The preferences file is an ASCII file containing one line where the
- preferences can be set.
- It can be superset by a local variable with the same name.
-
- Each line can contain settings, special settings for some projects
- can be set using the MATCHPROJECT option.
- Lines beginning with a '#' or ';' chars are treated as comments.
- Lines are limitted to 256 chars.
-
- TEMPLATE
- MATCHPROJECT/K,DEVICE=MPEGDEVICE/K,UNIT=MPEGDEVICEUNIT/K/N,
- MODEID/K/N,WIDTH/K/N,HEIGHT/K/N,DEPTH/K/N,DITHER/K,
- LUM_RANGE/K/N,CR_RANGE/K/N,CB_RANGE/K/N,COLORERROR/K/N,
- PALETTEPERFRAME/S,NOPALETTEPERFRAME/S,GAMMACORRECT/K,CHROMACORRECT/K,
- MAXFRAME/K/N,SKIPFRAMES/K/N,FPS/K/N,PFRAMES/S,NOPFRAMES/S,
- BFRAMES/S,NOBFRAMES/S,DITHERATPLAYBACKTIME/S,
- NODITHERATPLAYBACKTIME/S,SAMPLE/K,VOLUME/K/N,BUFFER/K/N,LOADALL/S,
- NOLOADALL/S,USEVMM/S,NOUSEVMM/S,MINTOTALMEM/K/N,IGNOREERRORS/S,
- VERBOSE/S,__VERBOSELEVEL/K/N,TRACE/S,NOTRACE/S,PROGRESSGAUGE/S,
- NOPROGRESSGAUGE/S,QUALITY/S,NOQUALITY/S,ENCODERPARAMETERS=PARFILE/K,
- ENC_REALLOC_LOADFRAME/S,ENC_NO_REALLOC_LOADFRAME/S,
- ENC_RECONSTRUCTED_IMAGES/K,ENC_INTRA_QUANT_MAXTRIX_FILE/K,
- ENC_NON_INTRA_QUANT_MAXTRIX_FILE/K,ENCODERLOG=ENCODERSTATISTICS/K,
- ENC_FIRSTFRAME/K/N,ENC_START_TIMECODE/K,ENC_NUM_GOP_FRAMES/K/N,
- ENC_I_P_FRAME_DIST/K/N,ENC_FORCE_MPEG1/S,ENC_FIELD_PICTURES/S,
- ENC_FRAME_PICTURES/S,ENC_ASPECT_RATIO_INFORMATION/K,
- ENC_FRAME_RATE/K,ENC_BIT_RATE/K,ENC_VBV_BUFFER_SIZE/K/N,
- ENC_CONSTRAINED_PARAMETERS_FLAG/S,
- ENC_NO_CONSTRAINED_PARAMETERS_FLAG/S,
- ENC_PROFILE_ID/K,ENC_LEVEL_ID/K,ENC_PROGRESSIVE_SEQUENCE/S,
- ENC_NOPROGRESSIVE_SEQUENCE/S,ENC_CHROMA_FORMAT/K,ENC_VIDEO_FORMAT/K,
- ENC_COLOR_PRIMARIES/K,ENC_TRANSFER_CHARACTERISTICS/K,
- ENC_MATRIX_COEFFICIENTS/K,ENC_INTRA_DC_PRECISION/K,
- ENC_TOP_FIELD_FIRST=ENC_ODD_FIELD_FIRST/S,
- ENC_BOTTOM_FIELD_FIRST=ENC_EVEN_FIELD_FIRST/S,
- ENC_FRAME_PRED_FRAME_DCT_I/S,ENC_NO_FRAME_PRED_FRAME_DCT_I/S,
- ENC_FRAME_PRED_FRAME_DCT_P/S,ENC_NO_FRAME_PRED_FRAME_DCT_P/S,
- ENC_FRAME_PRED_FRAME_DCT_B/S,ENC_NO_FRAME_PRED_FRAME_DCT_B/S,
- and so on...
-
- MATCHPROJECT -- The settings in this line belongs only to this
- project(s), e.g. if the case-insensitive pattern does not match,
- this line is ignored.
- The maximum length of the pattern is 128 chars.
- Defaults to #?, which matches any project.
-
- DEVICE
- MPEGDEVICE -- If the Amiga has a "cd32mpeg.device" compatible device
- which supports the MPEGCMD_READFRAMEYUV device command,
- mpegvideo.datatype cam use this device for decoding
- (which may limit to MPEG-1).
- EXPERIMENTAL. UNTESTED. But should work...
-
- UNIT
- MPEGDEVICEUNIT - Selects the unit of the mpeg decoder device.
- Should only be set if you know what you're doing...
-
- MODEID -- Select screen mode id of datatype (will be stored in
- ADTA_ModeID). Note that the DOS ReadArgs function used for parsing
- fetches a SIGNED long. The bit 31 will be represented by minus
- '-'. (example: "MODEID=266240" sets the mode to the A2024 screen
- mode id)
- Defaults to -1, which means: Use the best screenmode available
- for the given width, height and depth.
-
- WIDTH -- Set the animation's width. The video will be scaled to this
- width.
- Defaults to 0, which means: Use video's width.
-
- HEIGHT -- Set the animation's height. The video will be scaled to this
- height.
- Defaults to 0, which means: Use video's height.
-
- DEPTH -- depth for the selected scaling mode
- A value describing the "depth" of the animation.
- 1 upto 8 are valid, under- or overflows will be truncated
- to the maximum supported.
- The default depth will be selected by the DITHER mode.
-
- DITHER -- dither type, one of
- MONO -- monocrome output, 1 bit
- MONO_THRESHOLD -- monocrome output with threshold, 1 bit
- GRAY -- grayscale output (broken in V2.1)
- HAM -- ham ham6/ham8 etc. (default)
- EHB -- extra halfbright (broken in V2.1)
- COLOR -- color output (broken in V2.1)
- ORDERED -- ordered dither
- 24BITCHUNKY -- true color, 24 bit
- 16BITCHUNKY -- true color, 16 bit
- 24BITPLANAR -- true color, 24 bit
- YUV420 -- YUV420 bitmap
-
- MONO
- MONO_THRESHOLD -- Monocrome output modes, both in two
- colors (black/white).
-
- GRAY is the grayscale mode.
- If no depth is given, the depth default to 5 (32 colors).
-
- HAM (hold-and-modify) mode: Either HAM6 or HAM8, set by the depth
- option. If no depth is given, this defaults to 6 for OCS/ECS
- and 8 for AGA/AAA machines.
- This is the default dither mode if no DITHER option is given.
-
- EHB (extra halfbright mode):
- If no depth is given, the depth default to 6 (32/64 colors).
- not implemented yet
-
- COLOR remaps the frames into a fixed color space.
- If no depth is given, the depth default to 8 (256 colors).
-
- ORDERED uses ordered dithering.
- If no depth is given, the depth default to 8 (256 colors).
-
- 24BITCHUNKY uses chunkypixel CyberGFX bitmaps
- Fixed to a depth of 32 (XRGB).
- Requires at least animation.datatype V41.3.
-
- 16BITCHUNKY uses chunkypixel CyberGFX bitmaps
- Fixed to a depth of 16 (XRGB).
- Requires at least animation.datatype V41.3.
-
- 24BITPLANAR uses a planar 24 bit depth bitmap (non-interleaved)
- Fixed to a depth of 24 (RGB).
- Requires at least animation.datatype V41.3.
-
- YUV420 uses a Picasso96 YUV bitmap.
- Experimental. Not tested yet. Currently limitted to MPEG-1.
- Requires a newer Picasso96 version which supports remapping
- YUV -> RGB bitmaps, otherwise you don't see any display.
- Requires at least animation.datatype V41.3.
-
- Defaults to HAM.
-
- LUM_RANGE -- sets the number of colors assigned to the luminance
- component when dithering the image. The product of LUM_RANGE,
- CR_RANGE and CB_RANGE should be less than the number of colors
- selected by the DEPTH option.
- This will only affect ORDERED and COLOR dithering and the base
- palette of the DICECOLOR remapping.
- Any value between 1 upto 255 is allowed, 0 is treated as 1.
-
- Defaults: see DEFAULTS section below
-
- CR_RANGE -- sets the number of colors assigned to the red component of
- the chrominace range when dithering the image. The product of
- LUM_RANGE, CR_RANGE and CB_RANGE should be less than the number of
- colors selected by the DEPTH option.
- This will only affect ORDERED and COLOR dithering and the base
- palette of the DICECOLOR remapping.
- Any value between 1 upto 255 is allowed, 0 is treated as 1.
-
- Defaults: see DEFAULTS section below
-
- CB_RANGE -- sets the number of colors assigned to the blue component
- of the chrominace range when dithering the image. The product of
- LUM_RANGE, CR_RANGE and CB_RANGE should be less than the number of
- colors selected by the DEPTH option.
- This will only affect ORDERED and COLOR dithering and the base
- palette of the DICECOLOR remapping.
- Any value between 1 upto 255 is allowed, 0 is treated as 1.
-
- Defaults: see DEFAULTS section below
-
- COLORERROR -- Set the error range when allocating colors.
- The error range is used for color matching
- (like this: if( ABS( (pixel . red) - (colormap . red) ) +
- ABS( <dito. green> ) + ABS( <dito. blue> )
- < colorerror ) then use this color index).
- A low value (0) means high quality remapping and slow remapping,
- high values (50) means low quality (using less color indexes).
-
- Defaults to 0.
-
- PALETTEPERFRAME -- Create a own palette for each frame.
- __Currently__ a NOP for HAM dithering and always a NOP
- for all direct-RGB output modes (24BITCHUNKY, 16BITCHUNKY,
- 24BITPLANAR).
-
- Note that this option requires animation.datatype V41 to work.
-
- NOPALETTERPERFRAME -- Turns PALETTEPERFRAME switch off.
-
- GAMMACORRECT -- Gamma correction value (defined as fixed point
- number).
- Defaults to "1.0".
-
- CHROMACORRECT -- Chroma correction value (defined as fixed point
- number).
- Defaults to "1.0".
-
- MAXFRAME -- Maximum number of frames to load.
- Defaults to 0, which means: Load all frames.
-
- SKIPFRAMES -- Load only the n-th frame of an animation.
- The internal timing (e.g. time code) is not affected, so
- the FPS value will be correct.
- Defaults to 0 which means: Skip no frame.
-
- Note that this option requires animation.datatype V41 to work
- properly.
-
- FPS -- frames per second
- Defaults to 0, which means: overtake fps rate from video stream.
- Setting the FPS value also affects an attched sound. The period
- of the sample (e.g. the playback speed) will everytimes as long
- as the frame is displayed.
-
- PFRAMES -- Turns off the NOPFRAMES option.
- Default is on.
-
- NOPFRAMES -- ignore any type P frames (predicted frames) when loading.
-
- BFRAMES -- Turns off the NOBFRAMES option.
- Default is on.
-
- NOBFRAMES -- ignore any type B frames (bidirectional frames) when
- loading.
- Default is off.
-
- DITHERATPLAYBACKTIME -- YUV -> RGB dithering is done at playback
- (ADTM_LOADFRAME) time.
- This saves time during decoding (LOADALL mode) and causes
- smoother loading on NOLOADALL mode. But only a mc68040 or higher
- should use this option.
- This option is also neccesary if you use CyberGFX output modes
- and wants to use VMM (CyberGFX bitmaps cannot be in VMM memory,
- but the YUV data can be there...).
-
- NODITHERATPLAYBACKTIME -- Turns the DITHERATPLAYBACKTIME option off.
-
- SAMPLE -- Attach the given sample to the animation. The sample will
- be loaded using datatypes (GID_SOUND).
- Only one sample can be attached to one video stream, any following
- attempt to attach the sample will be ignored.
-
- Default: no sample
-
- VOLUME -- Volume of the sound when playing.
- Defaults to 63, which is the maximum. A value greater than 64 will
- be set to 63.
-
- BUFFER -- read buffers size. Minimum is 2048, lower values are set to
- 2048.
- Defaults to 0.5% of the file size, but at least 2048 and max.
- 16384 bytes.
-
- LOADALL -- load all frames before displaying it.
-
- NOLOADALL -- turns off LOADALL switch (decode during playback).
-
- USEVMM -- Use Martin Apel's vmm.library for bitmaps.
- The verbose output will tell you if VMM memory will be used or
- not.
- The DITHERATPLAYBACKTIME option is required if you use
- CyberGFX output modes and wants to use VMM (CyberGFX bitmaps
- cannot be in VMM memory, but the YUV data can be there...).
- Default is off.
-
- NOUSEVMM -- Turn VMM usage for bitmaps off.
-
- MINTOTALMEM -- Minimum total memory available. If less memory
- available, abort loading.
- Defaults to 0, which means: Don't use this option.
-
- IGNOREERRORS -- Ignore errors while parsing/decoding etc.
- Usefull if a syntax error or read error (which may occur with
- some old, buggy CD filesystems) happens.
- Default is off.
-
- VERBOSE -- Verbose output. Prints out current frame etc., some
- statistical information and maybe, debugging infos.
- Verbose output will be printed in a console window
- ("CON://///auto/wait/close/inactive/MPEG Video DataType").
- Default is off.
-
- PROGRESSGAUGE -- Display a load progress gauge.
- Default is on.
-
- NOPROGRESSGAUGE -- Disables the progress gauge which is displayed
- during loading of the mpeg stream.
- Default is off.
-
- QUALITY -- If set, mpegvideo.datatype uses floating-point dct
- decoding, which results in a better output quality.
- (broken in V2.1)
- Default is off.
-
- NOQUALITY -- Turns QUALITY switch off.
- Default is on.
-
- And here comes the encoder options:
-
- ENCODERPARAMETERS
- PARFILE -- "mpeg2enc" like encoder parameters file
- Note that some options (like width/height) are ignored.
-
- ENC_REALLOC_LOADFRAME -- Enables "realloc"-like loading from
- souce object. This option allows that a ADTM_LOADFRAME
- from the source object can reuse data from a previous
- ADTM_LOADFRAME call.
- This option is on per default.
-
- ENC_NO_REALLOC_UNLOADFRAME -- Disables "realloc"-like loading from
- source object.
- This option was introduced for debugging and should not
- be set, otherwise loading from the source object may be much
- slower.
-
- ENC_RECONSTRUCTED_IMAGES --
- This user parameter tells the encoder what name to give the
- reconstructed frames. These frames are identical to frame
- reconstructions of decoders following normative guidelines
- (except of course for differences caused by different IDCT
- implementation).
- The reconstructed frames are always stored in Y,U,V format.
-
- ENC_INTRA_QUANT_MAXTRIX_FILE -- This option specifies a file
- containing a custom intra quantization matrix to be used instead
- of the default matrix specified in ISO/IEC 13818-2 and
- 11172-2. This file has to contain 64 integer values
- (range 1...255) separated by white space (blank, tab, or
- newline), one corresponding to each of the 64 DCT coefficients.
- They are ordered line by line, i.e. v-u frequency matrix order
- (not by the zig-zag pattern used for transmission). The example
- file "intra.mat" contains the default matrix as a starting point
- for customization. It is neither necessary or recommended to
- specify the default matrix explicitly.
-
- Large values correspond to coarse quantization and consequently
- more noise at that particular spatial frequency.
-
- For the intra quantization matrix, the first value in the file
- (DC value) is ignored. Use the parameter intra_dc_precision (see
- below) to define the quantization of the DC value.
-
- ENC_NON_INTRA_QUANT_MAXTRIX_FILE -- This option follows the same
- rules as described for the above intra quant matrix parameter,
- but specifies the file for the NON-INTRA coded (predicted /
- interpolated) blocks. In this case the first coefficient of the
- matrix is NOT ignored.
-
- The default matrix uses a constant value of 16 for all 64
- coefficients. (a flat matrix is thought to statistically minimize
- mean square error).
- The example file "inter.mat" contains an alternate matrix, used
- in the MPEG-2 test model.
-
- ENC_START_TIMECODE -- This option is used to set the timecode encoded
- into the first 'Group of Pictures' header. The format is based
- on the SMPTE style:
-
- hh:mm:ss:ff (hh=hour, mm=minute, ss=second, ff=frame
- (0..picture_rate-1)
-
- ENC_NUM_GOP_FRAMES -- This option defines the distance between I
- frames (and 'Group of Pictures' headers). Common values are 15
- for 30 Hz video and 12 for 25 Hz video.
-
- ENC_I_P_FRAME_DIST -- Distance between consecutive I or P frames.
- Usually set to 3. ENC_NUM_GOP_FRAMES has to be a multiple of
- ENC_I_P_FRAME_DIST. ENC_I_P_FRAME_DIST = 1 means no B
- frames in the sequence. (in a future edition of this program,
- ENC_I_P_FRAME_DIST=0 will mean only I frames).
-
- ENC_FORCE_MPEG1 -- Set this switch if you want to generate an MPEG-1
- sequence. In this case some of the subsequent MPEG-2 specific
- values are ignored.
-
- ENC_FIELD_PICTURES -- Selects frame picture coding, in which both
- fields of a frame are coded simultaneously.
- This switch is the reverse of the ENC_FRAME_PICTURES switch.
-
- ENC_FRAME_PICTURES -- Select field picture coding, where fields are
- coded separately. This option is permitted for interlaced
- video only.
- This switch is the reverse of the ENC_FIELD_PICTURES switch.
-
- ENC_ASPECT_RATIO_INFORMATION -- Defines the display aspect ratio.
- One of SQUARE_PELS or 1_1_DISPLAY or CODE_1
- 4_3_DISPLAY or CODE_2
- 16_9_DISPLAY or CODE_3
- 2_21_1_DISPLAY or CODE_4
-
- MPEG-1 uses a different coding of aspect ratios. In this cases
- codes CODE_1 to CODE_14 are valid.
-
- ENC_FRAME_RATE -- Defines the frame rate (for interlaced sequences:
- field rate is twice the frame rate).
-
- Frames/sec Meaning
- ---------- -----------------------------------------------
- 24000/1001 23.976 fps -- NTSC encapsulated film rate
- 24 Standard international cinema film rate
- 25 PAL (625/50) video frame rate
- 30000/1001 29.97 -- NTSC video frame rate
- 30 NTSC drop-frame (525/60) video frame rate
- 50 double frame rate/progressive PAL
- 60000/1001 double frame rate NTSC
- 60 double frame rate drop-frame NTSC
-
- one of
- ----------+----------+---------------------------------------
- 24000_1001|23_976_FPS|NTSC_ENCAPSULATED_FILM_RATE
- 24 |24_FPS |STANDARD_INTERNATIONAL_CINEMA_FILM_RATE
- 25 |25_FPS |PAL_VIDEO_FRAME_RATE
- 30000_1001|29_97_FPS |NTSC_VIDEO_FRAME_RATE
- 30 |30_FPS |NTSC_DROP_FRAME_VIDEO_FRAME_RATE
- 50 |50_FPS |DOUBLE_FRAME_RATE or PROGRESSIVE_PAL
- 60000_1001|59_94_FPS |DOUBLE_FRAME_RATE_NTSC
- 60 |60_FPS |DOUBLE_FRAME_RATE_DROP_FRAME_NTSC
- 15 |15_FPS |XING_RATE
-
- Or CODE_1 upto CODE_9.
-
- Note that the XING code 9 with 15 fps is not implemented yet.
-
- ENC_BIT_RATE -- A positive floating point value specifying the
- target bitrate. In units of bits/sec.
-
- ENC_VBV_BUFFER_SIZE -- Specifies, according to the Video Buffering
- Verifier decoder model, the size of the bitstream input buffer
- required in downstream decoders in order for the sequence to be
- decoded without underflows or or overflows. You probably will
- wish to leave this value at 112 for MPEG-2 Main Profile at Main
- Level, and 20 for Constrained Parameters Bitstreams MPEG-1.
-
- ENC_CONSTRAINED_PARAMETERS_FLAG -- Set this switch if you encode an
- MPEG-1 sequence which meets the parameter limits defined in
- ISO/IEC 11172-2 for constrained parameter bitstreams:
- horizontal_size <= 768
- vertical_size <= 576
- picture_area <= 396 macroblocks
- pixel_rate <= 396x25 macroblocks per second
- vbv_buffer_size <= 20x16384 bit
- bitrate <= 1856000 bits/second
- motion vector range <= -64...63.5
-
- ENC_NO_CONSTRAINED_PARAMETERS_FLAG -- Turns the
- ENC_CONSTRAINED_PARAMETERS_FLAG off;
- set this option always for MPEG-2 !
-
- ENC_PROFILE_ID -- Specifies the subset of the MPEG-2 syntax required
- for decoding the sequence. All MPEG-2 sequences generated by the
- current version of the encoder are either Main Profile or Simple
- Profile sequences.
-
- one of RESERVED_0
- HIGH
- SPATIALLY or SPATIALLY_SCALABLE
- SNR or SNR_SCALABLE
- MAIN
- SIMPLE
- RESERVED_6
- RESERVED_7
- RESERVED_8
- RESERVED_9
- RESERVED_10
- RESERVED_11
- RESERVED_12
- RESERVED_13
- RESERVED_14
- RESERVED_15
-
- Or use CODE_0 up to CODE_15.
-
- ENC_LEVEL_ID -- Specifies coded parameter constraints, such as
- bitrate, sample rate, and maximum allowed motion vector range.
-
- one of RESERVED_0
- RESERVED_1
- RESERVED_2
- RESERVED_3
- HIGH
- RESERVED_5
- HIGH_1440
- RESERVED_7
- MAIN
- RESERVED_9
- LOW
- RESERVED_11
- RESERVED_12
- RESERVED_13
- RESERVED_14
- RESERVED_15
-
- Or use CODE_0 upto CODE_15.
-
- ENC_PROGRESSIVE_SEQUENCE -- Set this switch for progressive video
- (e.g. film source).
- This switch is the reverse of the ENC_NOPROGRESSIVE_SEQUENCE
- switch.
-
- ENC_NOPROGRESSIVE_SEQUENCE -- Set this switch in the case of a
- sequences containing interlaced video (e.g. video camera source).
- This switch is the reverse of the ENC_PROGRESSIVE_SEQUENCE
- switch.
-
- ENC_CHROMA_FORMAT -- Specifies the resolution of chrominance data
- one of 420, 422, or 444.
- Or use CODE_1, CODE_2, CODE_3.
-
- ENC_VIDEO_FORMAT -- Specifies the video format
- One of COMP, PAL, NTSC, SECAM, MAC, UNSPEC
- Or use CODE_0 upto CODE_5.
-
- ENC_COLOR_PRIMARIES -- Specifies the x, y chromaticity coordinates of
- the source primaries.
-
- One of ITU-R_Rec._709
- unspecified
- ITU-R_Rec._624-4_System_M
- ITU-R_Rec._624-4_System_B_G
- SMPTE_170M
- SMPTE_240M
-
- Or use CODE_1 up to CODE_7.
-
- ENC_TRANSFER_CHARACTERISTICS -- Specifies the opto-electronic transfer
- characteristic of the source picture.
-
- One of ITU-R_Rec._709
- unspecified
- ITU-R_Rec._624-4_System_M
- ITU-R_Rec._624-4_System_B_G
- SMPTE_170M
- SMPTE_240M
- LINEAR_TRANSFER_CHARACTERISTICS
-
- Or use CODE_1 up to CODE_8.
-
- ENC_MATRIX_COEFFICIENTS -- Specifies the matrix coefficients used in
- deriving luminance and chrominance signals from the green,
- blue, and red primaries.
- One of ITU-R_Rec._709
- unspecified
- FCC
- ITU-R_Rec._624-4_System_B_G
- SMPTE_170M
- SMPTE_240M
-
- Or use CODE_1 up to CODE_7.
-
- ENC_INTRA_DC_PRECISION -- Specifies the effective precision of the
- DC coefficient in MPEG-2 intra coded macroblocks. 10-bits usually
- achieves quality saturation.
-
- One of 8, 9, 10, 11 or 8_BIT, 9_BIT and so on...
- Or use CODE_0 up to CODE_3.
-
-
- ENC_TOP_FIELD_FIRST
- ENC_ODD_FIELD_FIRST -- Specifies that the top fields of an interlaced
- frame comes earlier. The top field corresponds to what is often
- called the "odd field," and the bottom field is also sometimes
- called the "even field."
- This switch is the revers of the ENC_BOTTOM_FIELD_FIRST option.
-
- ENC_BOTTOM_FIELD_FIRST
- ENC_EVEN_FIELD_FIRST -- Specifies that the bottom fields of an
- interlaced frame comes earlier. The top field corresponds to what
- is often called the "odd field," and the bottom field is also
- sometimes called the "even field."
- This switch is the revers of the ENC_BOTTOM_FIELD_FIRST option.
-
- ENC_FRAME_PRED_FRAME_DCT_I -- Setting this parameter restricts motion
- compensation to frame prediction and DCT to frame DCT.
-
- ENC_NO_FRAME_PRED_FRAME_DCT_I -- Turns ENC_FRAME_PRED_FRAME_DCT_I off.
-
- ENC_FRAME_PRED_FRAME_DCT_P -- Setting this parameter restricts motion
- compensation to frame prediction and DCT to frame DCT.
-
- ENC_NO_FRAME_PRED_FRAME_DCT_P -- Turns ENC_FRAME_PRED_FRAME_DCT_P off.
-
- ENC_FRAME_PRED_FRAME_DCT_B -- Setting this parameter restricts motion
- compensation to frame prediction and DCT to frame DCT.
-
- ENC_NO_FRAME_PRED_FRAME_DCT_B -- Turns ENC_FRAME_PRED_FRAME_DCT_B
- off.
-
- DEFAULTS
- Defaults for the options are noted above.
-
- LUM_RANGE, CR_RANGE, CB_RANGE options have defaults based on the
- depth:
-
- depth | LUM_RANGE | CR_RANGE | CB_RANGE | comment
- ------+-----------+----------+----------+----------------------
- 8 | 7 | 6 | 6 | color output
- 7 | 5 | 5 | 5 | color output
- 6 | 4 | 4 | 4 | color output
- 5 | 3 | 3 | 3 | color output
- 4 | 16 | 1 | 1 | grayscale output
- 3 | 8 | 1 | 1 | grayscale output
- 2 | 4 | 1 | 1 | grayscale output
- 1 | 2 | 1 | 1 | black & white output
-
- NOTE
- An invalid prefs file line will force the default settings for this
- line and the VERBOSE option.
-
- BUGS
- - Low memory may cause that the prefs file won't be parsed.
-
- - Lines are limitted to 256 chars
-
- SEE ALSO
- mssg/mpeg2enc.doc
-
-