@@ -14,26 +14,26 @@ from av.dictionary import Dictionary
1414
1515
1616class HWDeviceType (IntEnum ):
17- NONE = lib.AV_HWDEVICE_TYPE_NONE
18- VDPAU = lib.AV_HWDEVICE_TYPE_VDPAU
19- CUDA = lib.AV_HWDEVICE_TYPE_CUDA
20- VAAPI = lib.AV_HWDEVICE_TYPE_VAAPI
21- DXVA2 = lib.AV_HWDEVICE_TYPE_DXVA2
22- QSV = lib.AV_HWDEVICE_TYPE_QSV
23- VIDEOTOOLBOX = lib.AV_HWDEVICE_TYPE_VIDEOTOOLBOX
24- D3D11VA = lib.AV_HWDEVICE_TYPE_D3D11VA
25- DRM = lib.AV_HWDEVICE_TYPE_DRM
26- OPENCL = lib.AV_HWDEVICE_TYPE_OPENCL
27- MEDIACODEC = lib.AV_HWDEVICE_TYPE_MEDIACODEC
28- VULKAN = lib.AV_HWDEVICE_TYPE_VULKAN
29- D3D12VA = lib.AV_HWDEVICE_TYPE_D3D12VA
17+ none = lib.AV_HWDEVICE_TYPE_NONE
18+ vdpau = lib.AV_HWDEVICE_TYPE_VDPAU
19+ cuda = lib.AV_HWDEVICE_TYPE_CUDA
20+ vaapi = lib.AV_HWDEVICE_TYPE_VAAPI
21+ dxva2 = lib.AV_HWDEVICE_TYPE_DXVA2
22+ qsv = lib.AV_HWDEVICE_TYPE_QSV
23+ videotoolbox = lib.AV_HWDEVICE_TYPE_VIDEOTOOLBOX
24+ d3d11va = lib.AV_HWDEVICE_TYPE_D3D11VA
25+ drm = lib.AV_HWDEVICE_TYPE_DRM
26+ opencl = lib.AV_HWDEVICE_TYPE_OPENCL
27+ mediacodec = lib.AV_HWDEVICE_TYPE_MEDIACODEC
28+ vulkan = lib.AV_HWDEVICE_TYPE_VULKAN
29+ d3d12va = lib.AV_HWDEVICE_TYPE_D3D12VA
3030
3131class HWConfigMethod (IntEnum ):
32- NONE = 0
33- HW_DEVICE_CTX = lib.AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX # This is the only one we support.
34- HW_FRAME_CTX = lib.AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX
35- INTERNAL = lib.AV_CODEC_HW_CONFIG_METHOD_INTERNAL
36- AD_HOC = lib.AV_CODEC_HW_CONFIG_METHOD_AD_HOC
32+ none = 0
33+ hw_device_ctx = lib.AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX # This is the only one we support.
34+ hw_frame_ctx = lib.AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX
35+ internal = lib.AV_CODEC_HW_CONFIG_METHOD_INTERNAL
36+ ad_hoc = lib.AV_CODEC_HW_CONFIG_METHOD_AD_HOC
3737
3838
3939cdef object _cinit_sentinel = object ()
@@ -82,19 +82,18 @@ cdef class HWConfig:
8282 def is_supported (self ):
8383 return bool (self .ptr.methods & lib.AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX)
8484
85- hwdevices_available = []
8685
87- cdef lib.AVHWDeviceType x = lib.AV_HWDEVICE_TYPE_NONE
88- while True :
89- x = lib.av_hwdevice_iterate_types(x)
90- if x == lib.AV_HWDEVICE_TYPE_NONE:
91- break
92- hwdevices_available.append(lib.av_hwdevice_get_type_name(HWDeviceType(x)))
86+ cpdef hwdevices_available():
87+ result = []
9388
94- def dump_hwdevices ():
95- print (" Hardware device types:" )
96- for x in hwdevices_available:
97- print (" " , x)
89+ cdef lib.AVHWDeviceType x = lib.AV_HWDEVICE_TYPE_NONE
90+ while True :
91+ x = lib.av_hwdevice_iterate_types(x)
92+ if x == lib.AV_HWDEVICE_TYPE_NONE:
93+ break
94+ result.append(lib.av_hwdevice_get_type_name(HWDeviceType(x)))
95+
96+ return result
9897
9998
10099cdef class HWAccel:
@@ -162,6 +161,3 @@ cdef class HWAccelContext(HWAccel):
162161 def __dealloc__ (self ):
163162 if self .ptr:
164163 lib.av_buffer_unref(& self .ptr)
165-
166- def create (self , *args , **kwargs ):
167- raise ValueError (" cannot call HWAccelContext.create" )
0 commit comments