Imports Leadtools
Imports Leadtools.Multimedia
Imports LeadtoolsMultimediaExamples.Fixtures
Public _result As Boolean = False
Public _form As ConvertCtrlForm = New ConvertCtrlForm()
Public Sub UseDVDSourceExample()
' reference the convert control
Dim convertctrl As ConvertCtrl = _form.ConvertCtrl
' input and output files
Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "VIDEO_TS.IFO")
Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "ConvertCtrl_UseDVDSourceExample.avi")
Try
Dim dvdSource As DVDSource
Dim title As DVDTitle
Dim chapter As DVDChapter
Dim subpictureStream As DVDSubpictureStream
Dim audioStream As DVDAudioStream
Dim comp As DVDVideoCompression
Dim appMode As DVDAudioAppMode
Dim audFormat As DVDAudioFormat
Dim audLangExt As DVDAudioLangExt
Dim subPicCoding As DVDSubpictureCoding
Dim subPicLangExt As DVDSubpictureLangExt
Dim subPicType As DVDSubpictureType
Dim i As Integer
Dim lCount As Integer
Dim lVal As Long
Dim bVal As Boolean
Dim dVal As Double
Dim strPlayList As String
' force to use the DVD source
convertctrl.UseDVDSource = True
' set the input and output files
convertctrl.SourceFile = inFile
convertctrl.TargetFile = outFile
' reference the DVDSource object
dvdSource = CType(convertctrl.GetSubObject(ConvertObject.SourceFilter), DVDSource)
' Select the main title on the disc
If (dvdSource.Selected <> DVDSourceSelectedState.MainSelected) Then
dvdSource.Selected = DVDSourceSelectedState.MainSelected
End If
' Get the disc duration
dVal = dvdSource.TotalDuration
' Get the selected title duration
dVal = dvdSource.SelectedDuration
' Get the play list settings
strPlayList = dvdSource.PlayList
' You can save this to a file and restore the settings later
' Restore the playlist settings
dvdSource.PlayList = strPlayList
' Get the title count in the disc
lCount = dvdSource.TitleCount
i = 0
Do While (i <= (lCount - 1))
' Get the title interface
title = dvdSource.GetTitle(i)
' Get the X and Y aspects
lVal = title.AspectX
lVal = title.AspectY
' Get if the title is a film mode or camera mode
bVal = title.IsFilmMode
' Get if there is a user data in line 21, field 1
bVal = title.Line21Field1InGOP
' Get if there is a user data in line 21, field 2
bVal = title.Line21Field2InGOP
' Get the compression
comp = title.Compression
' Get the X source resolution
lVal = title.SourceResolutionX
' Get the Y source resolution
lVal = title.SourceResolutionY
' Get the Frame Height
lVal = title.FrameHeight
' Get the Frame Rate
lVal = title.FrameRate
' Get if the source is a letter boxed
bVal = title.IsSourceLetterboxed
' Get if the picture can be shown as letterbox
bVal = title.LetterboxPermitted
' Get if the picture can be shown as pan-scan
bVal = title.PanscanPermitted
' Get the title duration
dVal = title.TotalDuration
' Select all title chapters
If (title.Selected <> DVDTitleSelectedState.Selected) Then
title.Selected = DVDTitleSelectedState.Selected
End If
' Get the selected chapter duration
dVal = title.SelectedDuration
' Get the audio stream count in the title
If (title.AudioStreamCount > 0) Then
' Select the first audio stream
If (title.SelectedAudioStream = -1) Then
title.SelectedAudioStream = 0
End If
' Get the first audio stream
audioStream = title.GetAudioStream(0)
' Select the audio stream
If (audioStream.Selected = False) Then
audioStream.Selected = True
End If
' Get the application mode
appMode = audioStream.AppMode
' Get the application mode data
lVal = audioStream.AppModeData
' Get the auido format
audFormat = audioStream.AudioFormat
' Get the number of channels
lVal = audioStream.Channels
' Get the frequency
lVal = audioStream.Frequency
' Get the language
lVal = audioStream.Language
' Get the language extension
audLangExt = audioStream.LanguageExtension
' Get the quantization
lVal = audioStream.Quantization
If (title.SubpictureStreamCount > 0) Then
' Select the first subpicture stream
If (title.SelectedSubpictureStream = -1) Then
title.SelectedSubpictureStream = 0
End If
' Get the first subpicture stream
subpictureStream = title.GetSubpictureStream(0)
' Select the subpicture stream
If (subpictureStream.Selected = False) Then
subpictureStream.Selected = True
End If
' Get the coding mode
subPicCoding = subpictureStream.CodingMode
' Get the langauge
lVal = subpictureStream.Language
' Get the language extension
subPicLangExt = subpictureStream.LanguageExtension
' Get the type
subPicType = subpictureStream.Type
End If
' Get the chapter count
If (title.ChapterCount > 0) Then
' Get the first chapter
chapter = title.GetChapter(0)
' Get the chapter duration
dVal = chapter.Duration
' Get if the chapter is selected
If (chapter.Selected = False) Then
chapter.Selected = True
End If
End If
End If
i += 1
Loop
Catch e1 As COMException
_result = False
Catch e2 As Exception
_result = False
End Try
' we'll loop on the state and pump messages for this example.
' but you should not need to if running from a Windows Forms application.
Do While convertctrl.State = ConvertState.Running
Application.DoEvents()
Loop
End Sub
Public NotInheritable Class LEAD_VARS
Public Const MediaDir As String = "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media"
End Class
using Leadtools;
using Leadtools.Multimedia;
using LeadtoolsMultimediaExamples.Fixtures;
public bool _result = false;
public ConvertCtrlForm _form = new ConvertCtrlForm();
public void UseDVDSourceExample()
{
// reference the convert control
ConvertCtrl convertctrl = _form.ConvertCtrl;
// input and output files
string inFile =Path.Combine(LEAD_VARS.MediaDir,@"VIDEO_TS\VIDEO_TS.IFO");
string outFile = Path.Combine(LEAD_VARS.MediaDir,"ConvertCtrl_UseDVDSourceExample.avi");
try
{
DVDSource dvdSource;
DVDTitle title;
DVDChapter chapter;
DVDSubpictureStream subpictureStream;
DVDAudioStream audioStream;
DVDVideoCompression comp;
DVDAudioAppMode appMode;
DVDAudioFormat audFormat;
DVDAudioLangExt audLangExt;
DVDSubpictureCoding subPicCoding;
DVDSubpictureLangExt subPicLangExt;
DVDSubpictureType subPicType;
int i;
int lCount;
long lVal;
bool bVal;
double dVal;
string strPlayList;
// force to use the DVD source
convertctrl.UseDVDSource = true;
// set the input and output files
convertctrl.SourceFile = inFile;
convertctrl.TargetFile = outFile;
// reference the DVDSource object
dvdSource = (DVDSource)convertctrl.GetSubObject(ConvertObject.SourceFilter);
// Select the main title on the disc
if ((dvdSource.Selected != DVDSourceSelectedState.MainSelected))
dvdSource.Selected = DVDSourceSelectedState.MainSelected;
// Get the disc duration
dVal = dvdSource.TotalDuration;
// Get the selected title duration
dVal = dvdSource.SelectedDuration;
// Get the play list settings
strPlayList = dvdSource.PlayList;
// You can save this to a file and restore the settings later
// Restore the playlist settings
dvdSource.PlayList = strPlayList;
// Get the title count in the disc
lCount = dvdSource.TitleCount;
for (i = 0; (i <= (lCount - 1)); i++)
{
// Get the title interface
title = dvdSource.GetTitle(i);
// Get the X and Y aspects
lVal = title.AspectX;
lVal = title.AspectY;
// Get if the title is a film mode or camera mode
bVal = title.IsFilmMode;
// Get if there is a user data in line 21, field 1
bVal = title.Line21Field1InGOP;
// Get if there is a user data in line 21, field 2
bVal = title.Line21Field2InGOP;
// Get the compression
comp = title.Compression;
// Get the X source resolution
lVal = title.SourceResolutionX;
// Get the Y source resolution
lVal = title.SourceResolutionY;
// Get the Frame Height
lVal = title.FrameHeight;
// Get the Frame Rate
lVal = title.FrameRate;
// Get if the source is a letter boxed
bVal = title.IsSourceLetterboxed;
// Get if the picture can be shown as letterbox
bVal = title.LetterboxPermitted;
// Get if the picture can be shown as pan-scan
bVal = title.PanscanPermitted;
// Get the title duration
dVal = title.TotalDuration;
// Select all title chapters
if ((title.Selected != DVDTitleSelectedState.Selected))
title.Selected = DVDTitleSelectedState.Selected;
// Get the selected chapter duration
dVal = title.SelectedDuration;
// Get the audio stream count in the title
if ((title.AudioStreamCount > 0))
{
// Select the first audio stream
if ((title.SelectedAudioStream == -1))
title.SelectedAudioStream = 0;
// Get the first audio stream
audioStream = title.GetAudioStream(0);
// Select the audio stream
if ((audioStream.Selected == false))
audioStream.Selected = true;
// Get the application mode
appMode = audioStream.AppMode;
// Get the application mode data
lVal = audioStream.AppModeData;
// Get the auido format
audFormat = audioStream.AudioFormat;
// Get the number of channels
lVal = audioStream.Channels;
// Get the frequency
lVal = audioStream.Frequency;
// Get the language
lVal = audioStream.Language;
// Get the language extension
audLangExt = audioStream.LanguageExtension;
// Get the quantization
lVal = audioStream.Quantization;
if ((title.SubpictureStreamCount > 0))
{
// Select the first subpicture stream
if ((title.SelectedSubpictureStream == -1))
title.SelectedSubpictureStream = 0;
// Get the first subpicture stream
subpictureStream = title.GetSubpictureStream(0);
// Select the subpicture stream
if ((subpictureStream.Selected == false))
subpictureStream.Selected = true;
// Get the coding mode
subPicCoding = subpictureStream.CodingMode;
// Get the langauge
lVal = subpictureStream.Language;
// Get the language extension
subPicLangExt = subpictureStream.LanguageExtension;
// Get the type
subPicType = subpictureStream.Type;
}
// Get the chapter count
if ((title.ChapterCount > 0))
{
// Get the first chapter
chapter = title.GetChapter(0);
// Get the chapter duration
dVal = chapter.Duration;
// Get if the chapter is selected
if ((chapter.Selected == false))
chapter.Selected = true;
}
}
}
}
catch (COMException)
{
_result = false;
}
catch (Exception)
{
_result = false;
}
// we'll loop on the state and pump messages for this example.
// but you should not need to if running from a Windows Forms application.
while (convertctrl.State == ConvertState.Running)
Application.DoEvents();
}
static class LEAD_VARS
{
public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media";
}