LEADTOOLS Multimedia (Leadtools.Multimedia assembly)
LEAD Technologies, Inc

GetSubObject Method (CaptureCtrl)

Example 





Value that specifies which graph sub-object to get. Must be one of the CaptureObject enumeration values.
Gets the specified graph sub-object.
Syntax
public virtual object GetSubObject( 
   CaptureObject objType
)
'Declaration
 
Public Overridable Function GetSubObject( _
   ByVal objType As CaptureObject _
) As Object
'Usage
 
Dim instance As CaptureCtrl
Dim objType As CaptureObject
Dim value As Object
 
value = instance.GetSubObject(objType)
public virtual object GetSubObject( 
   CaptureObject objType
)
 function Leadtools.Multimedia.CaptureCtrl.GetSubObject( 
   objType 
)
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
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.

Note:This method shouldn't be used to change properties when the TargetFilter object is multiplexer or sink. Target filters are not added to the capture graph until the capture graph is built using ReadyCapture or StartCapture. At this point, the graph is in running state. Some multiplexers or sinks might not be able to change some settings in running mode. By default, when you stop the capture, the multiplexer and sink are destroyed. As a result, the only way to change their settings in stopped mode is to create them before the capture starts. This is accomplished by first setting the TargetFormat.UseFilterCache property to true and then retrieving the objects using TargetFormat.GetCacheObject. For an example, refer to TargetFormat.UseFilterCache property or TargetFormat.UseFilterCache method.

Example
Copy CodeCopy 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 175\Media";
End Class
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 whether we 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 175\Media";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

CaptureCtrl Class
CaptureCtrl Members

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Multimedia requires a Multimedia or Multimedia Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features