void SetDVDSettingsExample (void)
{
// Create the converter object
IltmmConvert* pConvert;
IUnknown* punk;
IltmmDVDSource* pDVDSource;
HRESULT hr = CoCreateInstance(&CLSID_ltmmConvert, NULL, CLSCTX_INPROC_SERVER, &IID_IltmmConvert, (void**) &pConvert);
if(FAILED(hr))
{
return;
}
// Force the DVD source to be used
IltmmConvert_put_UseDVDSource(pConvert, VARIANT_TRUE);
// Set the source DVD image
IltmmConvert_put_SourceFile(pConvert, MAKE_MEDIA_PATH("VIDEO_TS.IFO"));
IltmmConvert_put_TargetFile(pConvert, MAKE_MEDIA_PATH("DVDImage.avi"));
// Get the DVD source interface
IltmmConvert_GetSubObject(pConvert, ltmmConvert_Object_SourceFilter, &punk);
if (punk)
{
IUnknown_QueryInterface(punk, &IID_IltmmDVDSource, (void**)&pDVDSource);
if (pDVDSource)
{
IltmmDVDTitle *pTitle;
long lCount;
long lVal;
VARIANT_BOOL vbVal;
double dVal;
BSTR strPlayList;
int i;
// Select the mian title in the dics
IltmmDVDSource_get_Selected (pDVDSource, &lVal);
if (lVal != ltmmDVDSource_Main_Selected)
IltmmDVDSource_put_Selected(pDVDSource, ltmmDVDSource_Main_Selected);
// Get the disc duration
IltmmDVDSource_get_TotalDuration(pDVDSource, &dVal);
// Do something with the value
// Get the selected title duration
IltmmDVDSource_get_SelectedDuration(pDVDSource, &dVal);
// Do something with the value
// Get the play list settings
IltmmDVDSource_get_PlayList(pDVDSource, &strPlayList);
// You can save this to a file and restore the settings later
// Restore the playlist settings
IltmmDVDSource_put_PlayList(pDVDSource, strPlayList);
// Free the string
SysFreeString(strPlayList);
// Get the title count in the disc
IltmmDVDSource_get_TitleCount(pDVDSource, &lCount);
for (i = 0; i < lCount; i++)
{
// Get the title interface
IltmmDVDSource_GetTitle(pDVDSource, i, &pTitle);
if (pTitle)
{
// Get the X aspect
IltmmDVDTitle_get_AspectX(pTitle, &lVal);
// Do something with the value
// Get the Y aspect
IltmmDVDTitle_get_AspectY(pTitle, &lVal);
// Do something with the value
// Get if the title is a film mode or camera mode
IltmmDVDTitle_get_IsFilmMode(pTitle, &vbVal);
// Do something with the value
// Get if there is user data in line 21, field 1
IltmmDVDTitle_get_Line21Field1InGOP(pTitle, &vbVal);
// Do something with the value
// Get if there is user data in line 21, field 2
IltmmDVDTitle_get_Line21Field2InGOP(pTitle, &vbVal);
// Do something with the value
// Get the compression
IltmmDVDTitle_get_Compression(pTitle, &lVal);
// Do something with the value
// Get the X source resolution
IltmmDVDTitle_get_SourceResolutionX(pTitle, &lVal);
// Do something with the value
// Get the Y source resolution
IltmmDVDTitle_get_SourceResolutionY(pTitle, &lVal);
// Do something with the value
// Get the Frame Height
IltmmDVDTitle_get_FrameHeight(pTitle, &lVal);
// Do something with the value
// Get the Frame Rate
IltmmDVDTitle_get_FrameRate(pTitle, &lVal);
// Do something with the value
// Get if the source is letter boxed
IltmmDVDTitle_get_IsSourceLetterboxed(pTitle, &vbVal);
// Do something with the value
// Get if the picture can be shown as letterbox
IltmmDVDTitle_get_LetterboxPermitted(pTitle, &vbVal);
// Do something with the value
// Get if the picture can be shown as pan-scan
IltmmDVDTitle_get_PanscanPermitted(pTitle, &vbVal);
// Do something with the value
// Get the title duration
IltmmDVDTitle_get_TotalDuration(pTitle, &dVal);
// Do something with the value
// Select all title chapters
IltmmDVDTitle_get_Selected(pTitle, &lVal);
if (lVal != ltmmDVDSource_Selected)
IltmmDVDTitle_put_Selected(pTitle, ltmmDVDSource_Selected);
// Get the selected chapter duration
IltmmDVDTitle_get_SelectedDuration(pTitle, &dVal);
// Do something with the value
// Get the audio stream count in the title
IltmmDVDTitle_get_AudioStreamCount(pTitle, &lVal);
if (lVal > 0)
{
IltmmDVDAudioStream* pAudioStream;
// Select the first audio stream
IltmmDVDTitle_get_SelectedAudioStream(pTitle, &lVal);
if (lVal == -1)
IltmmDVDTitle_put_SelectedAudioStream(pTitle, 0);
// Get the first audio stream
IltmmDVDTitle_GetAudioStream(pTitle, 0, &pAudioStream);
if (pAudioStream)
{
// Select the audio stream
IltmmDVDAudioStream_get_Selected(pAudioStream, &vbVal);
if (vbVal == VARIANT_FALSE)
IltmmDVDAudioStream_put_Selected(pAudioStream, VARIANT_TRUE);
// Get the application mode
IltmmDVDAudioStream_get_AppMode(pAudioStream, &lVal);
// Do something with the value
// Get the application mode data
IltmmDVDAudioStream_get_AppModeData(pAudioStream, &lVal);
// Do something with the value
// Get the auido format
IltmmDVDAudioStream_get_AudioFormat(pAudioStream, &lVal);
// Do something with the value
// Get the number of channels
IltmmDVDAudioStream_get_Channels(pAudioStream, &lVal);
// Do something with the value
// Get the frequency
IltmmDVDAudioStream_get_Frequency(pAudioStream, &lVal);
// Do something with the value
// Get the language
IltmmDVDAudioStream_get_Language(pAudioStream, &lVal);
// Do something with the value
// Get the language extension
IltmmDVDAudioStream_get_LanguageExtension(pAudioStream, &lVal);
// Do something with the value
// Get the quantization
IltmmDVDAudioStream_get_Quantization(pAudioStream, &lVal);
// Do something with the value
// Free the pointer
IltmmDVDAudioStream_Release(pAudioStream);
}
}
// Get the subpicture stream count
IltmmDVDTitle_get_SubpictureStreamCount(pTitle, &lVal);
if (lVal > 0)
{
IltmmDVDSubpictureStream* pSubpictureStream;
// Select the first subpicture stream
IltmmDVDTitle_get_SelectedSubpictureStream(pTitle, &lVal);
if (lVal == -1)
IltmmDVDTitle_put_SelectedSubpictureStream(pTitle, 0);
// Get the first subpicture stream
IltmmDVDTitle_GetSubpictureStream(pTitle, 0, &pSubpictureStream);
if (pSubpictureStream)
{
// Select the subpicture stream
IltmmDVDSubpictureStream_get_Selected(pSubpictureStream, &vbVal);
if (vbVal == VARIANT_FALSE)
IltmmDVDSubpictureStream_put_Selected(pSubpictureStream, VARIANT_TRUE);
// Get the coding mode
IltmmDVDSubpictureStream_get_CodingMode(pSubpictureStream, &lVal);
// Do something with the value
// Get the langauge
IltmmDVDSubpictureStream_get_Language(pSubpictureStream, &lVal);
// Do something with the value
// Get the language extension
IltmmDVDSubpictureStream_get_LanguageExtension(pSubpictureStream, &lVal);
// Do something with the value
// Get the type
IltmmDVDSubpictureStream_get_Type(pSubpictureStream, &lVal);
// Do something with the value
// Free the pointer
IltmmDVDSubpictureStream_Release(pSubpictureStream);
}
}
// Get the chapter count
IltmmDVDTitle_get_ChapterCount(pTitle, &lVal);
if (lVal > 0)
{
// Get the first chapter
IltmmDVDChapter* pChapter;
IltmmDVDTitle_GetChapter(pTitle, 0, &pChapter);
// Get the chapter duration
IltmmDVDChapter_get_Duration(pChapter, &dVal);
// Get if the chapter is selected
IltmmDVDChapter_get_Selected(pChapter, &vbVal);
if (vbVal == VARIANT_FALSE)
IltmmDVDChapter_put_Selected(pChapter, VARIANT_TRUE);
// Free the pointer
IltmmDVDChapter_Release(pChapter);
}
IltmmDVDTitle_Release(pTitle);
}
}
IltmmDVDSource_Release(pDVDSource);
}
IUnknown_Release(punk);
}
IltmmConvert_Release(pConvert);
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.