Menu Close

TVideoGrabber SDK changelog – version history

16.6.2.6 – September 23, 2026

added

– ips_RetryInitialConnect (SetIPCameraSetting): number of retries if the initial connection to the IP camera fails (camera or NVR not reachable, maximum number of connections reached). 0 = disabled (default), -1 = retried until StopPreview/Stop. 1-second pause between retries, no retry on authentication failure (401). Requires the Datastead RTSP/RTMP/HTTP/ONVIF Source filter
– TVideoGrabber version reported by the OnLog event on the first graph start

fixed

– black video window in a Remote Desktop session
– GetTextOverlay_Font and TextOverlay_CreateCustomFont failed with a text overlay index not used before: the text overlays are now allocated on demand by all the indexed TextOverlay functions
– video capture device may fail to start if application located on a network drive

deprecated

– TextOverlay_Selector and the TextOverlay_… properties depending on it: use the indexed functions instead (SetTextOverlay_String (Index, …), SetTextOverlay_Enabled (Index, …), etc.)
– ImageOverlaySelector and the ImageOverlay_… properties depending on it: use the indexed functions instead (SetImageOverlayFromImageFile2, etc.)

16.6.2.2 – September 16, 2026

fixed

– OnInactive event was not raised when the asynchronous connection to an IP camera failed (e.g. camera not responding) while starting a preview or a recording. The recording cleanup is now also performed in this case.
– random access violations when several IP cameras were opened at the same time.

recommended

– Datastead RTSP/RTMP/HTTP/ONVIF Source Filter 9.4.2.2 (fixes for recording with AudioSource = as_UseExternalAudio, see its release notes)

16.6.2.1 – September 14, 2026

fixed

– RTSP asynchronous connection (ASYNCV1 and ASYNCV2) with the vr_DatasteadRealtimeRenderer video renderer
– occasional crashes when starting or stopping the graph
– GenICam Vision Source: the license key is now applied to the capture filter
– camera control: the “auto” settings now take effect on the filters that require it
– MP3 audio recording
– screen capture: rotated displays (90 / 270 degrees)

deprecated

– DVDInfo

16.6.2.0 – September 3, 2026

improved

– faster fps at large video sizes when VideoSource = vs_ScreenRecording

fixed

– Delphi 12/13 : VCL component grayed on the component palette from the 32bit IDE (bds.exe)

fixed (RTSP/RTMP/HTTP/ONVIF Source 9.4.1.9 or above required)

– SetFFmpegFilter(): fixed a crash (access violation) occurring when the video size in use is not the size delivered by the video device, for instance after UseNearestVideoSize (768, 576, true) on a device offering only 640×480, or after setting PreferredVideoWidth / PreferredVideoHeight with StretchPreferredVideoSize. The video was not displayed at all. Video filters buffering several frames, like “yadif”, could also produce artefacts or corrupt memory.
– v360 processing: same fixes applied.

16.6.1.8 – September 1, 2026

added

– new fading features: FadingGroup_Create / FadeIn / FadeOut / CrossFade / FadeToLevelPercent / SetCurve / SetDuration / SetFadeColor / IncludeMainVideo / IncludeAudio / AssignTextOverlay / AssignImageOverlay, plus the OnFadingCompleted event. Fades the main video, the audio and the assigned text/image overlays in a synchronized way, with a configurable duration, fade color, and a linear or smooth-step curve. Level semantics: 0% = fully visible, 100% = fully faded out

– new frame capture destination fc_TBitmapTopdown: same as fc_TBitmap, but the returned bitmap is top-down

changed

– the OnAudioPeak event is now fired from the main thread instead of the audio streaming thread

– the dropped frames counter is now evaluated against the measured frame rate when the application forces a FrameRate that the video capture device does not honor (e.g. FrameRate = 50 while the device delivers 25 fps), instead of counting phantom drops

fixed

– PlayerFrameStep may do nothing the 1st time it is invoked after pausing the player

– application freeze when several TVideoGrabber instances open RTSP URLs asynchronously: deadlock between the UI thread and the RTSP filter worker thread. The async open completion is now posted instead of sent, and a completion belonging to a previous open session is detected as stale and ignored

– HoldRecording, and therefore OnRecordingReadyToStart, permanently disabled for all subsequent recordings after a call to RecordToNewFileNow

– PTS collapse after a pause / resume when recording with the Multipurpose Encoder

– stop preview freeze when the OnAudioPeak handler synchronizes with the main thread

– no audio callbacks and no VU-meters when AudioDeviceRendering was disabled

– the video window could not be raised, the main form could not be raised either, and Display_StayOnTop had no effect, while the graph was running with a non-embedded display window

– EOSError code 5 (access denied) at shutdown when the component is released from the .NET finalizer thread

– the component stayed in a phantom recording state (no OnRecordingStarted, no error, StartRecording rejected) when the RTSP filter failed to create the next file during a RecordToNewFile rotation

– recording file rotation aborted when the StoragePath directory had been deleted since StoragePath was set, e.g. by an external retention mechanism: the directory is now re-created before the rotation

16.6.1.4 July 15, 2026

added

– when the RTSP filter, Multipurpose Encoder or NDI filter fails to load, the log now reports the exact cause (file or path not found, missing dependency, x86/x64 mismatch, access denied)

fixed

– CaptureFrameTo (fc_BmpFile) produces a top-down bitmap

– Delphi/C++Builder auto installer fails to copy TVidGrab.bpl with Radstudio 13.1

– .NET: RTSP filter or Multipurpose Encoder not found anymore by installing the binaries directly into the folder of the .exe

– Stop() / StopPreview() issued during an asynchronous RTSP connection could hang the application (deadlock)

– an internal lock could remain held after an error while opening a URL, blocking subsequent calls

– possible error on application shutdown while unloading the DLLs

– after ~49 days of machine uptime, some internal timings (timeouts, periodic checks) were computed incorrectly

– a stream that stops without the filter detecting it left the camera stuck with no image and no event: a device-lost is now raised automatically

– OnInactive could fail to be fired on stop under some reconnection conditions

– PausePreview() / ResumePreview() on an RTSP source no longer drop the connection: only the frame delivery is suspended, so resuming is immediate

– “failed to start preview / recording” error message wrongly appeared when the connection was cancelled on purpose

– persistent black picture while the stream kept coming in, after an RTSP resolution/format change, a reconnection, or a host window handle recreation

– random black display when using AlphaBlend / transparent color

– flicker and black frames when several renderers share the same window

– EVR: rendering failure with some video formats

16.6.1.2 June 5, 2026

fixed

– audio recording not working when AudioSource = as_SpeakerOutput or as_DefaultWithSpeakerRecording

– possible access violation/crash when the VideoGrabber.OnFrameBitmapRendering event is connected

16.6.1.1 – May 21, 2026

added

Several new VU-Meter styles are now available, in addition to the classic analog needle (vu_Analog) and
bargraph (vu_Bargraph):
– vu_AnalogVintage : analog needle with a vintage, non-linear galvanometer scale and an “OVER” clip
LED, reproducing the look of a real broadcast VU galvanometer.
– vu_SegmentLed : segmented LED meter, with optional peak-hold segment.
– vu_SmoothBar : smooth, gradient-filled bar with a peak-hold marker.
– vu_MixingTable : mixing-console style meter.
– vu_Spectrum : real-time spectrum analyzer (multi-band FFT display) instead of a single level.
Some VU-Meters include now a peak indicator, that can be deactivated by invoking
VideoGrabber.SetVUMeterSetting (index, vu_PeakHoldMs, 0);
All of these styles share the same ballistics that can be adjusted with vu_AttackMs, vu_ReleaseMs and
vu_PeakHoldMs and can be displayed either on a panel/image control or overlayed over the video frames

fixed

– Delphi/C++Builder: runtime error 217 when “build with runtime package” is checked the project settings -> Packages

16.4.1.4

added

– possibility to send audio to the backchannel of an IP camera with the Datastead RTSP/RTMP/HTTP/ONVIF Source 9.4.1.1 or newer. Search “backchannel” in the TVideoGrabber manual for sample code.

fixed

– changing the cursor with SetVideoCursor not working

– Display_StayOnTop may not work properly

– Delphi: PopupMenu over the video window not working depending on the video renderer

– RTSP filter may not auto-reconnect properly

– cropping: Cropping_YMax returned the width instead of the height

16.4.1.2

fixed

– no video visible after creating a TVideoGrabber instance programmatically and setting its parent control
– possible error 0x8007000E when playing a file having a large image size

16.4.1.1

changed

– when a Datastead filter (RTSP/RTMP/HTTP/ONVIF Source filter, Multipurpose Encoder or NDI Filter) is registered in add/remove applications, and other filter binaries are also installed under a x64 or x86 subfolder of the application.exe, the x64 or x86 subfolder is used primarily instead of the registered filter.
The intent is to allow different applications using different versions of a Datastead filter to cohabit side by side.
This function must be invoked only once at the very first beginning of the application.

added

– function SetDatasteadFilterDllName (Value: string): Boolean;
Lets specify the .ax name of the Datastead RTSP/RTMP/HTTP/ONVIF Source filter, Multipurpose Encoder or NDI Filter if it has been modified.

fixed

– Blacmagic Decklink video rendering may fail (VideoRendererExternal = vre_BlackMagic_Decklink)
– Java FX video rendering may be jerky
– Datastead Encoder configuration dialog enhanced when invoking ShowDialog (dlg_VideoCompressor)
– OnPlayerStateChanged event may report incorrect state

16.2.1.3

added

– Delphi 13 and C++Builder 13 VCL components
– additional Modern (Win64x) C++ Builder builds for C++Builder 12 and C++Builder 13
– event OnOpenURLAsyncStatusChanged reports the current URL asynchronous opening state (when OpenURLAsync is enabled)
– function Facebook_GoLive_ReturnStreamURL returns the Facebook streaming URL to pass the Multipurpose Encoder for live streaming
– function SetFFmpegAudioFilter lets insert a ffmpeg audio filter (requires the Datastead RTSP/RTMP/HTTP/ONVIF Source Filter to be installed)
– function MP4NeedsReindexing (FilePath: string): TTriState; determine if a MP4 clip needs to be reindexed owtherwise the seeking at playback will be slow. It returns:
– ts_undefined if failed to analyze the clip
– ts_false if the indexing should be OK for fast seeking
– ts_true if the clip needs may need to be reindexed

fixed

– Decklink audio/video rendering not working properly
– audio recording in mono not working through the Datastead encoder, it was always recording in stereo
– USB or PCIe capture devices:  selected video size may not be taken in account
– video recording may fail with default settings and this video compressor selected:
VideoGrabber.VideoCompressor = VideoGrabber.VideoCompressorIndex (“MJPEG Compressor”)
– random access violation when creating the TVideoGrabber instance from a thread
– possible crash when VLC is installed
– OnFrameProgress2 event not raising in some cases

16.2.1.2 – August 4, 2025

added

– JAVA component
– ENCRYPTION: property EncryptionMethod of type TEncryptionMethod = (em_Fast_Encryption, em_AES_Encryption), allowing to perform fast real-time encryption (additionally to the AES encryption of previous versions)
– NDI STREAMING: property NDIFormatType of type TNDIFormatType = (nft_interleaved, nft_progressive, nft_field_0, nft_field_1), allow to stream in interleaved format (additionally to the progressive format of previous versions)
– function Mixer_SetOverlayRoundedCorner (int Id, int CornerRadiusWidth: LongInt, int CornerRadiusHeight: LongInt) let perform image overlays in the mixer with rounded corners, or even elliptical overlays, depending on the parameters values
– support for WebP and JFIF images

fixed

– unable to mute the audio rendering during playback
– OnFrameProgress / OnFrameProgress2 event not raised with some video capture devices
– “v360” 360° video decoding not working properly (requires to update the RTSP/RTMP/HTTP/ONVIF Source filter as well)

16.2.1.1 – May 21, 2025

added

– real-time AES encryption during recording / AES decryption during playback by setting VideoGrabber.SetEncryptionKey or VideoGrabber.SetDecryptionKey. Its support 128bit or 256bit keys.
– batch AES encryption or decryption of existing video clips with VideoGrabber.Encrypt_File and VideoGrabber.Decrypt_File
– VideoGrabber.VideoPlayableWhileRecording property, allowing a .MP4 or .MKV video clip currently being recorded, to be playable at the same time.

fixed

– black video window on Windows 7 and Windows XP
– playback of 360° videos freezing when moving the orientation with the mouse
– VideoGrabber.VideoRendererExternal = vre_BlackMagic_Decklink not working

16.1.1.8 – April 16, 2025

fixed

– excessive CPU load with default settings

– if StoragePath is set to a non-writeable folder, the recording is made in the current folder of the application, instead of failing to start and reporting an error.

– memory leak on exit

– Display_FullScreen = true: the video frame may be larger than the monitor

– possible crash when exiting the application

– 360° videos: freezing when trying to change the angle of view while the video is paused by moving the mouse over the video window (the fix requires the RTSP filter version 9.1.6.2)

added

– 360° videos: possibility to change the angle of view while the video is running by moving the mouse over the video window

changed

– default renderer set to vr_RecordingPriority to minimize the CPU load by default

– Delphi / C++Builder: TVideoGrabber_VCL_AutoInstall.exe installs the 64bit version of the TVideoGrabber component in the component palette of the 64bit IDE (…\bin64\bds.exe)

16.1.1.6 – April 7, 2025

fixed

– application font size and form layout may be affected when running the app with the version 16.1.1.4 of April 3, 2025

16.1.1.4 – April 3, 2025

added

– the OnLog event reports periodically the calculated effective frame rate when the video source is an IP camera

fixed

– crash if VideoGrabber.FrameRateDivider is set to a value greater than 1

– recording of an USB video capture : audio sync possibly shifting progressively depending on the capture device

– ASF recording may fail to start

– screen recording may not capture the full screen if the display scale factor is greater than 100%

– Multipurpose or RTSP/RTMP/HTTP/ONVIF Source filter may not be detected depending on how it is installed

changed

– WPF: the VideoGrabberToImage property is removed. Instead 2 components are available:
. the existing VideoGrabberWPF component corresponding to VideoGrabberToImage=false
. a new VideoGrabber2ImgWPF component corresponding to VideoGrabberToImage=true
To switch between the 2 components, just rename VideoGrabberWPF to VideoGrabber2ImgWPF (or VideoGrabber2ImgWPF to VideoGrabberWPF) everywhere in the project.

16.1.1.2 – February 17, 2025

added

– C# / VB.NET: support for NET Core 9.0

enhanced

– better video quality when scaling the video window (when the video window is not the same size as the video frames) with the default video renderer

fixed

–

IsDialogAvailable (dlg_VideoCompressor) returns false with the Datastead Multipurpose Encoder, although the filter is installed

16.1.1.1 – February 4, 2025

changed

– default video renderer set to vr_RecordingPriority (instead of vr_EVR) to reduce memory consumption

added

– support for streaming to social media networks (e.g. Facebook, Youtube) through the Datastead Multipurpose Encoder. Sample code here.

– VideoGrabber.SetFFmpegFilter(int FilterIndex, string FilterName, stringParameters)
Used to insert a FFmpeg video filter in the TVideoGrabber video processing. This feature requires the Datastead RTSP/RTMP/HTTP/ONVIF Source Filter 9.1.4.8 or newer to be installed. The filter must be an “in place” filter that outputs the same video format and video size than the input format. E.g.:
VideoGrabber…
VideoGrabber.SetFFmpegFilter (0, ‘vignette’, ‘angle=PI/2:mode=forward:x0=w/2:y0=h/2:dither=0’);
VideoGrabber.SetFFmpegFilter (1, ‘vflip’, ”);
VideoGrabber.StartPreview()

fixed

– Blackmagic Decklink Video Renderer not working

– possible video flickering, e.g. when setting VideoGrabber.VideoProcessingRotation = rt_custom_angle

– possible black video window after Windows Update

– RTSP: VideoGrabber.OnLog event not returning the stream info (*)

– VideoGrabber.ONVIFDeviceInfo (onv_XMLProfiles) possibly not returning H265 profiles (*)

(*) fixed with the RTSP/RTMP/HTTP/ONVIF Source filter 9.1.4.8

15.4.2.4 – November 25, 2024

fixed

– possible black video window after a while when the video source is an IP camera

– possible crash of x86 builds (including the MainDemo_x86.exe)

– WPF: the UI may hang when the VideoGrabberToImage setting is set to “true”

– VideoGrabber.StartReecoding() may not take in account the start/stop time of frame number specified

15.4.2.2 – November 4, 2024

added

– VideoGrabber.AudioSource = as_IPCamera, allows to use an IP camera as audio source when previewing or recording an USB source, the screen or the video mixer (when VideoSource = vs_VideoCaptureDevice, vs_ScreenRecording or vs_Mixer).
VideoGrabber.IPCameraURL and eventually the VideoGrabber.SetAuthentication (at_IPCamera, …) must be set accordingly.

fixed

– VideoSource = vs_IPCamera: OnFrameBitmap callback not working from a console application

– VideoSource = vs_IPcamera: when invoking VideoGrabber.PausePreview then VideoGrabber.ResumePreview, the video may freeze periodically

– USB capture: unable to restart preview after a disconnection and the OnDeviceArrivalOrRemoval event occured

– VideoGrabber.SetHeaderAttribute not working when invoking RecordToNewFileNow and the recording is in ASF format through VideoGrabber.RecordingMethod = rm_ASF

– when encoding through the Multipurpose Encoder
. auto detection of the GPU when Enc_GPU_Auto not working properly
. wrong error “[Multipurpose Encoder]: Encoder not enabled, invoke Encoder_SetInt(id,Enc_Video_Enabled_bool,1)”

15.4.1.8 – July 25, 2024

fixed

– QT: compilation errors in TVideoGrabber.cpp and TVideoGrabber.h

– cannot change PlayerSpeedRatio with “.asf” video clips

– possible access violation when using VideoRenderer = vr_VMR7

– possible low frame rate when previewing webcams with default settings

– DirectShowFiltersCount function returns 0

15.4.1.4 – July 4, 2024

fixed

– possible access violation when playing video clips

– wrong frame rate/duration reported when opening .AVI video clips

– undue report of dropped frames with live video sources (USB capture device or IP camera)

– memory leak

15.4.1.2 – June 10, 2024

added

– property GeneratePts: Boolean (default false): when enabled, the pts are generated, instead of using the pts of the video capture device or URL.

fixed

– VideoSource = vs_IPCamera with RTSP/RTMP/HTTP/ONVIF Source filter: possible freezing when stopping/restarting while an async URL connection is already in progress

– AJA U-TAP video capture device; black image when not starting preview or recording

– Mixer_SetupPIPFromSource with Mixer_SetOverlayAttributes: PIP transparency, alpha blending and chroma key not working if non-zero values are specified for the source rectangle or the PIP width and height

15.4.1.0 – May 15, 2024

added

– ONVIF cameras discovery (requires the RTSP/RTMP/HTTP/ONVIF Source filter 9.1.0.1 or newer)

enhanced

– lower memory consumption when FrameGrabber is enabled

fixed

– screen capture with audio from an audio capture device: possible wrong audio/video synchronization

– recording the video of an IP camera with the audio of an audio capture device not working (AudioSource = as_UseExternalAudio)

– possible lock when starting multiple instances concurrently in .NET Framework

– low frame rate by default with some USB video capture devices

– possible failure to start preview or recording after invoking VideoGrabber.Stop() whereas the component was inactive

– Player: OnPlayerStateChanged event reporting additinoally a wrong value (ps_Paused) when starting a fast forward or rewind

15.2.6.3 – April 11, 2024

added

When the video source is an IP camera, in case of connection failure, the OnLog event and the VideoGrabber.LastErrorMessage function return detailed information about the cause of the error (wrong authentication, host not responding, etc…). This requires the RTSP/RTMP/HTTP/ONVIF Source filter 8.4.6.8 or newer.

fixed

After stopping an asynchronous connection to an URL through the RTSP/RTMP/HTTP/ONVIF Source filter, the TVideoGrabber component is in an inconsistent state, preventing a restart of the video from another source (e.g. USB camera).

15.2.6.2 – March 20, 2024

In the context of VideoGrabber.VideoSource=vs_IPCamera:

added

– function GetLastErrorMessage() that returns the origin of the error when StartPreview() or StartRecording() fails

– function OpenURLAsyncStatus that returns the status of the URL being opened when VideoGrabber.OpenURLAsync is enabled (enabled by default). This function returns the type TOpenURLAsyncStatus = (oas_InProgress_Connecting, oas_InProgress_Connected, oas_Completed_Success, oas_Undefined, oas_Completed_Error);

– function PreloadFilters (filter name) : the goal of this function is to pre-load the filter DLLs to avoid the initial StartPreview() or StartRecording() delay. If filter name is empty this function preloads the RTSP/RTMP/HTTP/ONVIF Source and/or Multipurpose Encoder (if installed). To preload only a specific filter invoke PreloadFilters (“rtsp”) or PreloadFilters (“multi”).

changed

– new asynchronous connection mode starts faster

15.2.6.1 – January 20, 2024

added

– VideoGrabber.VideoSource = vs_Mixer and VideoGrabber.VideoSource = vs_ScreenRecording now report the dropped frame count, depending on the VideoGrabber.FrameRate setting

15.2.6.0 – January 12, 2024

enhanced

– better maximal frame rate when the frame grabber is enabled

fixed

– the recording may fail to start if VideoGrabber.RecordingFileName is set to a filename having a single digit (e.g. “0.wav”)

– possible 3-seconds freezings at random intervals when recording a USB capture device with audio

15.2.5.9 – December 14, 2023

fixed

– frame grabber may fail to connect randomly in some cases

– recording an IP camera in native format may be sluggish on Windows 10 22H2

– video topdown with Blackmagic Intensity 4K

– Mixer_SetupPIPFromSource: the PIP may be misaligned

15.2.5.7 – December 6, 2023

added

– function VideoGrabber.StartPTZ(): after invoking it instead of StartPreview() or StartRecording(), the PTZ commands can be sent without having to decode/preview the live stream.

fixed

– frame capture to JPEG file may fail

15.2.5.6 – November 28, 2023

fixed

– WPF component not refreshing video on Microsoft Surface tablet

– some webcam may display a black screen

– IP cameras do not report dropped frame count through the Datastead RTSP/RTMP/HTTP/ONVIF Source

– VideoGrabber.VideoRenderer = vr_MadVR not working

– Playlist of images opened with VideoGrabber.Playlist (pl_play…) stops after opening the first image

15.2.5.5 – June 12, 2023

fixed

– VideoWidth property returns the video height, VideoHeight property returns the video width

15.2.5.4 – May 31, 2023

fixed

– crash when previewing with audio rendered through HDMI

– possible crash when sending ONVIF PTZ commands too fast

15.2.5.3 – April 5, 2023

added

– function IsURLVideoStreamAvailable (TimeOut_Ms: LongInt): TTriState
E.g.:
VideoGrabber.VideoSource = vs_IPCamera
VideoGrabber.IPCameraURL = “rtsp://…”
TTriState Result = IsURLVideoStreamAvailable(5000);
The meaning of Result is:
TTristate.ts_Undefined: the connection failed
TTristate.ts_false: the connection succeeded but no frame was received before the timeout expires
TTristate.ts_true: the connection succeeded and at least one frame was received

fixed

– vu-meters may display only one channel

– VideoSource = vs_StreamInterface not working with the RTSP/RTMP/HTTP/ONVIF Source filter

15.2.5.2 – March 9, 2023

added

– Delphi Alexandria 11.3 binaries

enhanced

– lower latency with video capture devices when the audio is not rendered

fixed

– URL sources: the video window background may not be always erased (e.g. when reconnecting)

15.2.5.1 – February 21, 2023

fixed

– player may play fast after viewing an IP camera URL if the audio rendering was not enabled

– image overlay not showing when setting VideoGrabber.SetImageOverlay_VideoAlignment(0, oa_RightBottom)

– text overlay may not appear

– connecting the OnFilterSelected event may cause a lockup if the UAC dialog is displayed

15.2.5.0 – January 16, 2023

added

– IP Cameras: GetFrameInfo(0,fi_First_NTP_time_Recorded) return the NTP time of the first video frame written in the file begin recorded
(requires the RTSP/RTMP/HTTP/ONVIF Source 8.4.2.6 or greater)

fixed

– Multipurpose Encoder: recording an IP camera as video source with an audio capture device as audio source failed to start (with VideoGrabber.RecordingInNativeFormat=false and VBideoGrabber.AudioSource=as_UseExternalAudio)

– C# MainDemo project for NET6 not compiling

15.2.4.8 – November 14, 2022

fixed

– unexpected behavior if RecordingFileName is set with a file type different from the RecordingMethod, which is by default rm_AVI. E.g. RecordingFileName = “c:\folder\video.mp4” and RecordingMethod = rm_AVI.

– when starting the recording of a RTSP URL and the recording file cannot be created, the OnLog event reports “failed to connect” instead of “failed to create file”

changed

C#: the “Helpers.TFrameInfo” and “Helpers.TFrameBitmapInfo” structures are obsolete (used in the OnFrameBitmap and OnFrameProgress2 events). Replace them by “VidGrab.TFrameInfo” and “VidGrab.TFrameBitmapInfo”, e.g.:

private void VideoGrabber1_OnFrameBitmap(object sender, VidGrab.TOnFrameBitmapEventArgs e)
{
  VidGrab.TFrameInfo FrameInfo = (VidGrab.TFrameInfo)Marshal.PtrToStructure((IntPtr)e.frameInfo, typeof(VidGrab.TFrameInfo));
  VidGrab.TFrameBitmapInfo FrameBitmapInfo = (VidGrab.TFrameBitmapInfo)Marshal.PtrToStructure((IntPtr)e.bitmapInfo, typeof(VidGrab.TFrameBitmapInfo));
 // do what is needed with FrameInfo and/or FrameBitmapInfo
}

15.2.4.6 – November 2, 2022

added

– RadStudio 11.2 VLC components

– faster URL connection when no audio rendering or VU-meters are needed (AudioDeviceRendering=false, VUMeters=vu_Disabled)

– faster ONVIF connection (without PTZ support) by specifying VideoGrabber.IPCameraURL = “onvifurl://…” (instead of “onvif://…”)

– NTP camera time reported for each frame:
. either from the OnFrameBitmap event -> FrameInfo parameter -> NTPFrameTime
. either from the OnFrameProgress2 event -> FrameInfo parameter -> NTPFrameTime
. either by invoking int64 NTPFrameTime = VideoGrabber.GetFrameInfo (0, fi_NTPFrameTime)

fixed

– OnLog event may fail to occur

– OnMouseDown / OnMouseUp events not working correctly when the mouse moves out of the video control

15.2.4.4 – September 6, 2022

fixed

– when recording video+audio with the Multipurpose Encoder, the audio stream may be missing

– WPF: the video window may be misaligned after resizing the VideoGrabberWPF control

15.2.4.2 – August 16, 2022

fixed

– possible error when recording an URL source in native format through the RTSP/RTMP/HTTP/ONVIF Source

– Newtek “Webcam Input” virtual device may not be listed in the “video devices” list

15.2.4.1 – August 10, 2022

added

function ONVIFDeviceInfo (onv_XMLReplay):
returns the ONVIF list of recordings available on the ONVIF DVR or camera in XML format

function ONVIFDeviceInfo (onv_XMLInfo):
returns the ONVIF data (including the recordings) in XML format

15.2.2.1 – July 27, 2022

fixed

possible error when invoking SetTextOverlay_String

15.2.1.8 – June 24, 2022

fixed

      • possible error when using the RTSP/RTMP/HTTP/ONVIF Source and/or the Multipurpose Encoder and the binaries are not registered but loaded from a subfolder

15.2.1.6 – June 23, 2022

fixed

      • when opening an URL through the Datastead RTSP/RTMP/HTTP/ONVIF Source and specifying a buffering in milliseconds (e.g. “>buffer=400”), the buffering may not be taken in account
      • when opening a wmv/asf video clip in the player, the frame rate reported may be up to 10000 fps
      • URL recording: after a pause/resume, the time reported by the OnFrameProgress event is not correct when RecordingInNativeFormat=true (by default)
      • OnRawVideoSample event may not work
      • multi-monitors: black window when moving the video control from one monitor to the other
      • RadStudio: the video control may not resize correctly when resizing the parent control
      • WPF: events callbacks may not work properly
      • WPF: invoking VideoGrabber.ClosePlayer() may hang
      • WPF: VideoGrabber.CaptureFrameTo (fc_TBitmap) may return a blank image
      • QT: creating several TVideoGrabber instances concurrently may fail or error the application

15.2.1.4 – May 13, 2022

fixed

– NetworkStreaming = ns_ASFDirectNetworkStreaming not working

– possible Window handle error when the application is compiled for x64

– NDI : GetNDISessions not working properly

15.2.1.2 – April 12, 2022

added

VideoGrabber.RecordingDuration() can be read during the recording when the Datastead Encoder is used

fixed

– the sequence HoldRecording=true -> StartRecording() -> ResumeRecording() does not start with the Datastead Encoder when RecordingPauseCreatesNewFile=true

– possible error of the screen recording

– possible grayscale video with some USB grabbers when the application is targeting x64

– high CPU when opening an URL through the Datastead RTSP filter, the URL does not respond and VideoGrabber.Stop() is invoked before the connection timeout occurs

15.2.1.0 – March 22, 2022

added

– now the RTSP filter updates the dropped frame count in the TVideoGrabber SDK with live RTSP, UDP and RTP sources, this lets determine whether and how many decoded frames are dropped

– when using the Datastead NDI filters and playing NDI streams, possibility to specify the source host and stream name with this sample code:

https://www.datastead.com/_releases/ndi/SAMPLE_CODE.rtf

fixed

– when using the Multipurpose Encoder with the FFmpeg command line, the processing progress was not reported anymore (e.g. in the MainDemo project -> “Multipurpose Encoder” -> “Command line” -> “… log” tabs)

– audio/video possibly not synchronized when playing http/https URLs

15.1.8.0 – February 23, 2022

fixed

– the frame counting and time goes on increasing while the recording is paused

– when recording or streaming with the Multipurpose Encoder, the audio may be missing

changed

– MSVC/QT/MingGW C++ package: Now the package is compatible with the compilation from MinGW.

– the enums are now part of the CVideoGrabber class, this requires some minor changes in the code, e.g.:
SetVideoSource (vs_IPCamera) must be changed as SetVideoSource (TVideoSource::vs_IPCamera)

15.1.6.0 – February 15, 2022

fixed

– VideoGrabber.VideoSource = vs_ScreenRecording or vs_Mixer: the recording may fail to start, depending on the video size

– when the source is the RTSP/RTMP/HTTP/ONVIF Source filter:
. when generating a new file during recording, invoking VideoGrabber.RecordingKBytesWrittenToDisk from the OnRecordingCompleted event does not report the correct file size
. when VideoGrabber.RecordingPauseCreatesNewFile=true a new file name is not created
. when invoking ONVIFSnapShot (true, false, “”), the OnRawVideoSample event (that reports the JPEG image buffer) does not occur

15.1.4.0 – February 3, 2022

fixed

– invoking ShowDialog (dlg_VideoCompressor) with the Datastead Encoder may freeze if invoked while the component is running

– Datastead Encoder UDP streaming stops when the recording timer is enabled, or when invoking RecordToNewFileNow()

changed

– if no VideoGrabber.StoragePath is specified, the recordings are saved in the %TEMP% folder

15.1.2.8 – January 26, 2022

fixed

– Player: AVI files may report a wrong frame rate even with the LAV filters installed

– Multipurpose Encoder: TVideoGrabber uses the Datastead Encoder instead of the command line encoder, although VideoGrabber.EnableMultipurposeEncoder (mpe_Recording, true) has been set.

– possible error with the screen recording if the screen size has an odd value

15.1.2.2 – January 19, 2022

added

NET 6 component

fixed

– possible error when recording through the Datastead Encoder

– now the Datastead Encoder settings can be set “manually” through VideoGrabber.ShowDialog (dlg_VideoCompressor) or ShowDialog (dlg_AudioCompressor). In this case they are saved in the registry and restored automatically when the app is restarted. Note that if either Encoder_SetInt (0, …) or Encoder_SetStr (0, …) is invoked programmatically to configure the encoder, the settings saved in the registry are ignored.

changed

– now by default the files are stored in the user’s “Videos” folder

15.1.2.1 – November 23, 2021

fixed

– audio/video may not be in sync when the source is an URL or IP camera

– overlays may not be working when VideoSource = vs_VideoFileOrURL

– increased CPU load when recording IP cameras

– Blackmagic cards: “Decklink Video Capture” device not listed in the “Video Devices” list

15.1.1.8 – October 26, 2021

fixed

– setting a recording file name with a “.wmv” extension produces a “.asf” file

– OnDeviceArrivalOrRemoval event not raised when connecting/removing a camera or microphone and the preview or recording is running

– recording may fail if an audio device is selected and AudioRecording is enabled

15.1.1.6 – October 15, 2021

fixed

– ResumeRecording may not be instant, although the Datastead Encoder is recording

– Forms of the .NET Winform MainDemo projects not opening

– WPF MainDemo some controls not working property

15.1.1.4 – October 13, 2021

fixed

– recording produces no file after the 1st recording

– possible error when enabling the streaming by invoking Encoders_CreateInstanceForStreaming

15.1.1.2 – October 11, 2021

the changelog is being updated, please come back in a few hours

added

New recording and streaming through the Multipurpose Encoder 2.0.1 without requiring the FFMpeg command line syntax.
The following new functions are introduced:
Encoder_GetInt
Encoder_SetInt
Encoder_SetStr

The typical sample code for the recording is:

Videograbber.VideoCompressor = Videograbber.VideoCompressorIndex("Datastead Multipurpose Encoder");
Videograbber.AudioCompressor = Videograbber.AudioCompressorIndex("Datastead Multipurpose Encoder");
Videograbber.Encoder_SetStr(ENCODER_RECORDING_ID, Enc_Video_Codec, "hevc"); // if not specified the default codec is used
Videograbber.Encoder_SetInt(ENCODER_RECORDING_ID, Enc_Video_Bitrate_kb, 2000); // other settings available
Videograbber.RecordInNativeFormat = false;
Videograbber.recordingFileName = "c:\folder\videoclip.mp4";
Videograbber.AudioRecording = true;
Videograbber.StartRecording();

It is possible to add an “externally‑controlled” streaming or recording with the following new functions:
Encoders_CreateInstanceForRecording
Encoders_CreateInstanceForStreaming
Encoders_RemoveAllInstances
Encoders_RemoveInstance
Encoder_Pause
Encoder_CloseOutputFile
Encoder_NewOutputFile
Encoder_Resume

The typical sample code for the streaming is:
https://www.datastead.com/_releases/vidgrabhelp/StreamingthroughtheDatasteadEnco.html

fixed

– pressing the “ESC” key raises the OnLeavingFullScreen event, even when not in full screen mode

– AudioSyncAdjustmentEnabled and AudioSyncAdjustment not working

15.1.1.4 – October 13, 2021

changed

– now by default the files are stored in the user’s “Videos” folder

15.1.1.2 – October 11, 2021

fixed

– audio/video may not be in sync when the source is an URL or IP camera

– overlays may not be working when VideoSource = vs_VideoFileOrURL

– increased CPU load when recording IP cameras

– Blackmagic cards: “Decklink Video Capture” device not listed in the “Video Devices” list

Older versions (2009-2018)

TVideoGrabber SDK version history

 

v10.8.4.6 – December 21, 2018

fixed

– no audio with WMV clips

v10.8.4.4 – December 18, 2018

added

– Delphi and CppBuilder VCL components for RadStudio 10.3 Rio

– possibility to use the hardware acceleration of video decoding (currently supported with the LAV filters):
property PlayerHwAccel : type THwAccel = (hw_None, hw_Cuda, hw_QuickSync, hw_Dxva2, hw_d3d11)

– control of the IR Cut Filter of Axis cameras through the Datastead RTSP/RTMP/HTTP/ONVIF DirectShow
Source Filter
v7.2.2.1 or newer
by invoking VideoGrabber.ONVIF_SetStr (“RTSP_Source_Axis_IrCutFilter_str”, Value)
with Value = “auto”,
“enabled” or “disabled”

fixed

– possible wrong video clip duration/frame count when reopening a video clip that has already been opened

– video capture devices -> VideoFormats/VideoSizes/VideoSubtypes lists: duplicates items with some capture devices

– IP cameras in HTTP/MJPEG mode: excessive frame rate

v10.8.4.2 – August 24, 2018

changed

– default Display_AspectRatio value changed from ar_Stretch to ar_Box

fixed

– loosing the focus of the current control when starting the video (preview, recording or playback)

– when the preview/recording is running, CameraControlValue and VideoQualityValue now return the real value read from the video capture
device

– preview/recording may fail to start with some video capture devices

– OpenPlayer returns true although the file does not exist

– OpenPlayer / RunPlayer may fail when invoked from the OnPlayerEndOfStream event

– when capturing all the frames of a video clip in burst mode, the OnFrameCaptureCompleted event does not occur for the last frame of the clip

– http cameras in MJPEG mode may fail to start

added

function SetDisplayParent lets attach additional video windows to controls or forms:

– Delphi/C++ Builder: function SetDisplayParent (DisplayIndex, TWinControl descendant)
– other languages: function SetDisplayParent (DisplayIndex, window handle)

Usage :
VideoGrabber….
VideoGrabber.SetDisplayActive (1, true)
VideoGrabber.SetDisplayParent (1, Panel1)
VideoGrabber.SetDisplayActive (2, true)
VideoGrabber.SetDisplayParent (2, Form2)
VideoGrabber.StartPreview()

v10.8.4.1 – August 7, 2018

added

function Monitor_Primary_Index returns the index of the primary monitor (to use with SetDisplayMonitor and GetMonitorBounds)

fixed

– some webcams may fail to start, saying a codec is missing, although no extra codec is needed

– OnAudioPeak event not working in some cases

– OnAudioPeak event: Left_DB and/or Right_DB parameters returning randomly -2147483648

– CSharp component unstable under certain circumstances

v10.8.2.8 – June 11, 2018

fixed

– player reports incorrect clip duration

– when invoking AVIInfo and/or AVIDuration a 1st time on a valid clip, then a 2nd time on a corrupted clip, at the 2nd time the functions report the
duration of the 1st clip, instead of 0

– memory leak

– PausePreview / ResumePreview not working properly under certain circumstances

v10.8.2.6 – May 31, 2018

fixed

– setting VideoFormatIndex with a value > 0 not taken in account

v10.8.2.4 – May 24, 2018

fixed

– opening a clip may fail randomly under certain circumstances

– in certain cases, the 1st opening of a WMV clip is correct but next openings show a shifted image

– the OnInactive event occurs now only when the component stops (in previous versions it occurred also while connecting asynchronously to an URL)

– when invoking ShowDialog (e.g. ShowDialog (dlg_VideoCompressor), some tabs of the dialog are missing)

– IP cameras: jerky video when AudioSource=as_UseExternalAudio (when the audio source is a PC’s audio capture device e.g. line in or microphone)

v10.8.2.2 – May 14, 2018

added

– support of NET Framework 4.7.2

– function ONVIFDeviceInfo (onv_MacAddress) returns the MAC address of the network port of the IP camera

changed

– webcams: if a 1080p or 720p video size is available, it is selected by default instead of 320×240.

fixed

– IP cameras: after a connection failure (camera not available or wrong URL), invoking StartPreview() or StartRecording() with a live URL failed to
start.

– during the reencoding, CurrentState() was returning cs_Preview, instead of cs_Reencoding

– text overlay: the overlay position may change depending on the Windows’s “Display Settings” -> “Scale” setting

– StartSynchronized not working

v10.8.1.5 – April 23, 2018

fixed

– text overlay: when TextOverlay_HighResFont = true, the last character of the overlay may be missing with some fonts

– StartPreview may fail if AudioDeviceRendering=true and the video source has no audio

– StartRecording could have started with black screen if no write rights in the recording folder.
Now StartRecording just fails to start and an error is reported by the OnLog event.

v10.8.1.4 – April 10, 2018

fixed

– hanging when stopping the video on some platforms (may appear after the Windows 10 1709 update)

– when TextOverlay_HighResFonts=true and TextOverlayAlign=tf_Center, the text is not centered correctly

added

– support of the madVR video renderer

– QT quick start demo project

– property Display_Embedded_FitParent

– GetItemNameFromList (‘RTSP_LIC_VERSION’, 0)
returns “2018” if the version of both TVideoGrabber and the RTSP filter are >= 2018

– GetItemNameFromList (‘VIDGRAB_LIC_VERSION’, 0)
returns “2018” if the TVideoGrabber version is >= 2018

v10.8.1.2 – March 13, 2018

added

– ONVIF PTZ support: continuous PTZ, absolute PTZ and relative PTZ with the following functions:
  . ONVIFPTZGetLimits
  . ONVIFPTZGetPosition
  . ONVIFPTZSetPosition
  . ONVIFPTZStartMove
  . ONVIFPTZStopMove

– ONVIFPTZPreset (create, remove, goto)

– ONVIFPTZSendAuxiliaryCommand

– ONVIFDeviceInfo

– IP Cameras and URLs: it is now possible to use an URL as video source and a PC microphone or other audio capture device as audio source with the
following sample code:

VideoGrabber.VideoSource = vs_IPCamera

VideoGrabber.AudioDevice = VideoGrabber.AudioDeviceIndex (…)
VideoGrabber.AudioSource = as_UseExternalAudio

// VideoGrabber.AudioDeviceRendering = true // if needed to render
VideoGrabber.AudioRecording = true
VideoGrabber.RecordingMethod = …
VideoGrabber….
VideoGrabber.StartRecording()

– C#/VB.NET DLL for .NET 4.7.1

– Latest Delphi & C++Builder Tokyo 10.2.2 update

fixed

– RecordingMethod = rm_ASF may fail when the source is the RTSP/RTMP/HTTP/ONVIF DirectShow source filter, depending on
RecordingInNativeFormat is enabled or disabled

– possible audio/video sync problem when RecordingMethod = rm_MP4

– text and image overlay transparency/alphablending may not work properly or the alphablending quality is bad

– OnMouseDown event may not work in some cases

v10.6.2.2 – May 9, 2017

added

– possiblity to overlay the VU-meters over the video frames with VUMeter=vu_AnalogOverlay or VUMeter=vu_BargraphOverlay

fixed

– player: forwarding, rewind and scroll may fail

– player: setting PLayerFramePosition may not be taken in account- property VideoDelay now works even if the frame grabber is disabled

– when recording the screen, the playback of this recording plays faster

– OnMouseLeave event occurs while the cursor is within the video windows

– vu-meters may not work in the player

– possible unstable behavior in WPF

added

– components for Delphi/C++Builder 10.2 Tokyo

– components for .NET Framework 4.6.1, 4.6.2 and 4.7

– property ExtraDLLPath lets you specify the folder location of the binaries of the Datastead RTSP/RTMP/HTTP/ONVIF DirectShow source filter and/or
the Datastead Multipurpose Encoder (in this case it is not necessary to register the filters nor run the filter’s installer)

– property VideoStreamNumber lets you select the video stream (in the 0..n-1 range) when a clip has more than one video stream

– property OnMouseDown_Video, OnMouseUp_Video and OnMouseMove_Video return directly the coordinates of the cursor in the video frame

– property OnMouseDown_Window, OnMouseUp_Window and OnMouseMove_Window return directly the coordinates of the cursor in the video window
(useful e.g. to popup a context menu)

v10.5.1.4 – October 14, 2016

fixed

– motion detection may not work

v10.5.1.2 – October 12, 2016

added

– support for ONVIF cameras (e.g. onvif://192.168.0.32) through our Datastead RTSP/RTMP/HTTP/ONVIF DirectShow Source Filter

– function ONVIFSnapshot to capture ONVIF JPEG snapshot

– alpha blending of text overlays with SetTextOverlay_AlphaBlend and SetTextOverlay_AlphaBlendValue (in the 0..255 range)

fixed

– when TextOverlay_HighResFont is enabled, the “OnTextOverlayScrollingCompleted” event occurs before the end of the text is displayed

– alpha blending of image overlay may not work in certain cases

– chroma keying of image overlay not working

– cannot pause WMV recording when the frame grabber is disabled

– TVideoGrabber tries to reconnect when the AVERMEDIA LGP is unplugged

– no audio rendering with the AVERMEDIA LGP with HDMI input

– Point Grey cameras through the FlyCapture SDK raise an error when starting the preview or recording

– AVIInfo returns wrong values

– C#: OnFrameBitmap callback may fail in some cases

v10.4.2.4 – June 16, 2016

added

– Delphi/C++Builder 10.1 Berlin component included

– .NET 4.6 and 4.6.1 components included

fixed

– reencoding to WMW may fail (ReencodingMethod = rm_ASF)

– video rendering may appear delayed when the frame grabber is enabled

v10.4.1.2 – May 17, 2016

added

– Delphi and C++ Builder 10.1 Berlin VLC components

– possibility to overlay the VU-Meters (analog or bargraph) over the video frames

– possibility to use the VU-meters and bargraphs to display custom values (instead of audio level)

fixed

– less memory consumption when the frame grabber is enabled

– 1920×1080 supported by ASF recording (RecordingMethod = rm_ASF)

– wrong text overlay positionning

– when connecting the OnFrameOverlayUsingDC event in a WPF application, an error may occur in the event callback

– possible black video frame in a WPF application

– possible video blinking in a WPF application

– possible error L1496 when compiling a Delphi application

v10.2.2.1 – November 23, 2015

added

– AutoFileName = fn_Modulo

– SetAudioRendererAdditional

– GetLastFrameBitmapBits

– GetLastFrameBitmapBits2

– MultipurposeEncoder_ReindexClip

fixed

– StartPreview sometimes hangs when NetworkStreaming = ns_ASFDirectNetworkStreaming

– StartPreview or StartRecording fails when the video source is the Datastead RTSP filter and VideoRenderer = vr_None

– OnRecordingStarted event not called in some cases

– changing the BackgroundColor property may be ignored

– VideoRotation = rt_custom_angle may not work

– when displaying on 2 monitors, the video may appear only on one

– text overlay not centered when TextOverlay_VideoAlignment is set to a centered value

– using the Monogram DirectShow AAC encoder to compress audio fails to bind

v10.1.2.8 – April 20, 2015

fixed

playlist: video freezes and/or video window not properly located

SetCameraControl (cc_Exposure…) may not be saved in some cases (the webcam goes back to its auto exposure mode)

v10.1.2.6 – April 16, 2015

added

VideoRendererPriority property: default Speed, possible values: TVideoRendererPriority = (vrp_Speed, vrp_Quality)
Set it to vrp_Quality to get a smoother display quality at large video sizes (this may increase the CPU load).

fixed

wrong alignement when invoking SetTextOverlayAlignment or SetImageOverlayAlignement centered (oa_CenterTop, oa_LeftCenter, oa_Center,
oa_RightCenter or oa_CenterBottom)

after setting PlayerTimePosition = 0 or PlayerFramePosition = 1, the trackbar may reflect another position

v10.1.2.4 – March 12, 2015

added

PauseRecording() and ResumeRecording() now supported with the Avermedia Live Gamer (C875)

fixed

Multipurpose live network streaming works when invoking StartPreview() but not when invoking StartRecording()

AVI Recording fails to recopy the file at the end of the recording when PreallocCapFileEnabled is enabled

v10.1.2.2 – March 6, 2015

added

SetImageOverlay_VideoAlignement and SetTextOverlay_VideoAlignment functions

Support for our new Datastead Multipurpose DirectShow Encoder. If installed, this DirectShow multiplexer
filter allows the TVideoGrabber SDK, with 3 lines of code, to record in many formats, stream in RTSP to the network, or transcode/merge/edit clips.
The sample code is included in the MainDemo project.

The Multipurpose Encoder is supported with the following new functions:

– EnableMultipurposeEncoder
– SetMultipurposeEncoderSettings
– GetMultipurposeEncoderSettings
– MultipurposeEncoder_GetLastLog
– MultipurposeEncoder_GetCurrentInfo
– GetLastFrameBitmapBits
– GetFrameBitmapInfo
– OnMultipurposeEncoderProgress
– OnMultipurposeEncoderError
– OnMultipurposeEncoderCompleted

fixed

– no video when playing H265 clips with the LAV filters installed.

– possible huge memory usage in WPF at large video sizes

– changing the size of the video window can causes flicker

– cannot record audio+video with a DV source

– possible error when accessing the TextOverlay_Font property

– setting the JPEGQuality property is ignored

– CaptureFrameSyncTo function not triggering the OnFrameCaptureCompleted event

– the Dazzle DV recorded HD does not work

v9.2.1.4 – July 1, 2014

fixed

– IP cameras in HTTP mode may not work

– invoking a TVideoGrabber action (e.g. StopRecording) from a TVideoGrabber event (e.g. OnFrameProgress2) may hang

– using an audio capture device as audio source for the RTSP filter with AudioSource = as_UseExternalAudio may fail if AudioDeviceRendering is
enabled

v9.2.1.2 – June 25, 2014

fixed

– stopping the preview or recording when the DirectShow RTSP filter is used as source may block

– error may occur when exiting the application

v9.1.1.2 – June 16, 2014

what’s new

new development platforms supported:
– Visual Studio 2013 (NET Framework 4.5.1)
– RadStudio XE6

– asynchronous connection to IP cameras and RTSP / RTMP / HTTP URLs with the OpenURLAsync property (enabled bu default)

– overlays can be applied directly to the video window(s) so they are not stretched when the video windows are resized
with the new SetTextOverlay_TargetDisplay and SetImageOverlay_TargetDisplay properties
(when using more than one renderer, the overlay can be applied only to the specified display window)

– text overlays: high resolution fonts by enabling SetTextOverlay_HighResFont
Note that the high resolution fonts are supported in C++, C# and VB.NET, ActiveX and Delphi/ C++Builder XE or higher.
The high resolution fonts support gradient colors by enabling SetTextOverlay_GradientMode and specifying the 2nd color with
SetTextOverlay_GradientColor

– it is possible to use more than 2 video renderers with the new set of functions:
VideoGrabber.SetDisplay_… (displayindex, value)
VideoGrabber.GetDisplay… (displayindex)

– overlay settings can be set directly through functions by specifying the overlay indexes by invoking the new set of functions (extensively listed below)

E.g. to set the string of the 4th overlay:

VideoGrabber.TextOverlay_Selector = VideoGrabber.TextOverlay_String = “string for overlay 4”
can be replaced by
VideoGrabber.SetTextOverlayString (4, “string for overlay 4”)

fixed

– VideoGrabber.OpenPlayerAtFramePositions (NewFrame, -1, …) do not work properly

– changing VideoGrabber.PlayerSpeedRatio is ignored in some cases

– Pinnacle Dazzle capture device does not work

– audio recording only of a DV capture device does not work

– reencoding may stop before completion

– invoking StopPreview() or StopRecording() may hang in some cases

– inconsistent behavior of SetVideoControlMode, or SetVideoControlMode2 (top-down or left-right flipping settings of USB or PCI video capture
devices)

– scrolling of text overlays slows-down progressively and stops after a few hours

– AVIDuration may return 0 instead of the real duration

v8.8.4.1 – October 4, 2013

fixed

– VideoGrabber.FullScreen=true: the video goes in full screen mode but the application remains visible in some cases

– playlist: the video window now remains visible between clips

– VideoGrabber.NetworkStreaming enabled: invoking StopPreview() or StopRecording() now stops the graph immediately (previously it took a few
seconds)

– freezing or error when stopping the preview or recording in some rare cases

– Delphi or C++Builder: changing the BackgroundColor property was ignored

added

RadStudio XE5 components

it is not possible to use up to 8 display windows, just invoke the SetDisplay… functions with an index between 2 and 8 (0 and 1 are reserved to the
existing Display… and DualDisplay… properties), e.g.:
Videograbber.SetDisplayActive (2, true);
Videograbber.SetDisplayActive (3, true);
Videograbber.StartPreview();
Videograbber.SetDisplayMonitor (2, 1);
Videograbber.SetDisplayMonitor (3, 2);
Videograbber.SetDisplayFullScreen (2, true);
Videograbber.SetDisplayFullScreen (3, true);

v8.8.2.2 – July 24, 2013

fixed

– playback: half top of the video window may appear black when some video processings are applied (e.g. 90° rotation, etc…)

– audio VU-meter may not work properly

v8.8.2.1 – July 11, 2013

fixed

– possible slower sample times when VideoSource = vs_ScreenRecording, vs_IPcamera or vs_Mixer

– ASF/VMW playback: half top of the video window appears black after installing the Microsoft’s KB2803821 update.

– static playlists: now the components takes as default resolution the size of the 1st clip.
To specify a non-default resolution invoke UseNearestVideoSize (width, height, true) before invoking OpenPlayer()

– VideoSource = vs_JpegsOrBitmaps hangs when invoking StartPreview() or StartRecording() and no sample is passed from the
OnVideoFromBitmapsNextFrameNeeded event

– possible access violation when destroying the component

v8.7.2.5 – April 29, 2013

fixed

– memory leak

– OnFirstFrameReceived event may not occur in some cases

– invoking StopRecording() may hang in some cases

– OnMouseWheel event may not work in some cases

– RecordToNewFileNow() may stop working after a few calls

– possible instability when using several TVideoGrabber instances with the VS.NET(DLL) component

– RecordingTimer may stop working after some time

– when specifying a ZoomCoeff value, the overlays are applied to the zoomed image, even if OverlayAfterTransform = false

– preview or recording may take time to start in some cases

– when specifying a PlayerSpeedRatio <> 1, the real PlayerSpeedRatio may be faster than the specified PlayerSpeedRatio

added

– property OnFrameBitmapEventSynchrone: if enabled in Windows applications the OnFrameBitmap event is synchronized from the main thread,
allowing to update controls or perform operations that can block

v8.7.2.4 – March 13, 2013

fixed

– when VideoSource = vs_JpegsOrBitmaps, pausing the recording does not pause the preview

– CPU load increases after restarting the preview

– possible error when reopening RTSP URLs

v8.7.2.3 – March 7, 2013

added

setting PlayerForcedCodec=”IGNOREFFDSHOWSETTINGS” just after creating the component prevents it to save/restore the current settings of the
FFDShow encoder when it is selected as video compressor

fixed

– generating a new file during recording may create a 0 size file when the RTSP filter is used as video source and RecordingInNativeFormat is
disabled

– AsynchronousStartFromThread .NET demo project did not work correctly

– stopping the recording when RecordingMethod = rm_MP4 may freeze

– invoking CaptureFrameTo() before opening a clip may return an empty frame

– invoking GetLastFrameAs…() just after opening a clip may return an empty frame

– property AutoFileNameDateTimeFormat lets you specify a custom date/time format when the recording file names are generated automatically and
AutoFileName is set to fn_DateTime

– OnDeviceReconnecting event: occurs when a RTSP source is lost and the RTSP filters reconnects automatically (by default)

– OnDeviceReconnected event: occurs when a RTSP source is reconnected (this event occurs always after the OnDeviceReconnecting event)

– setting PlayerForcedCodec=”IGNOREFFDSHOWSETTINGS” prevents TVideoGrabber to save/restore the FFdshow encoder settings

– wrong trackbar position after changing the PlayerSpeedRatio setting

– OnDblClick event may not occur

– audio may disappear while the playlist is playing

– ImageOverlay_ChromaKey may fail

– unable to desactivate MotionDetector_UseThisReferenceSample by passing a NULL bitmap handle / empty file name

v8.7.2.1 – January 29, 2013

improved

lower CPU load when the frame grabber is enabled

more accurate trackbar seeking when PlayerTrackbarSynchrone is enabled

better deinterlacing quality when VideoProcessing_Deinterlacing is set to di_FullSize

fixed

SetTextOverlayCustomVar ignores the TextOverlaySelector value passed as parameter

v8.7.1.5 – January 25, 2013

fixed

– frozen frame between pause and resume when recording with RecordingCanPause=true and RecordingPauseCreatesNewFile=false

– excessive background erasing may show black video

– player may play at wrong speed after a recording

v8.7.1.4 – January 21, 2013

fixed

– VideoGrabberWPF: excessive CPU load and memory consumption when the component was active

– RecordingMethod = rm_ASF: the final recorded file is truncated

– possible jerkiness or artifacts at large video sizes

– OnFrameProgress event may not occur if VideoRenderer = vr_None

– RecordToNewFileNow mail fail after the 2nd call

– MultiplexedRole = mr_MultiplexedMosaic4 or mr_MultiplexedMosaic16: the OnMouse events reported the global xy position instead of the respective
xy position of each multiplexed input (in 2×2 or 4×4 layout)

v8.6.2.10 – November 16, 2012

added

64bit OCX component available (vidgrab_NET_x86.ocx and vidgrab_NET_x64.ocx

OnMouseEnter/OnMouseLeave events

WPF component available: VideoGrabberWPF control of the VidGrabNoForm namespace (look at the WPFQuickStartDemo demo project for sample
code)

fixed

player trackbar may stop working after invoking RunPlayer()

changing PlayerSpeedRatio during playback makes the clip restart from 0

AVISynth scripts may raise an error in some cases

possible error with some Intel graphic chipsets

possible error or recorded clip corrupted when stopping the recording

C#/VB .NET DLL: some events may not be raised when using VideoGrabber component from the VidGrabNoForm namespace

VideoSource = vs_Mixer: sync problem when recording the mixer with an audio capture device and VideoRenderer = vr_None

v8.6.2.8 – September 12, 2012

fixed

– enabling ImageOverlay_StretchToVideoSize has no effect

– reencoding may fail with some AVI clips when ReencodingMethod = rm_AVI

– black window when restarting preview after a “RecordingMethod = rm_MP4” recording

– no audio when playing some MP3 or WMV clips

– some MP4 clips may have played top-down

v8.6.2.6 – August 30, 2012

fixed

– starting preview or recording may take a few seconds

– playing an HD clip can take longer than the real duration of the clip

– OpenPlayerAtTimePositions() and OpenPlayerAtFramePositions() may not work properly

v8.6.2.4 – August 14, 2012

fixed

– possible error when invoking UseNearestVideoSize () and then opening some video clips

– possible error when invoking UseNearestVideoSize () and video source = vs_ScreenRecording

– small VU-meter range when Recording than when Previewing

– player: opening a clip may take a few seconds

– some MP4 clips may show a black window when the MPC codecs are installed

v8.6.2.3 – August 6, 2012

added

– support for the AJA KONA capture card (see the user guide for more information)

fixed

– MP4 clips may fail to play

– MP4 recording with on the fly compression may fail

– static images in player: overlays stop refreshing after 1 second

– CaptureFrameTo() may fail with video clips

v8.6.2.2 – July 31, 2012

fixed

– .NET DLLs: possible error when creating/destroying programmatically the component multiple times

– CaptureFrameTo() may fail when the player is paused

v8.6.2.1 – July 26, 2012

added

– C# and VB.NET: now the component supports the native IntPtr type, e.g. “Handle.ToInt32()” can be replaced by “Handle”

– TVideoGrabber now supports direct harware-encoded H264 to MP4 recording with the Logitech C920
(look at the “Capture devices with a H264 hardware encoder” chapter under “video capture devices” in the user guide)

– VideoGrabberThread class in the VS.NET(DLL) component: lets start an IP camera or open a clip without blocking the main thread.
(look at the “AsynchronousStartFromThread” demo project included under VS.NET(DLL)Demos

– function GetCameraExposure returns the exposure time as double value, e.g. 1/8, 1/16, etc…

– function GetCameraExposureAsString returns the exposure time as a string, e.g. “1/8”, “1/16”, etc…

– procedure SetCameraExposure (Value: Double) lets set the camera exposure time as 1/8, 1/16, etc…

– function GetLastAverageStreamValue (StreamType: TStreamType) return the current average level (for an audio stream) or pixel value (for a video
stream)

– function SendImageToVideoFromBitmaps2 (pBtmapInfo: LongInt; pBitmapBits: LongInt; EndOfData: Boolean) lets pass a bitmap to VideoSource =
vs_JpegsOrBitmaps directly by passing a pointer to the bitmap bits
note: if the header is created dynamically, don’t forget to set BitmapInfo^.BmiHeader^.biSize := sizeof (TBitmapInfoHeader), otherwise the call to
SendImageToVideoFromBitmaps2 will be ignored

fixed

– video may appear top-down when playing MP4 clips

– MP4 recording with mutiple pause/resume: the video recording may freeze

– AVIInfo() and AVIInfo2(): incorrect frame rate reported for some clips

– PlayerSpeedRatio does not play at the specified speed (e.g. PlayerSpeedRatio=0.5 plays at 0.25)

– ASF(WMV) recording with multiple pause/resume (RecordingMethod=rm_ASF, RecordingCanPause=true and RecordingPauseCreatesNewFile=false):
incorrect audio stream duration

– changing the name of the component under Delphi or C++Builder causes an access violation

– memory leak when invoking multiple SetImageOverlayFrom… may cause the overlays to disappear

– black video window when starting the preview or recording with some capture devices

– forcing a video size with UseNearestVideoSize (width, height, true) with video capture devices may be ignored

– setting VideoProcessing_Rotation=rt_custom… with VideoProcessing_RotationCustomAngle causes an access violation

– VP8 recording: specifying a RecordingVideoBitRate value was ignored by the VP8 codec

– VideoProcessing_Deinterlacing = di_HalfSize does not work

– playback of static images: specifying PlayerDuration before invoking OpenPlayer() ignored

– VideoSource=vs_JpegsOrBitmaps:
 . the first frames passed with SendImageToVideoFromBitmaps() may have ben duplicated or lost
 . setting the “EndOfData” parameter of SendImageToVideoFromBitmaps was ignored
 . 8-bit bitmaps ignored by SendImageToVideoFromBitmaps()

– resizing an image overlay with alpha transparency makes the overlay disappear

– application focus may be lost when starting the video

– screen recording with ScreenRecordingUsingCoordinates may freeze

– VS.NET: exiting the application freezes if the TVideoGrabber component has been created programmatically and has no parent

v8.6.1.6 – January 4, 2012

added

now the component supports compression after recording (CompressionMode = cm_CompressAfterRecording) from other recording methods than
rm_AVI

fixed

– same USB audio capture devices may be listed twice in AudioDevices list with different names

– C#: OnRecordingStarted event may be blocking when waiting for it from a waitable object.

Delphi/C++Builder MainDemo project: the trackbars that control the “video quality” and “camera control” settings of the capture devices were
inverted

v8.6.1.4 – December 2, 2011

fixed

– wrong player size reported by VideoWidth_PreferredAspectRatio and VideoHeight_PreferredAspectRatio, when UseNearestVideoSize (width, height,
true) has been invoked to specify a video size before invoking OpenPlayer()

– audio not synchronized when recording in other formats than AVI and ASF and RecordingCanPause is enabled

– possible jerky video when the frame grabber is enabled

v8.6.1.2 – November 21, 2011

added

– VideoSource = vs_JpegsOrBitmap:

It is now possible to pass the video frames synchronously by invoking SendImageToVideoFromBitmaps in real time.
(note that SendImageToVideoFromBitmaps must be invoked at least one time before invoking StartRecording)

changed

– PlayerTrackBarSynchrone now enabled by default

– Reencoding_Method now set to rm_ASF by default

fixed

– codec settings may not be properly saved/restored

– video quality / camera control settings may not be properly saved/restored

– adjustPixelAspectRatio may resize DV clips, even when the property is disabled

– possible freezing when invoking CaptureFrameSyncTo

– specifying a play duration for a static image in a playlist, e.g.:
VideoGrabber.PlayList (pl_Add, “c:folderimage3.bmp”)
VideoGrabber.PlayerDuration := 40000000
VideoGrabber.PlayList (pl_Add, “c:folderimage4.bmp”)
VideoGrabber.PlayList (pl_Play, “”)
was ignored, the playing duration of each image was 1 second.

– if the playlist begins with an audio clip, the next video clips are not displayed

– when opening multiple audio clips successively, the trackbar may jump at the end, and then be inoperant until the application is restarted

v8.5.3.1 – October 10, 2011

fixed

– possible unexpected frame captures when WebcamStillCaptureButton = wb_Enabled and the preview is restarted

– possible freezing when playing static images

– codec settings may not be properly restored

– access violation when MultiplexerRole = mr_MultiplexedMosaic4 or mr_MultiplexedMosaic16

– the last VideoFormat index of the VideoFormats list can”t be selected

v8.5.2.8 – September 13, 2011

fixed

– possible freezing when seeking a clip

v8.5.2.7 – September 12, 2011

added

– 32/64 bit Delphi XE2 component released.

fixed

– error when invoking RecorToNewFileNow() or when the recording timer is enabled

– VideoSource = vs_VideoFileOrURL: when specifying a FileOrURL_StartTime and/or FileOrURL_StopTime, the values are ignored, the clip starts from 0
and plays until the end.

v8.5.2.5 – August 23, 2011

fixed

– when using more than 1 identical video capture devices, the other devices are listed as “device#2, device#2, device#2…” instead of “device#2,
device#3, device#4…”

– the OnRecordingStarted event may not occur in every cases

– background may not be properly erased while restarting the preview, recording or playback

– when the Synchronized property is enabled on several components, only one component starts when invoking e.g. StartPreview()

fixed

– seeking may not work properly depending on the clip encoding

v8.5.2.4 – July 28, 2011

fixed

– seeking may not work properly depending on the clip encoding

– wrong duration reported with some audio clips

– unable to select the #3 or more capture device when more than 2 identical capture devices are used

– OnPlayerOpened event may not occur in some cases

v8.5.2.3 – July 15, 2011

fixed

– possible corrupted clips after long AVI recordings

– jerky video in mixer mode

– possible jerky video in MJPEG mode

– bad audio/video sync with some webcams

– devices not properly listed in the video and/or audio devices lists

– back video with some capture devices

added

– function PointGreyConfig (ConfigType: TPointGreyConfig; var PGRActionValue: LongWord; ulRegister: LongWord; ulMode: LongWord; ulLeft:
LongWord; ulTop: LongWord; ulWidth: LongWord; ulHeight: LongWord; ulPercentage: LongWord; ulFormat: LongWord): LongInt;
lets configure a Point Grey camera

– RecordingMethod = rm_MPG, the MPEG2 multiplexer can be specified with VideoGrabber.Multiplexer = VideoGrabber.MultiplexerIndex (mux name)

– property ASFBufferWindow: LongInt
lets increase the network streaming latency (expressed in ms)

– property AspectRatioToUse: Double
lets override the display aspect ratio (applies only to the display window, not the recording or frame capture)

– possibility to reindex an ASF(WMV) video clip as follows:
VideoGrabber.Reencoding_SourceVideoClip = the file name of the clip to reeindex
VideoGrabber.Reencoding_NewVideoClip = “ASFINDEX”
VideoGrabber.StartReencoding()

v8.5.2.2 – March 28, 2011

fixed

– codec settings previously saved were not restored (did not occur with all codecs)

– codec names returns an empty string when invoking AVIInfo / AVIInfo2

– adjusting the AudioVolume property was changing the global audio volume of the PC

– incorrect frame progress when playing audio clips

– dropped frames not reported when recording in ASF format (RecordingMethod = rm_ASF)

changed

– the OnFrameOverlayUsing… and OnFrameBitmap events now occur after the text overlays and image overlays have been applied

– the AudioChannelRenderMode settings now apply also to the preview and recording (applied previously only to the playback)

added

– the PlayerVideoCodec/PlayerAudioCodec properties and the GetVideoCodec/GetAudioCodec functions now return the FourCC between parenthesis
after the codec name

v8.5.2.1 – February 28, 2011

fixed

– audio capture devices failed to bind in certain cases

– wrong sample time reported by the OnFrame… events when playing an audio clip

– possible access violation when the component is destroyed

– player: overlays fail to refresh when the dual display is enabled and the clip is paused

– playing a playlist with pl_loop sometimes stops

added

– possibility to specify preferred codec(s) to use by passing it(them) with the “prefer:” keyword to the PlayerForcedCodec property, e.g.:

VideoGrabber.PlayerForcedCodec = “prefer:Xvid MPEG-4 Video Decoder”
VideoGrabber.PlayerForcedCodec = “prefer: …”
VideoGrabber.PlayerFileName = …clip to play
VideoGrabber.OpenPlayer()

To reset the settings set:
VideoGrabber.PlayerForcedCodec = “”

v8.5.1.9 – February 10, 2011

fixed

OnDeviceArrivalOrRemoval event not notified after invoking RefreshDevicesAndCompressorsLists

file possibly recorded in “slow motion” when VideoSource = vs_Mixer and RecordingMethod = rm_ASF

playing some .ax URLs may fail

end of reecoding not reported by the OnReencodingCompleted event in certains cases

OSPrey cards: switching from Composite to SVideo may fail

OSPrey cards: possible BSOD when restarting the preview

added

property ScreenRecordingLayeredWindow: Boolean

v8.5.1.8 – January 28, 2011

fixed

function IsVideoSignalDetected returns false even if video signal available

setting ASFVideoBitRate=-1 or SetASFVideoFrameRate=-1 does not set them back to their default values after a value has been set

OnDiskFull event may not be raised in certain cases while recording is running

no sound with Decklink cards when recording audio only

changed

when ASFProfileVersion=apv_ProfileVersion_9, specifying a ASFVideoQuality>-1 (between 0 and 100) activates the WMV9 VBR recording mode (by
default in CBR mode)

v8.5.1.7 – January 10, 2011

added

RecordingMethod = rm_WebM lets record in WebM format by using the Google’s VP8/WebM codecs and the Xiph’s Vorbis codecs

QuickDeviceInitialization: Boolean initialize the video capture device with its default settings, without restoring the saved settings (useful mainly with
webcams)

TextOverlay_Scrolling: Boolean activates/deactivates the scrolling of the text overlay, now TextOverlay_ScrollingSpeed=0 pauses the scrolling,
TextOverlay_ScrollingSpeed>0 scrolls from right to left and TextOverlay_ScrollingSpeed<0 from left to right

Support of Decklink playout. By default the video is displayed in 720×480, invoke UseNearestVideoSize (1920, 1080, true) to display it in HD size (the
video clip must be 25 or 29.97 fps)

changed

TextOverlay_ScrollingSpeed = 0 now just pauses the scrolling (see above)

OCX/NET DLL versions: devices property lists (VideoDevices, AudioDevices, VideoSizes, etc…) had an extra line that is now no more added.
If the last line is missing in your ComboBox lists after upgrading, upgrade the procedure that updates your ComboBox by using the new sample code of the
AssignListToComboBox function included in the VidGrabUtil.cs or VidGrabUtil.vb of the MainDemo project

fixed

Multiplexed mode does not work properly when MultiplexedRole is used

Jerky trackbar behavior when seeking clips

“Google Camera Adapter” was listed in the VideoDevices list, although not useable

black video window with some Logitech webcams

v8.5.1.5 – November 23, 2010

fixed

– possible excessive CPU load when VideoSource = vs_ScreenRecording

– possible periodical freezings when previewing/recording IP cameras

– possible error when opening .WAV audio clips when third-party codecs packs are installed

– VideoGrabber.PlayList (pl_Add, “”) + VideoGrabber.PlayerFileName=”PLAYLIST” + VideoGrabber.OpenPlayer() fails if the clips in the list are only
audio
clips

v8.5.1.4 – November 12, 2010

fixed

– player reports aspect ratio reports 0x0 with some MPEG2 codecs, possibly with no video displayed or frame capture not available

– no audio recording with Dazzle DVC 100

– possible freezing with some MPEG clips when PlayerTrackbarSynchrone is enabled and making successive and consecutive seekings

– video clip position not updated fast enough when seeking to a new position and PlayerTrackbarSynchrone is enabled

– possible error when starting a recording in MPG format

v8.5.1.3 – November 3, 2010

fixed

– random freezings of 1 or more seconds when previewing/recording IP cameras

– wrong sample times returned when the frame grabber is enabled and PlayerSpeedRatio <> 1

– recording of HD camcorder may fail when RecordingInNativeFormat is enabled

– ASF/WMV non-seekable clip stops playing after 1 second

– UseNearestVideoSize() does not apply to IP cameras

– text overlay scrolling may disappear and never reappear when TextOverlay_ScrollingSpeed > 0

v8.5.1.2 – October 25, 2010

added

– property AdjustOverlayAspectRatio: Boolean (enabled by default)
When enabled and the frame grabber is enabled and the display aspect ratio is different of the source size, the video is resized before applying the overlays
so there are not stretched by the resizing at display time.
This property requires a bit more CPU so it can be disabled to reduce the CPU load.

fixed

  • BSOD problem fixed
  • background not properly erased when Display_FullScreen = true and Display_AspectRatio = ar_NoResize

v8.4.1.5 – October 19, 2010

added

property ThirdPartyDeinterlacer: string

property DirectShowFilters: string (string list of the DirectShow filters available)

property DirectShowFiltersCount: Integer

set PlayerForcedCodec = NOFFDSHOW to prevent the FFDSHOW codecs to be binded by DirectShow

set PlayerForcedCodec = NOMPC to prevent the MPC codecs to be binded by DirectShow

When TextOverlay_ScrollingSpeed > 0 the text overlay can be now scrolled into an area delimited by TextOverlay_Left and TextOverlay_Right at the
TextOverlay_Top location

fixed

possible freezing when stopping the app from the debugger under Visual Studio

rare BSOD occuring when starting the application.
Note: This problem remains while the application is running, this will be fixed with the
upgrade released during next days.

v8.4.1.4 – September 30, 2010

added

the functions below lets you export and import the current video or audio compressor settings (be sure to first select the RecordingMethod, and
VideoCompressor or AudioCompressor index)

– function LoadCompressorSettingsFromDataString (IsVideoCompressor: Boolean; CompressorIndex: LongInt; DataString: string): Boolean;

– function LoadCompressorSettingsFromTextFile (IsVideoCompressor: Boolean; CompressorIndex: LongInt; FileName: string): Boolean;

– function SaveCompressorSettingsToDataString (IsVideoCompressor: Boolean; CompressorIndex: LongInt): string;

– function SaveCompressorSettingsToTextFile (IsVideoCompressor: Boolean; CompressorIndex: LongInt; FileName: string): Boolean;

fixed

– some AVI clips fail to play

– bad quality of the text overlays when the frame grabber is enabled and AdjustPixelAspectRatio is enabled

– black video window with the OsPrey 440

v8.4.1.3 – September 22, 2010

fixed

– error “set outputfilename (mux/sink)” when enabling the network streaming in preview mode

– jerky seeking while the player is paused

v8.4.1.2 – September 15, 2010

fixed

– current control can loose focus when starting the preview, recording or playback

– bad video quality with VMR7 and/or EVR renderers

– error in ASF recording when stopping the recording while the recording is paused when RecordingCanPause and RecordingPauseCreatesNewFile are
enabled

– chroma key does not work

– wrong frame rate reported by AVIInfo / AVIInfo2

– cannot open in the player a .WAV clip just recorded if HoldRecording=true + ResumeRecording was used during the recording

– screen recording: cropping and UseNearestVideoSize do not work properly

– updading image overlay settings from the OnFrame… events is slow

– application freezing in VB6 / VC6 when the OnFrameProgress2 event is used

– unplugging a webcam may not be detected every time (the cam stays in use so it can’t be restarted when re-plugged in)

– vigrab_VB6.ocx: the app raises an error or stops responding to events after a variable time

– when selecting a new capture device and VideoSource <> vs_VideoCaptureDevice, the device discovery fails: the VideoSizes, VideoSubtypes and
VideoInputs lists are empty (to reset them if needed, invoke VideoGrabber.ResetVideoDeviceSettings just one time)

– VideoWidth_PreferredAspectRatio and VideoHeight_PreferredAspectRatio report wrong values after invoking UseNearestVideoSize

– reencoding may stop prematurely

added

tpf_AddToGraph added to the ThirdPartyFilter_AddToList options to simply add a third-party filter to the graph

MP4 recording with RecordingMethod = rm_MP4 by selecting a MPEG-4 codec in the VideoCompressors list (XVid, DivX, etc…)

FLV recording with RecordingMethod = rm_FLV / settings by invoking ShowDialog (dlg_FLVWriter)Optional custom settings by invoking ShowDialog (dlg_FFDShowVideo) and ShowDialog (dlg_FFDShowAudio)

DSCaler Deinterlacer support with VideoProcessing_Deinterlacing = ds_DScaler
settings by invoking ShowDialog (dlg_DScaler)

function GetTranslatedCoordinates (DisplayIndex: LongInt; NativeX: LongInt; NativeY: LongInt; var TranslatedX: LongInt; var TranslatedY: LongInt):
Boolean;

property FrameNumberStartsFromZero: Boolean

property Aero: TAero
TAero = (ae_Default, ae_AutoBestRenderingQuality, ae_ForceOnWhenStartingVideo, ae_ForceOffWhenStartingVideo, ae_ForceOnImmediately,
ae_ForceOffImmediately)

function MPEGProgramSetting (MPEGProgramSetting: TMPEGProgramSetting; Value: LongInt): LongInt;
TMPEGProgramSetting = (mps_Program_Number, mps_Program_PCR_PID, mps_VideoStream_PID, mps_AudioStream_PID)

v8.2 build 8.2.4.2 – April 12, 2010

fixed

– reencoding may stop prematurely

– IP camera recording may stop prematurely

– error when invoking SetTextOverlayCustomVar periodically

v8.2 build 8.2.2.4 – March 10, 2010

fixed

– after playing a WMV/ASF file, it was not possible to overwrite it (to record it again) unless restarting the application.

– transparency and/or alphablending may not work properly depending on the image used

– dual full screen mode with Display_FullScreen and DualDisplay_FullScreen enabled on 2 different monitors does not display in full screen mode on one
monitor

– first frame not notified by the OnFrameProgress… events when the frame grabber is disabled

– seeking does not work properly with some video clips

– ASF recording freezes or stops after a few minutes

– events do not work in the VC6 MainDemo project

– reencoding or playing a PLAYLIST introduces stops between the clips

v8.2 build 8.2.2.1 – February 25, 2010

fixed

– image overlay transparency fails when ImageOverlay_Transparent is enabled and ImageOverlay_Alphablend disabled

– when rendering or recording an audio input of the soundcard, other inputs may be muted

– the OnFrameProgress… event does not occur when opening a clip with the frame grabber enabled and AutoStartPlayer = false

– when selecting several text overlays with TextOverlay_Selector, there may be not displayed correctly when enabling/disabling
TextOverlay_Enabled

v8.2 build 8.2.1.7 – February 9, 2010

fixed

– no video in mixer mode if the frame grabber is disabled on the mixer

– random error when invoking GetFrameInfo from the OnFrameProgress/OnFrameProgress2 event

– OnRecording… events may not occur in certain cases

– OnRawVideoSample event may not occur when RawVideoSampleCapture is enabled

v8.2 build 8.2.1.4 – February 2, 2010

fixed

background not fully erased when Display_AspectRatio = ar_Box

unable to seek some video seekable video clips

trying to connect indefinitely when some IP cameras do not respond properly

video hickups (small freezings) with some capture devices or during playback

v8.2 build 8.2.1.2 – January 26, 2010

fixed

no video in the dual display windows if the first window is not selected

possible black video when recording and the video renderer is vr_VMR7, vr_VMR9 or vr_EVR

the VideoCodec and/or AudioCodec properties report wrong codec names

possible error when generating a new file during asf recording

no audio captured or rendered with some analog TV capture cards

with analog TV cards the default TV channel may display a black video if another channel has not been selected first

changed

OnMotionDetected event: the FrameBitmap parameter is now useless.
To capture the motion frame from this event invoke GetLastFrameAsHBitmap (all versions) or GetLastFrameAsTBitmap (Delphi/C++Builder) as shown in the
MotionDetected event of the MainDemo project (in MainForm)

added

function GetLastFrameAsHBitmap (all versions) and GetLastFrameAsTBitmap (Delphi/C++Builder)

fast capture of all the frames of a video clip with the following sample code:


VideoGrabber.PlayerFileName = …
VideoGrabber.BurstMode = true
VideoGrabber.BurstCount = 0 // don’t stop capturing
VideoGrabber.StoragePath = “c:yourcapturefolder”
VideoGrabber.BurstInterval = 0
VideoGrabber.BurstType = fc_JpegFile // you can use fc_BMPFile
VideoGrabber.UseClock = false
VideoGrabber.OpenPlayer()

v8.0 build 8.0.1.3 – November 6, 2009

fixed

– OnReencodingCompleted or OnRecordingCompleted event not fired

added

– the video size of the static playlist can be specified by invoking UseNearestVideoSize() before invoking OpenPlayer()

– the frame rate of the static playlist can be specified by setting the FrameRate property before invoking OpenPlayer()

v8.0 build 8.0.1.2 – October 28, 2009

fixed

– Decklink capture cards: SDI audio input not available

– error with some IP cameras

– IP cameras record in uncompressed RGB instead of MJPG format, even when RecordingInNativeFormat is true

– the playlist does not loop when the end is reached although PlayList (pl_Loop, “”) has been invoked

v8.0 build 8.0.0.38 – October 9, 2009

fixed

– no audio rendeding when playing a playlist with the following code:

VideoGrabber.VideoSource = vs_VideoFileOrURL
VideoGrabber.PlayList (pl, Add, “clip1.avi”)
VideoGrabber.PlayList (pl, Add, “clip2.avi”)
…
VideoGrabber.VideoSource_FileOrURL = “PLAYLIST”)
VideoGrabber.StartPreview()

– PlayerFramePosition may return negative values

– error in TVideoGrabber.h when compiling the “VC++(DLL)” version from native C

– freezing when starting preview with some video capture devices

– Axis IP cameras: axrtsphttp://… URL fails to start preview

v8.0 build 8.0.0.23 – September 3, 2009

added

– function ResetVideoDeviceSettings() can be invoked when the component is inactive to reset the settings of the video capture devices to their default
values.

fixed

– black video when starting preview with some capture devices (e.g. Logitech webcams)

– no preview while the ASF recording is paused

v8.0 build 8.0.0.22 – August 31, 2009

fixed

– Blackmagic Decklink: not possible to select the HDMI input

– no video displayed when starting the preview after playing a playlist

– the trackbar progress does not correspond to the video clip position when PlayerSpeedRatio <> 1, PlayerAudioRendering enabled and FrameGrabber
<> fg_Disabled

– RecordingTimer fails when using the VidGrabNoForms class in .NET(DLL) version

– ThirdPartyFilter_ShowDialog does not display any dialog

added

possibility to pause/resume the ASF recording when RecordingCanPause=true and RecordingPauseCreatesNewFile=false

v8.0 build 8.0.0.18 – August 24, 2009

added

Support of the Vista’s Enhanced Video Renderer (set VideoGrabber.VideoRenderer = vr_EVR)

fixed

– incorrect logo position whatever the LogoLayout setting when LogoDisplayed = true

– blank between clips when VideoVisibleWhenStopped=true or during the playback of a playlist

– player position jumps after a PausePlayer | change PlayerSpeedRatio | RunPlayer

– “Cannot focus a disabled or invisible window” error when moving the mouse over the video window and the “MouseWheelEventEnabled”
property is enabled

v8.0 build 8.0.0.10 – June 24, 2009

added

– function Mixer_SetupPIPFromSource lets display the video from another TVideoGrabber in PIP (Picture In Picture) mode

– function PlayerFrameStep lets step one frame forward (or n frames forward) while the clip is paused

fixed

– possible error when the text overlay is used, the error occurs after a various time

– shadow of the text overlay not correctly centered when the text overlay is not aligned to the left side

– possible flickering during playback

v8.0 build 8.0.0.6 – June 21, 2009

added

– property VideoRendererExternalIndex

– it is now possible to extract the audio of a clip during reencoding by just specifying “.wav” or “.mp3” as extension for the Reencoding_NewVideoClip
file name
Remark: the Elecard LAME Audio encoder (freeware) is required to encode in MP3, it can be downloaded here

fixed

– clip position jumps when changing the PlayerSpeedRatio value during playback

– trackbar position does not match the current position when PlayerSpeedRatio <> 1

v8.0 build 8.0.0.4 – June 10, 2009

added

– support for HD camcorders

– procedure SetFrameCaptureBounds (LeftPosition, TopPosition, RightPosition, BottomPosition) lets specify a sub-rectangle to capture on the video
frame

fixed

– Trendnet IP100 IP camera fais to connect

– Secifiying a Reecoding_StartFrame and/or Reencoding_EndFrame may be ignored depending of the way the source clip is encoded

v8.0 build 8.0.0.2 – June 7, 2009

added

– property Display_AlphaBlendEnabled

– property Display_AlphaBlendValue

– property Display_TransparentColorEnabled

– property Display_TransparentColorValue

– property DualDisplay_AlphaBlendEnabled

– property DualDisplay_AlphaBlendValue

– property DualDisplay_TransparentColorEnabled

– property DualDisplay_TransparentColorValue

– function Mixer_SetPIPLocation (Id: LongInt; ActivatePIP: Boolean; PIP_Left: LongInt; PIP_Top: LongInt; PIP_Width: LongInt; PIP_Height: LongInt;
MoveToTop: Boolean): Boolean;
(PICTURE IN PICTURE MIXER MODE)

– bool Mixer_SetPIPLocation(int Id, bool ActivatePIP, int PIP_Left, int PIP_Top, int PIP_Width, int PIP_Height, bool MoveToTop);
(see the “PictureInPictureMixer” demo project included in the package)

– static Playlist played like a single video clip (see the Player -> Playlist chapter of the user guide)

– WebcamStillCaptureButton: TWebcamStillCaptureButton = (wb_Disabled, wb_Enabled).
(when enabled and pressing the webcam’s snapshot button, the frame is captured and returned by the OnFrameCaptureCompleted event)

fixed

– recording fails to start when RecordingMethod = rm_ASF, ASFProfileVersion = apv_ProfileVersion_8 and a profile is selected (ASFProfile >= 0)

– motion detector fails to detect properly the 1st time the preview or recording is started

– audio hick-ups when playing high res video clips

– possible freezing when the motion detection is enabled

– error when stopping the recording after a PauseRecording / ResumeRecording

– possible freezing after a long recording in mixer mode (VideoSource = vs_Mixer)

– error when exiting a VB6 app

– invoking MotionDetector_SetCellSensitivity does not change the sensitivity of a cell

– OnPlayerEndOfStream event notified 2 times in some cases

– out of resources error during the screen preview/recording after about 10-15 minutes

– possible black window after invoking OpenPlayer and before the clip starts to play if another task is performed during this interval of time

– possible “cannot create file” error when starting the streaming

changed

In Delphi/C++Builder, global functions are replaced by TVideoGrabber properties, e.g.:

function VideoDevices: string replaced by VideoGrabber->VideoDevices

function VideoDevicesCount: int replaced by VideoGrabber->VideoDevicesCount
etc…

If you need to access them before the visible TVideoGrabber component has been created, creat a temporary TVideoGrabber component to get the list
then delete it.
E.g., depending on the development language:

VideoGrabberTemp := TVideoGrabber.Create(nil)
MyVideoDevicesList := VideoGrabberTemp.VideoDevices
VideoGrabberTemp.Free

VideoGrabberTemp = new *TVideoGrabber(this)
MyVideoDevicesList = VideoGrabberTemp->VideoDevices
delete (VideoGrabberTemp)