#define MAKE_MEDIA_PATH(pFileName) (TEXT("C:\\LEADTOOLS 17.5\\Media\\")TEXT(pFileName)) 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); }