-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
/
VideoCapturePara.cs
47 lines (42 loc) · 1.74 KB
/
VideoCapturePara.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
namespace OpenCvSharp;
/// <summary>
/// Parameters of VideoCature for hardware acceleration
/// Please check the link below for current HW acceleration types support matrix
/// https://github.com/opencv/opencv/wiki/Video-IO-hardware-acceleration
/// </summary>
[Serializable]
public record VideoCapturePara
{
/// <summary>
/// Used as value in #CAP_PROP_HW_ACCELERATION and #VIDEOWRITER_PROP_HW_ACCELERATION
/// note In case of FFmpeg backend, it translated to enum AVHWDeviceType (https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/hwcontext.h)
/// </summary>
public VideoAccelerationType AccelerationType { get; }
/// <summary>
/// Hardware device index (select GPU if multiple available). Device enumeration is acceleration type specific.
/// </summary>
public int HwDeviceIndex { get; }
/// <summary>
/// Constructor, parameter of VideoCature for hardware acceleration
/// </summary>
public VideoCapturePara()
{
AccelerationType = VideoAccelerationType.Any;
HwDeviceIndex = -1;
}
/// <summary>
/// Constructor, parameter of VideoCature for hardware acceleration
/// </summary>
/// <param name="videoAcceleration">Video Acceleration type</param>
/// <param name="deviceIndex">Hardware device index </param>
public VideoCapturePara(VideoAccelerationType videoAcceleration, int deviceIndex)
{
AccelerationType = videoAcceleration;
HwDeviceIndex = deviceIndex;
}
/// <summary>
/// Get parameters of VideoCature for hardware acceleration
/// </summary>
public int[] GetParameters() => new[] { (int)VideoCaptureProperties.HwAcceleration, (int)AccelerationType,
(int)VideoCaptureProperties.HwDevice, HwDeviceIndex };
}