M-JPEG Video Encoder

From AVObjects Knowledge Base
(Difference between revisions)
Jump to: navigation, search
(Features)
Line 37: Line 37:
  
 
* Lossless encoding
 
* Lossless encoding
 +
 +
==DirectShow Interfaces==
 +
 +
[12:13:08] Dmitry Nikitin: // Filter compresses an uncompressed video stream, using motion JPEG compression.
 +
// Next compression modes supported:
 +
// - YUY2 / Interlaced
 +
// - YUY2 / Progressive
 +
// - ARGB32 (4 planes) / Interlaced
 +
// - ARGB32 (4 planes) / Progressive
 +
// Output media type has for YUY2 BITMAPINFOHEADER::biBitCount = 24 and for ARGB32 = 32
 +
//
 +
 +
 +
{|
 +
|-
 +
|Filter Interfaces:
 +
|IBaseFilter, IPersistStream, ISpecifyPropertyPages, IMLMjpegEncoder
 +
 +
|-
 +
|Input Pin Media Types
 +
|Default mode and if IMLMjpegEncoder::SetARGB32Encoding(FALSE) called
 +
MEDIATYPE_Video, MEDIASUBTYPE_YUY2, MEDIASUBTYPE_UYVY, MEDIASUBTYPE_YVYU, MEDIASUBTYPE_ARGB32, MEDIASUBTYPE_RGB32, MEDIASUBTYPE_RGB24, MEDIASUBTYPE_RGB565, MEDIASUBTYPE_RGB555, MEDIASUBTYPE_YV12, MEDIASUBTYPE_I420
 +
IMLMjpegEncoder::SetARGB32Encoding(TRUE) called:
 +
MEDIATYPE_Video, MEDIASUBTYPE_ARGB32
 +
 +
|}
 +
 +
 +
 +
 +
 +
//
 +
// Input Pin Interfaces
 +
//  IMemInputPin, IPin, IQualityControl
 +
//
 +
// Output Pin Media Types
 +
//  MEDIATYPE_Video, MEDIASUBTYPE_MJPG
 +
//  FORMAT_VideoInfo
 +
//  FORMAT_VideoInfo2
 +
//
 +
// Output Pin Interfaces
 +
//  IAMStreamConfig, IAMVideoCompression, IMediaSeeking, IPin, IQualityControl
 +
//
 +
// IAMStreamConfig
 +
// IAMStreamConfig returns 2 possible media types (with FORMAT_VideoInfo2 and FORMAT_VideoInfo)
 +
// With IAMStreamConfig::SetFormat() next parts of output media type can be changed:
 +
//  - for FORMAT_VideoInfo:
 +
//  VIDEOINFOHEADER::dwBitRate and AvgTimePerFrame
 +
//  - for FORMAT_VideoInfo2:
 +
//  VIDEOINFOHEADER2::dwBitRate, AvgTimePerFrame, dwInterlaceFlags,
 +
//  dwPictAspectRatioX, dwPictAspectRatioY
 +
// Media type from IAMStreamConfig::SetFormat() cleared after:
 +
//  - input pin disconnection
 +
//  - IAMStreamConfig::SetFormat(NULL) call
 +
//  - IMLMjpegEncoder::SetARGB32Encoding() call (input pin reconnection executed)
 +
//
 +
// IAMVideoCompression
 +
// only next methods implemented:
 +
//  - put_Quality()
 +
//  - get_Quality()
 +
//  - GetInfo()
 +
//
 +
// Merit
 +
//  MERIT_DO_NOT_USE
 +
//
 +
// Filter Categories
 +
//  CLSID_VideoCompressorCategory, CLSID_MediaLooksCategory
 +
//
  
 
==See Also==
 
==See Also==

Revision as of 12:06, 28 August 2009

This page is a copy of the original page on the AVObjects' web site and can also be viewed here.

High-quality M-JPEG video encoder DirectShow filter with ARGB32 (alpha channel) support.

Overview

MediaLooks M-JPEG Video Encoder is a high-performance DirectShow encoder for Motion JPEG video with alpha channel support.

M-JPEG Compression Technology Features

  • Real-time encoding/decoding of HD video.
  • Ease of reverse playback.

Features

  • Multiple CPU support.
  • ARGB32 support (alpha channel).
  • Bitrate or quality management.
  • Interlaced/progressive input streams.
  • Opportunity of correction of interlace parameters.
  • Multiple color spaces on input (YUV macropixels, RGB, YUV planar).
  • Compatibility with third-party decoders.
  • Highly optimized for the Intel processor family.

Future Features:

  • Lossless encoding

DirectShow Interfaces

[12:13:08] Dmitry Nikitin: // Filter compresses an uncompressed video stream, using motion JPEG compression. // Next compression modes supported: // - YUY2 / Interlaced // - YUY2 / Progressive // - ARGB32 (4 planes) / Interlaced // - ARGB32 (4 planes) / Progressive // Output media type has for YUY2 BITMAPINFOHEADER::biBitCount = 24 and for ARGB32 = 32 //


Filter Interfaces: IBaseFilter, IPersistStream, ISpecifyPropertyPages, IMLMjpegEncoder
Input Pin Media Types Default mode and if IMLMjpegEncoder::SetARGB32Encoding(FALSE) called

MEDIATYPE_Video, MEDIASUBTYPE_YUY2, MEDIASUBTYPE_UYVY, MEDIASUBTYPE_YVYU, MEDIASUBTYPE_ARGB32, MEDIASUBTYPE_RGB32, MEDIASUBTYPE_RGB24, MEDIASUBTYPE_RGB565, MEDIASUBTYPE_RGB555, MEDIASUBTYPE_YV12, MEDIASUBTYPE_I420 IMLMjpegEncoder::SetARGB32Encoding(TRUE) called: MEDIATYPE_Video, MEDIASUBTYPE_ARGB32



// // Input Pin Interfaces // IMemInputPin, IPin, IQualityControl // // Output Pin Media Types // MEDIATYPE_Video, MEDIASUBTYPE_MJPG // FORMAT_VideoInfo // FORMAT_VideoInfo2 // // Output Pin Interfaces // IAMStreamConfig, IAMVideoCompression, IMediaSeeking, IPin, IQualityControl // // IAMStreamConfig // IAMStreamConfig returns 2 possible media types (with FORMAT_VideoInfo2 and FORMAT_VideoInfo) // With IAMStreamConfig::SetFormat() next parts of output media type can be changed: // - for FORMAT_VideoInfo: // VIDEOINFOHEADER::dwBitRate and AvgTimePerFrame // - for FORMAT_VideoInfo2: // VIDEOINFOHEADER2::dwBitRate, AvgTimePerFrame, dwInterlaceFlags, // dwPictAspectRatioX, dwPictAspectRatioY // Media type from IAMStreamConfig::SetFormat() cleared after: // - input pin disconnection // - IAMStreamConfig::SetFormat(NULL) call // - IMLMjpegEncoder::SetARGB32Encoding() call (input pin reconnection executed) // // IAMVideoCompression // only next methods implemented: // - put_Quality() // - get_Quality() // - GetInfo() // // Merit // MERIT_DO_NOT_USE // // Filter Categories // CLSID_VideoCompressorCategory, CLSID_MediaLooksCategory //

See Also

Downloads

Licensing

If you are interested in licensing this product please contact us through the link below.

Personal tools