SolveigMM MKV Splitter filter
The MKV splitter filter implemented as a DirectShow filter. It can parse Matroska or WEB Matroska files
Filter Interfaces | IBaseFilter, IFileSinkFilter, IModuleConfig, IAMFilterMiscFlags, ISpecifyPropertyPages |
Input Pin Media Types | MEDIATYPE_Stream, MEDIASUBTYPE_NULL |
Input Pin Interfaces | IPin, IMemInputPin |
Output Pin Media Types | MEDIATYPE_Video, MEDIASUBTYPE_NULL; MEDIATYPE_Audio, MEDIASUBTYPE_NULL; |
Output Pin Interfaces | IPin, IMemInputPin |
Filter CLSID | CLSID_SMM_MKV_MUXER |
Property Page CLSID | Properties - {1DE3C022-610A-4528-8B8A-0F00BC997E88}, About - {C319D94C-5F60-4a76-9B8A-2836DD99CD81} |
Executable | SMM_MKVSplitter.ax |
Merit | MERIT_DO_NOT_USE |
Filter Category | CLSID_LegacyAmFilterCategory |
Declared in | PropID_MatroskaDemuxer.h |
Features
The filter's property page is shown on fig. 1. It includes the following control elements:
- Annex B Output checkbox - Enables the AnnexB output stream's format for AVC/H264 video.
- Separate pins checkbox - makes one pin for each stream contained in a file.
- A table with the information about file's chapters (if any).
Usage
NOTE: All changes must be applied (using either APPLY button in Graph Editor or Apply method of IPropertyPage interface) to take place, the default values are used otherwise. To use the filter manually:
- Add filter to a graph.
- Build the graph.
- Set desired properties for each input streams and the type of output stream.
- Run the graph.
To use programmatically not using property page:
The following section describes the Parameter GUIDs declared in the PropID_MatroskaDemuxer.h header file to be used for tuning the SolveigMM MKV Splitter Filter by means of the IModuleConfig interface.
The following table provides an overview of the Parameter GUIDs of SolveigMM Matroska Splitter DirectShow Filter:
Parameter GUID | Value type | Description |
SMMKV_H264_ANNEXB | VT_BOOL | Sets/Gets the compatibility with AVC ANNEX B for AVC/H264 video |
SMMKV_SEPARATE_PINS | VT_BOOL | Enables separate pin for each stream. |
SMMV_SETPOSITION | VT_I8 | Sets current position(in REFERENCE_TIME). |
SMMKV_CHAPTERS | VT_UINT VT_PTR |
Sets tracks properties. |
SMMKV_DOCTYPE | VT_I4 | Gets current filte's type. |
SMMKV_H264_ANNEXB
GUID:
{6F1A0CF5-46C1-4232-815A-17881C912285}
Description:
Used to get/set the compatibility with AVC ANNEX B for AVC/H264 video
Type:
VT_BOOL (boolVal)
SMMKV_SEPARATE_PINS
GUID:
{56C387DF-68DE-47f4-8135-C8C4EF852B37}
Description:
Forces the filter to create one separate pin for each output stream.
Type:
VT_BOOL (boolVal)
SMMV_SETPOSITION
GUID:
{04FC1B8B-4642-4022-9269-C9361895CD98}
Description:
Sets current position.
Type:
VT_I8 (llVal)
SMMKV_DOCTYPE
GUID:
{90B2F4C2-0B5F-4834-92A9-8AC9F086E681}
Description:
Gets the type of file. Returns a value of SMMKV_DOCTYPE_ENUM type.
Type:
VT_I4 (lVal)
SMMKV_CHAPTERS
GUID:
{AE39E38E-03DC-4df9-B620-7EF686373239}
Description:
Used to read information about file's chapters.
Type:
VT_UINT (uintVal)
VT_PTR (pbVal)
Usage:
- Read the number of chapters with VT_UINT.
- Allocate memory block enough to get the information( Number of chapters * size of ChapterEntry structure ).
- Pass the memory pointer as a pbVal with VT_PTR.
- Use the pointer as an array of ChapterEnty.
ChapterEntry Structure
struct ChapterEntry {
BSTR name;
REFERENCE_TIME tStart;
REFERENCE_TIME tStop;
}
Members:
name
Chapter's name.
tStart
Chapter's start position.
tStrop
Chapter's end position.