LEADTOOLS Multimedia (Leadtools.Multimedia assembly) Send comments on this topic. | Back to Introduction | Help Version 17.0.3.22
MasterStream Property
See Also 
Leadtools.Multimedia Namespace > CaptureCtrl Class : MasterStream Property



Gets or sets the master stream that other streams must synchronize to after the file is written.

Syntax

Visual Basic (Declaration) 
Public Overridable Property MasterStream As CaptureMasterStream
Visual Basic (Usage)Copy Code
Dim instance As CaptureCtrl
Dim value As CaptureMasterStream
 
instance.MasterStream = value
 
value = instance.MasterStream
C# 
public virtual CaptureMasterStream MasterStream {get; set;}
C++/CLI 
public:
virtual property CaptureMasterStream MasterStream {
   CaptureMasterStream get();
   void set (    CaptureMasterStream value);
}

Property Value

An CaptureMasterStream representing the master stream selection.

Example

Visual BasicCopy Code
Public _result As Boolean = False
      Public _form As CaptureCtrlForm = New CaptureCtrlForm()
      Public _capturectrl As CaptureCtrl
      Public Sub MasterStreamExample()
         ' reference the capture control
         _capturectrl = _form.CaptureCtrl

         ' output file
         Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_MasterStreamExample.avi")

         Try
            ' set the source video device, select using your device name here
            If _capturectrl.VideoDevices("USB") Is Nothing Then
               Throw New Exception("No USB video device available")
            End If

            _capturectrl.VideoDevices("USB").Selected = True

            ' set the source audio device, select using your device name here
            If _capturectrl.AudioDevices("USB") Is Nothing Then
               Throw New Exception("No USB audio device available")
            End If

            _capturectrl.AudioDevices("USB").Selected = True

            ' select a video compressor
            _capturectrl.VideoCompressors.Mpeg4.Selected = True

            ' select an audio compressor
            _capturectrl.AudioCompressors.AC3.Selected = True

            ' set the target output file
            _capturectrl.TargetFile = outFile

            ' subscribe to the started event
            AddHandler _capturectrl.Started, AddressOf CaptureCtrl_Started

            ' set master stream to CaptureMasterStream.Video
            _capturectrl.MasterStream = CaptureMasterStream.Video

            ' start capture
            _capturectrl.StartCapture(CaptureMode.VideoAndAudio)

            ' get master stream 
            Dim MasterStream As CaptureMasterStream = _capturectrl.MasterStream

            ' set the result to what we expect
            _result = (MasterStream = CaptureMasterStream.Video)

         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

      Private Sub CaptureCtrl_Started(ByVal sender As Object, ByVal e As EventArgs)
         ' stop the capture (we don't need a complete capture for this example)
         _capturectrl.StopCapture()
      End Sub

Public NotInheritable Class LEAD_VARS
   Public Const MediaDir As String = "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 17\Media"
End Class
C#Copy Code
public bool _result = false;
      public CaptureCtrlForm _form = new CaptureCtrlForm();
      // capture control
      CaptureCtrl capturectrl;

      // output file
      string outFile = Path.Combine(LEAD_VARS.MediaDir,"CaptureCtrl_MasterStreamExample.avi");

      public void MasterStreamExample()
      {
         // reference the capture control
         capturectrl = _form.CaptureCtrl;

         try
         {
            // set the source video device, select using your device name here
            if (capturectrl.VideoDevices["USB"] == null)
            {
               throw new Exception("No USB video device available");
            }

            capturectrl.VideoDevices["USB"].Selected = true;

            // set the source audio device, select using your device name here
            if (capturectrl.AudioDevices["USB"] == null)
            {
               throw new Exception("No USB audio device available");
            }

            capturectrl.AudioDevices["USB"].Selected = true;

            // select a video compressor
            capturectrl.VideoCompressors.Mpeg4.Selected = true;

            // select an audio compressor
            capturectrl.AudioCompressors.AC3.Selected = true;

            // set the target output file
            capturectrl.TargetFile = outFile;

            // subscribe to the started event
            capturectrl.Started += CaptureCtrl_Started;

            // set master stream to CaptureMasterStream.Video
            capturectrl.MasterStream = CaptureMasterStream.Video;

            // start capture
            capturectrl.StartCapture(CaptureMode.VideoAndAudio);

            // get master stream 
            CaptureMasterStream MasterStream = capturectrl.MasterStream;

            // set the result to what we expect
            _result = (MasterStream == CaptureMasterStream.Video);
         }
         catch (COMException)
         {
            _result = false;
         }
         catch (Exception)
         {
            _result = false;
         }
      }

      void CaptureCtrl_Started(object sender, EventArgs e)
      {
         // stop the capture (we don't need a complete capture for this example)
         capturectrl.StopCapture();
      }

static class LEAD_VARS
{
   public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 17\Media";
}

Remarks

Gets or sets the master stream that other streams must synchronize to after the file is written. The value must be one of the CaptureMasterStream enumeration values. Different streams in the capture scenario can capture at different rates if you are using separate audio and video capture cards. By specifying a master stream that all others must synchronize to, this method adjusts the frame rate or audio sampling rate to account for drifts in the rates. To eliminate capture drifts that can occur between audio sampling rates and video frame rates, it is recommended that you use combined audio/video cards for capture of large files. Assignment can raise an error exception. For more information, refer to the Error Codes.

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7

See Also