Imports Leadtools
Imports Leadtools.Multimedia
Imports LeadtoolsMultimediaExamples.Fixtures
Public _result As Boolean = False
Public _form As CaptureCtrlForm = New CaptureCtrlForm()
Public Sub StreamTypeExample()
' reference the capture control
Dim capturectrl As CaptureCtrl = _form.CaptureCtrl
Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_Source.avi")
Try
' reference the profile if available
Dim CurrentProfile As WMProfile = capturectrl.WMProfile
' if we have a profile display the info
If Not CurrentProfile Is Nothing Then
MessageBox.Show(GetStreamInfo(CurrentProfile), "Stream Info", MessageBoxButtons.OK)
End If
Catch e1 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 capturectrl.State = CaptureState.Running
Application.DoEvents()
Loop
End Sub
' discovering streams
Private Function GetStreamInfo(ByVal Profile As WMProfile) As String
Dim streamConfig As WMStreamConfig
Dim streamInfo As String = String.Empty
' show all the information regarding the streams
Dim i As Integer = 0
Do While i < Profile.StreamCount - 1
streamConfig = Profile.GetStream(0)
streamInfo &= "[[ Stream " & (i + 1).ToString() & " ]]"
' get the major type of the stream
streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " type: " & streamConfig.StreamType
' get Stream number
streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " number: " & streamConfig.StreamNumber.ToString()
' get Stream name
streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " name: " & streamConfig.StreamName
' get connection name
streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " connection name: " & streamConfig.ConnectionName
' get Bitrate
streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " bitrate: " & streamConfig.Bitrate.ToString()
' get the maximum latency (time in milliseconds) between stream reception and display
streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " buffer window: " & streamConfig.BufferWindow.ToString()
' get the major type of the media in the stream
streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " majortype: " & streamConfig.Type
' get the maximum key frame time interval (in 100-nano seconds)
streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " max keyframe spacing: " & streamConfig.MaxKeyFrameSpacing.ToString()
' get the Quality, range from 0 to 100
' where zero denotes maximum frame rate and 100 denotes maximum quality.
streamInfo &= Microsoft.VisualBasic.Constants.vbLf & " stream quality: "
If streamConfig.Quality > -1 Then
streamInfo &= streamConfig.Quality.ToString()
Else
streamInfo &= "(unknown)"
End If
i += 1
Loop
Return streamInfo
End Function
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 CaptureCtrlForm _form = new CaptureCtrlForm();
public void StreamTypeExample()
{
// reference the capture control
CaptureCtrl capturectrl = _form.CaptureCtrl;
string inFile = Path.Combine(LEAD_VARS.MediaDir,"CaptureCtrl_Source.avi");
try
{
// reference the profile if available
WMProfile CurrentProfile = capturectrl.WMProfile;
// if we have a profile display the info
if (CurrentProfile != null)
MessageBox.Show(GetStreamInfo(CurrentProfile), "Stream Info", MessageBoxButtons.OK);
}
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 (capturectrl.State == CaptureState.Running)
Application.DoEvents();
}
// discovering streams
private string GetStreamInfo(WMProfile Profile)
{
WMStreamConfig streamConfig;
string streamInfo = string.Empty;
// show all the information regarding the streams
for (int i = 0; i < Profile.StreamCount -1; i++)
{
streamConfig = Profile.GetStream(0);
streamInfo += "[[ Stream " + (i + 1).ToString() + " ]]";
// get the major type of the stream
streamInfo += "\n type: " + streamConfig.StreamType;
// get Stream number
streamInfo += "\n number: " + streamConfig.StreamNumber.ToString();
// get Stream name
streamInfo += "\n name: " + streamConfig.StreamName;
// get connection name
streamInfo += "\n connection name: " + streamConfig.ConnectionName;
// get Bitrate
streamInfo += "\n bitrate: " + streamConfig.Bitrate.ToString();
// get the maximum latency (time in milliseconds) between stream reception and display
streamInfo += "\n buffer window: " + streamConfig.BufferWindow.ToString();
// get the major type of the media in the stream
streamInfo += "\n majortype: " + streamConfig.Type;
// get the maximum key frame time interval (in 100-nano seconds)
streamInfo += "\n max keyframe spacing: " + streamConfig.MaxKeyFrameSpacing.ToString();
// get the Quality, range from 0 to 100
// where zero denotes maximum frame rate and 100 denotes maximum quality.
streamInfo += "\n stream quality: ";
if (streamConfig.Quality > -1)
streamInfo += streamConfig.Quality.ToString();
else
streamInfo += "(unknown)";
}
return streamInfo;
}
static class LEAD_VARS
{
public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media";
}