public virtual AnalogVideoDecoder AnalogVideoDecoder { get; }
public:
virtual property AnalogVideoDecoder^ AnalogVideoDecoder {
AnalogVideoDecoder^ get();
}
An AnalogVideoDecoder object.
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.
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:\LEADTOOLS23\Media";
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document