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)