IMCMPEncoderOption Interface

Interface Properties:

Type

Name

Description

long

Format

Gets or sets a value that represents the codec A COmpressor Also known as an encoder, this is a module or algorithm to compress data. Playing that data back requires a decompressor, or decoder. combined with a DECompressor, or encoder Also known as compressor, this is a module or algorithm to compress data. Playing that data back requires a decompressor, or decoder. and a decoder Also known as a decompressor, this is a module or algorithm to decompress data., which allows you to both compress and decompress that same data. format. Possible values are:

FORMAT_MCMP:                   [5] MCMP format
FORMAT_LOSSLESSJPEG:   [-1] Lossless JPEG
FORMAT_MJPEG_411:          [21] MJPEG 4:1:1 subsampling. Has a higher compression ratio than 4:2:2 and 4:4:4.
FORMAT_MJPEG_422:          [23] MJPEG 4:2:2 subsampling. Lower compression ratio than 4:1:1, higher compression than 4:4:4.
FORMAT_MJPEG_444:          [10] MJPEG 4:4:4 subsampling.

long

Quality

Gets or sets the quality factor for compression. A QFactor of 2 has the highest quality and lowest compression ratio. As the QFactor increases, the quality decreases and the compression ratio increases. A QFactor of 255 has the lowest quality and highest compression ratio. Possible values for each format are:

FORMAT_MCMP:                    -9...-1 and 2...255 where negative values represent:

                                               QFACTOR_PQ1:    (-1) Perfect quality option 1.

                                               QFACTOR_PQ2:    (-2) Perfect quality option 2.

                                               QFACTOR_QFS:    (-3) Quality far more important than size.

                                               QFACTOR_QMS:   (-4) Quality more important than size.

                                               QFACTOR_QS:      (-5) Quality and size are equally important.

                                               QFACTOR_SQS:    (-6) Size more important than quality - Sharp.

                                               QFACTOR_SQT:     (-7) Size more important than quality - Less Tilling.

                                               QFACTOR_MCQ     (-8) Max Compression, keeping quality as good as possible.

                                               QFACTOR_MC:      (-9) Max compression

FORMAT_LOSSLESSJPEG:    QFactor is ignored for lossless JPEG.

FORMAT_MJPEG_411:            2...255

FORMAT_MJPEG_422:            2...255

FORMAT_MJPEG_444:            2...255

long

Flags

Gets or sets the compression flags. These flags can be OR-ed together, except for the FLAGS_INTERLEAVE_XXX flags. Only one of the interleave flags can be set. Setting FLAGS_INTERLEAVE_NEVER is equal to setting no interleave flags at all. Possible values are:
 

FLAGS_DISABLE_ENCODER:       [0x0001] Disables the MCMP/MJPEG VFW encoder. NOTE: This flag is deprecated and should not be used anymore.
 

FLAGS_DISABLE_DECODER:  [0x0002] Disables the MCMP/MJPEG VFW decoder. NOTE: If you disable the decoder, you will not be able to use it to decode MJPEG or MCMP video again until re-enabled programmatically or through a utility like GraphEdit. This flag is deprecated and should not be used anymore..
 

FLAGS_INTERLEAVE_NEVER:             [0x0000] Save images non-interleaved.
 

FLAGS_INTERLEAVE_288:                   [0x0004] Interleave images with height >= 288.
 

FLAGS_INTERLEAVE_ALWAYS:          [0x0008] Set this to save interlaced MJPG files.
 

FLAGS_FLIP_YUV:                              [0x0010] Indicates how YUV video data is handled. If this flag is not set, then YUV video with a positive height value (BITMAPINFOHEADER.biHeight) is handled as normal video, top side up. YUV video with a negative height value is handled as flipped video, bottom side up. If this flag is set, then YUV video with a positive height value is handled as flipped video, bottom side up, and YUV video with a negative height value is handled as normal, top side up.
 

FLAGS_OVERRIDE_DEFAULTS:          [0x0020] If this flag is set, then the defaults are overridden.
 

FLAGS_NO_REGISTRY_SAVE:            [0x0040] Do not save these settings in the registry. Set this flag if the compression is temporarily disabled because the input does not permit compression.

long

FilterState

(Read only) Gets a value that represents the state of the filter. Possible values are:

FilterState_Stopped:  [0] The filter is stopped.
FilterState_Paused:   [1] The filter is paused.
FilterState_Running:  [2] The filter is running.

 

 

IAMVideoCompression Interface

This is a standard DirectShow® interface. For full documentation, please refer to DirectShow® documentation.

This interface allows you to select only the quality factor for the codec. For full control over the codec settings, use the IMCMPEncoderOption interface.

Interface Properties:

Type

Name

Description

long

Quality

Gets or sets the quality factor for compression. Possible values are:

0.0...1.0:    Same meaning as in DirectShow®. 1.0 is the best quality/lowest compression and 0 is lowest quality/highest compression.

 

Over 1.0:    Lossless compression. Setting the quality factor to this value will automatically set the format to Lossless JPEG.

 

-9...-1:       Predefined quality factor. For more information on these values, refer to IMCMPEncoderOption::QFactor. Setting the quality value to one of these values will automatically set the format to MCMP.

 

< -9:         Undefined. Do not use.