Gazebo Common

API Reference

5.6.0
gz/common/HWVideo.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2020 Martin Pecka
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15 */
16 #ifndef GZ_COMMON_HWVIDEO_HH
17 #define GZ_COMMON_HWVIDEO_HH
18 
19 #include <gz/common/EnumIface.hh>
20 
21 namespace gz::common
22 {
23  enum class GZ_COMMON_AV_VISIBLE HWEncoderType
24  {
26  NVENC, // Linux device is /dev/nvidia*
27  // Windows is the same (even though such file doesn't exist)
28  VAAPI, // Linux device /dev/dri/renderD* or display number (e.g. :0)
29  VDPAU, // Not supported (probably only for decoding?)
30  QSV, // Win device is 0-based GPU index,
31  // Linux uses /dev/dri/renderD* or display number (e.g. :0)
32  VIDEOTOOLBOX, // Not yet suported
33  AMF, // Not yet suported
34  OMX, // Not yet suported
35  V4L2M2M, // Not yet suported
36  DXVA2, // Not yet suported
37  _ // For FlagSet to work.
38  };
39 
40  GZ_ENUM(HWEncoderTypeParser, HWEncoderType,
41  HWEncoderType::NONE, HWEncoderType::_,
42  "NONE",
43  "NVENC",
44  "VAAPI",
45  "VDPAU",
46  "QSV",
47  "VIDEOTOOLBOX",
48  "AMF",
49  "OMX",
50  "V4L2M2M",
51  "DXVA2",
52  "INVALID"
53  )
54 }
55 
56 #endif