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 19\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 19\Media";
}