public bool VCRHorizontalLocking { get; set; }
true if the decoder expects video from a tape source; otherwise, false if the decoder expects video from a broadcast source.
The timing accuracy of synchronization pulses are typically lower quality from a tape source than from a broadcast source. Setting the value to true tells the decoder to relax its standards. The lower standards provide a better chance of maintaining sync.
For more detailed information, refer to the Microsoft documentation for IAMAnalogVideoDecoder.get_VCRHorizontalLocking.
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 controlCaptureCtrl 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 deviceif (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 notif (tvFormat != AnalogVideoStandard.NTSC_M_J&& (availableFormats & AnalogVideoStandard.NTSC_M_J) == AnalogVideoStandard.NTSC_M_J){// set the analog video decoder TV formatanalogvideodecoder.TVFormat = AnalogVideoStandard.NTSC_M_J;// check the changed formatallResults &= (analogvideodecoder.TVFormat == AnalogVideoStandard.NTSC_M_J);}// check whether Horizontal Locked is enabledbool 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 exceptionstry{// check whether VCR Horizontal Sync locking is enabled and set it if notbool vcrLocked = capturectrl.AnalogVideoDecoder.VCRHorizontalLocking;if (!vcrLocked){// set VCR horzontal sync lockingcapturectrl.AnalogVideoDecoder.VCRHorizontalLocking = true;// include this as one of our checksallResults &= capturectrl.AnalogVideoDecoder.VCRHorizontalLocking;}// check whether output enabled is set and set it if notbool outputEnabled = capturectrl.AnalogVideoDecoder.OutputEnable;if (!outputEnabled){// enable outputcapturectrl.AnalogVideoDecoder.OutputEnable = true;// include this as one of our checksallResults &= capturectrl.AnalogVideoDecoder.OutputEnable;}}catch (COMException cex){// if the device does not support the properties above// skip it and do not failif (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 graphwhile (lines != 525 && tries++ < 10){// get the number of scan lines in the output formatlines = capturectrl.AnalogVideoDecoder.NumberOfLines;System.Diagnostics.Debug.WriteLine("TV Format: "+ analogvideodecoder.TVFormat.ToString()+ ", Scan Lines: "+ lines.ToString());}// include the line count checkallResults &= (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
