LEADTOOLS Multimedia (Leadtools.Multimedia assembly)

AnalogVideoDecoder Property

Show in webframe
Example 



Gets the AnalogVideoDecoder object that contains information about the analog-to-digital conversion process in a video capture filter.
Syntax
'Declaration
 
Public Overridable ReadOnly Property AnalogVideoDecoder As AnalogVideoDecoder
'Usage
 
Dim instance As CaptureCtrl
Dim value As AnalogVideoDecoder
 
value = instance.AnalogVideoDecoder
public virtual AnalogVideoDecoder AnalogVideoDecoder {get;}
public:
virtual property AnalogVideoDecoder^ AnalogVideoDecoder {
   AnalogVideoDecoder^ get();
}

Property Value

An AnalogVideoDecoder object.
Remarks
The AnalogVideoDecoder object contains a number of properties. Some of these properties are read-only and updated with information about specific analog video decoders. Other properties can be used to change the settings of a specific analog video decoder.

For more information on these properties, refer to the AnalogVideoDecoder object.

Example
Copy Code  
Imports Leadtools
Imports Leadtools.Multimedia
Imports LeadtoolsMultimediaExamples.Fixtures

Public _result As Boolean = False
Public _form As CaptureCtrlForm = New CaptureCtrlForm()
Public Sub AvailableTVFormatsExample()
   Try
      ' reference the forms capture control
      Dim capturectrl As CaptureCtrl = _form.CaptureCtrl

      Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "AnalogVideoDecoder_AvailableTVFormatsExample.avi")
      Dim lines As Integer = 0
      Dim allResults As Boolean = True

      ' select the first device with analog in it's name
      ' Replace "Analog" with your tuner device name
      If capturectrl.VideoDevices("Analog") Is Nothing Then
         Throw New Exception("No analog video capture device available")
      End If

      capturectrl.VideoDevices("Analog").Selected = True

      Dim analogvideodecoder As AnalogVideoDecoder = capturectrl.AnalogVideoDecoder
      Dim availableFormats As AnalogVideoStandard = analogvideodecoder.AvailableTVFormats
      Dim tvFormat As AnalogVideoStandard = analogvideodecoder.TVFormat

      ' Check if format is NTSC and set it if not
           If tvFormat <> AnalogVideoStandard.NTSC_M_J AndAlso (availableFormats And _
                                                                AnalogVideoStandard.NTSC_M_J) = _
                                                                AnalogVideoStandard.NTSC_M_J Then
               ' set the analog video decoder TV format
               analogvideodecoder.TVFormat = AnalogVideoStandard.NTSC_M_J

               ' check the changed format
               allResults = allResults And (analogvideodecoder.TVFormat = AnalogVideoStandard.NTSC_M_J)
           End If

      ' Check if Horizontal Locked is enabled
      Dim vLocked As Boolean = capturectrl.AnalogVideoDecoder.HorizontalLocked

      ' Some video device's Analog Decoder implementations do not
      ' support the following properties, so we wrap these property 
      ' accesses with a special try block to catch possible exceptions
      Try
         ' Check if VCR Horizontal Sync locking is enabled and set if not
         Dim vcrLocked As Boolean = capturectrl.AnalogVideoDecoder.VCRHorizontalLocking
         If (Not vcrLocked) Then
            ' set VCR horzontal sync locking
            capturectrl.AnalogVideoDecoder.VCRHorizontalLocking = True

            ' include this as one of our checks
            allResults = allResults And capturectrl.AnalogVideoDecoder.VCRHorizontalLocking
         End If

         ' Check if output enabled is set and set if not
         Dim outputEnabled As Boolean = capturectrl.AnalogVideoDecoder.OutputEnable
         If (Not outputEnabled) Then
            ' enable output
            capturectrl.AnalogVideoDecoder.OutputEnable = True

            ' include this as one of our checks
            allResults = allResults And capturectrl.AnalogVideoDecoder.OutputEnable
         End If
      Catch cex As COMException
         ' if the device does not support the properties above
         ' skip it and dont fail
         If cex.ErrorCode <> CInt(ErrorCode.E_PROP_ID_UNSUPPORTED) AndAlso cex.ErrorCode <> CInt(ErrorCode.E_PROP_SET_UNSUPPORTED) Then
            Throw cex
         End If
      End Try

      Dim tries As Integer = 0

      ' check scan line count a few times 
      ' initial frames may differ from format spec, until frame data 
      ' has propogated through the capture graph
      Do While lines <> 525 AndAlso tries < 10
         ' get the number of scan lines in the output format
         lines = capturectrl.AnalogVideoDecoder.NumberOfLines
         System.Diagnostics.Debug.WriteLine("TV Format: " & analogvideodecoder.TVFormat.ToString() & ", Scan Lines: " & lines.ToString())
         tries += 1
      Loop

      ' include the line count check
      allResults = allResults And (lines = 525 AndAlso tries < 10)
      System.Diagnostics.Debug.WriteLine("Tries: " & tries.ToString())

      ' test results
      _result = allResults
   Catch e1 As Exception
      _result = False
   End Try
End Sub

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 AvailableTVFormatsExample()
{
   try
   {
      // reference the forms capture control
      CaptureCtrl capturectrl = _form.CaptureCtrl;

      string outFile = Path.Combine(LEAD_VARS.MediaDir, "AnalogVideoDecoder_AvailableTVFormatsExample.avi");
      int lines = 0;
      bool allResults = true;

      // select the first device with the word "analog" in its name
      // Replace "Analog" with the name of your tuner device
      if (capturectrl.VideoDevices["Analog"] == null)
         throw new Exception("No analog video capture device available");

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

      AnalogVideoDecoder analogvideodecoder = capturectrl.AnalogVideoDecoder;
      AnalogVideoStandard availableFormats = analogvideodecoder.AvailableTVFormats;
      AnalogVideoStandard tvFormat = analogvideodecoder.TVFormat;

      // check whether the format is NTSC and set it if not
      if (tvFormat != AnalogVideoStandard.NTSC_M_J
         && (availableFormats & AnalogVideoStandard.NTSC_M_J) == AnalogVideoStandard.NTSC_M_J)
      {
         // set the analog video decoder TV format
         analogvideodecoder.TVFormat = AnalogVideoStandard.NTSC_M_J;

         // check the changed format
         allResults &= (analogvideodecoder.TVFormat == AnalogVideoStandard.NTSC_M_J);
      }

      // check whether Horizontal Locked is enabled
      bool vLocked = capturectrl.AnalogVideoDecoder.HorizontalLocked;

      // Some video device's Analog Decoder implementations do not
      // support the following properties, so we wrap these property 
      // accesses with a special try block to catch possible exceptions
      try
      {
         // check whether VCR Horizontal Sync locking is enabled and set it if not
         bool vcrLocked = capturectrl.AnalogVideoDecoder.VCRHorizontalLocking;
         if (!vcrLocked)
         {
            // set VCR horzontal sync locking
            capturectrl.AnalogVideoDecoder.VCRHorizontalLocking = true;

            // include this as one of our checks
            allResults &= capturectrl.AnalogVideoDecoder.VCRHorizontalLocking;
         }

         // check whether output enabled is set and set it if not
         bool outputEnabled = capturectrl.AnalogVideoDecoder.OutputEnable;
         if (!outputEnabled)
         {
            // enable output
            capturectrl.AnalogVideoDecoder.OutputEnable = true;

            // include this as one of our checks
            allResults &= capturectrl.AnalogVideoDecoder.OutputEnable;
         }
      }
      catch (COMException cex)
      {
         // if the device does not support the properties above
         // skip it and do not fail
         if (cex.ErrorCode != (int)ErrorCode.E_PROP_ID_UNSUPPORTED
            && cex.ErrorCode != (int)ErrorCode.E_PROP_SET_UNSUPPORTED)
            throw cex;
      }

      int tries = 0;

      // check scan line count a few times 
      // initial frames may differ from format spec, until frame data 
      // has propogated through the capture graph
      while (lines != 525 && tries++ < 10)
      {
         // get the number of scan lines in the output format
         lines = capturectrl.AnalogVideoDecoder.NumberOfLines;
         System.Diagnostics.Debug.WriteLine("TV Format: " 
                                            + analogvideodecoder.TVFormat.ToString() 
                                            + ", Scan Lines: " 
                                            + lines.ToString());
      }

      // include the line count check
      allResults &= (lines == 525 && tries < 10);
      System.Diagnostics.Debug.WriteLine("Tries: " + tries.ToString());

      // test results
      _result = allResults;
   }
   catch (Exception)
   {
      _result = false;
   }
}

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

Target Platforms

See Also

Reference

CaptureCtrl Class
CaptureCtrl Members

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 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