Completed
Last Updated: 30 May 2022 11:34 by ADMIN
Release LIB 2022.2.606 (06 June 2022)

I have a WPF window containing a RadWebCam control and a CameraSettingsControl control associated with it (as shown in the online documentation). When I close the WPF window, no memory associated with that window is released. I implemented a Finalizer in the window and found that it wasn't getting called even after several GC.Collect() calls.  The culprit appears to be the CameraSettingsControl when it's associated with the RadWebCam control. In my application, it's not freeing about 80MB of memory after each window invocation.

I have included a full project sample which demonstrates the issue. Just set a BreakPoint on the finalizer ~TakePicture(). When the application is run, hit the 'Take Picture' button to launch the Camera window, and then close it.  To verify that it's not just a delay in garbage collection, hit the GCCollect button on the main window a couple of times. The Finalizer never gets called until you exit the app.

Here's the Telerik control WPF I'm using, but it's also in the sample.

<telerikWebCam:RadWebCam Grid.Column ="0" x:Uid="WebCamCaptureWindow_RadWebCam" x:Name="webCam" MinWidth="0" MinHeight="0" AutoStart="False" Margin="0 25 0, 0" 

                                       BorderThickness="0"
                                       Background="Black"
                                       PreviewSnapshots="True"
                                       RecordingButtonVisibility="Collapsed"
                                       Visibility="Visible"
                                       CameraError="OnWebCamCameraError" />

<telerikWebCam:CameraSettingsControl Grid.Column ="1" x:Uid="WebCamCaptureWindow_CameraControlSettings" x:Name="webCamSettingsControl" WebCam="{Binding ElementName=webCam}" 
                                                         Visibility="Visible"/>
Completed
Last Updated: 13 Aug 2021 12:44 by ADMIN
Release LIB 2021.2.816 (16 Aug 2021)
Created by: Xavier
Comments: 3
Category: WebCam
Type: Bug Report
0

a call to StartRecording() results in an unhandled null reference exception when the webcam has been disabled. (this is not the case when other webcam errors occur, like when the webcam is taken by another application). 

Our application provides a fallback scenario to make an audio recording when the webcam is not available, in order for this to work it would be preferable to be able to call the StartRecording() method without causing a crash, and to still have the RecordingStarted event triggered, just like in the case of a "camera unavailable" error.

 

Completed
Last Updated: 20 Jan 2020 08:03 by ADMIN
Release LIB 2020.1.120 (01/20/2020)

Steps to reproduce:

1. Create a form with a webcam that calls Close and Dispose when closed.

2. Create a second form with a button that shows the first form.

3. Run the project and you will see an exception when closing the webcam form.

Completed
Last Updated: 26 Nov 2019 09:58 by ADMIN
Release LIB 2019.3.1202

Steps to reproduce:

1. Place a camera on a window

2. Have no camera plugged in the PC

3. Call the Start or Stop method

Expected behaviour: Nothing 

Actual behaviour: An exception is thrown

Completed
Last Updated: 09 Oct 2019 10:19 by ADMIN
Release LIB 2019.3.1014 (10/14/2019)
NullReferenceException is thrown at Telerik.Windows.Controls.RadWebCam.GetCameraSettingsViewModel() 
as player is not initialized yet. 
Completed
Last Updated: 04 Oct 2019 06:06 by ADMIN
Release LIB 2019.3.1007
NullReferenceException is thrown in Telerik.Windows.Controls.RadWebCam.OnFlipHorizontallyChanged/OnFlipVerticallyChanged as webCam.player is not yet initialized.
Completed
Last Updated: 15 Aug 2019 09:44 by ADMIN
Release LIB 2019.2.819 (08/19/2019)
If you forbid the app access to the camera via the Windows settings a System.Exception is thrown when you start the RadWebCam control. The exception message is 'MFCreateDeviceSource failed: E_ACCESSDENIED'
Completed
Last Updated: 19 Jul 2019 14:31 by ADMIN
Release LIB 2019.2.722 (22/7/2019)
A black screen and disabled camera buttons are present if the control is setup by Initialize method using the following code:

var devices = RadWebCam.GetVideoCaptureDevices();
var formats = RadWebCam.GetVideoFormats(devices[0]);
this.webcam.Initialize(devices[0], formats[0]);