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



objType
Value that specifies which graph sub-object to get. Must be one of the CaptureObject enumeration values.
objType
Value that specifies which graph sub-object to get. Must be one of the CaptureObject enumeration values.
Gets the specified graph sub-object.

Syntax

Visual Basic (Declaration) 
Public Overridable Function GetSubObject( _
   ByVal objType As CaptureObject _
) As Object
Visual Basic (Usage)Copy Code
Dim instance As CaptureCtrl
Dim objType As CaptureObject
Dim value As Object
 
value = instance.GetSubObject(objType)
C# 
public virtual object GetSubObject( 
   CaptureObject objType
)
C++/CLI 
public:
virtual Object^ GetSubObject( 
   CaptureObject objType
) 

Parameters

objType
Value that specifies which graph sub-object to get. Must be one of the CaptureObject enumeration values.

Return Value

System.Object

Example

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

         ' input and output files
         Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_Source.avi")
         Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_GetSubObjectExample.avi")

         Try
            ' set the source video device
            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
            If capturectrl.AudioDevices("USB") Is Nothing Then
               Throw New Exception("No USB audio device available")
            End If

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

            ' set the output files
            capturectrl.TargetFile = outFile

            ' set the audio and video compression
            capturectrl.VideoCompressors.Mpeg2.Selected = True
            capturectrl.AudioCompressors.AC3.Selected = True

            ' add the color adjustment processor
            capturectrl.SelectedVideoProcessors.Add(capturectrl.VideoProcessors.Color)

            ' access the Color filter directly via the GetSubObject method
            Dim lmvc As LMVColor = TryCast(capturectrl.GetSubObject(CaptureObject.SelVideoProcessor), LMVColor)

            If Not lmvc Is Nothing Then
               ' change some settings
               lmvc.Brightness = 85
               lmvc.Contrast = 85
               lmvc.Enabled = True
               lmvc.EffectAreaEnabled = False

               Marshal.ReleaseComObject(lmvc)
            End If

            ' check if we have can capture video
            If capturectrl.IsModeAvailable(CaptureMode.VideoAndAudio) Then
               capturectrl.FrameRate = 5 ' 5 frames per second
               capturectrl.UseFrameRate = True
               capturectrl.TimeLimit = 10 ' just 10 seconds of capture time
               capturectrl.UseTimeLimit = True

               ' start the capture process
               capturectrl.StartCapture(CaptureMode.VideoAndAudio)

               ' 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 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

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();
      public void GetSubObjectExample()
      {
         // reference the capture control
         CaptureCtrl capturectrl = _form.CaptureCtrl;

         // input and output files
         string inFile =Path.Combine(LEAD_VARS.MediaDir,"CaptureCtrl_Source.avi");
         string outFile = Path.Combine(LEAD_VARS.MediaDir,"CaptureCtrl_GetSubObjectExample.avi");

         try
         {
            // set the source video device
            if (capturectrl.VideoDevices["USB"] == null)
               throw new Exception("No USB video device available");

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

            // set the source audio device
            if (capturectrl.AudioDevices["USB"] == null)
               throw new Exception("No USB audio device available");

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

            // set the output files
            capturectrl.TargetFile = outFile;

            // set the audio and video compression
            capturectrl.VideoCompressors.Mpeg2.Selected = true;
            capturectrl.AudioCompressors.AC3.Selected = true;

            // add the color adjustment processor
            capturectrl.SelectedVideoProcessors.Add(capturectrl.VideoProcessors.Color);

            // access the Color filter directly via the GetSubObject method
            LMVColor lmvc = capturectrl.GetSubObject(CaptureObject.SelVideoProcessor) as LMVColor;

            if (lmvc != null)
            {
               // change some settings
               lmvc.Brightness = 85;
               lmvc.Contrast = 85;
               lmvc.Enabled = true;
               lmvc.EffectAreaEnabled = false;

               Marshal.ReleaseComObject(lmvc);
            }

            // check if we have can capture video
            if (capturectrl.IsModeAvailable(CaptureMode.VideoAndAudio))
            {
               capturectrl.FrameRate = 5;       // 5 frames per second 
               capturectrl.UseFrameRate = true;
               capturectrl.TimeLimit = 10;      // just 10 seconds of capture time
               capturectrl.UseTimeLimit = true;

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

               // 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();
            }
         }
         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();
      }

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

Remarks

The specified graph sub-object includes a filter being cached from the capture graph.

If the method fails, an error is raised. 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