HwCodecDetect 0.2.2__tar.gz → 0.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hwcodecdetect-0.2.2/src/HwCodecDetect.egg-info → hwcodecdetect-0.2.3}/PKG-INFO +4 -4
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/README.md +3 -3
- hwcodecdetect-0.2.3/VERSION +1 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect/bitdepth_chroma_detect.py +14 -5
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect/run_tests.py +14 -3
- hwcodecdetect-0.2.3/src/HwCodecDetect/version.py +1 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3/src/HwCodecDetect.egg-info}/PKG-INFO +4 -4
- hwcodecdetect-0.2.2/VERSION +0 -1
- hwcodecdetect-0.2.2/src/HwCodecDetect/version.py +0 -1
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/LICENSE +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/MANIFEST.in +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/pyproject.toml +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/requirements.txt +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/setup.cfg +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/setup.py +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect/__init__.py +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect/install_ffmpeg_if_needed.py +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/SOURCES.txt +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/dependency_links.txt +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/entry_points.txt +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/requires.txt +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/top_level.txt +0 -0
- {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/zip-safe +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: HwCodecDetect
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: A cross-platform tool to automatically detect and test hardware video decoders/encoders using FFmpeg.
|
|
5
5
|
Home-page: https://github.com/whyb/HwCodecDetect
|
|
6
6
|
Author: whyb
|
|
@@ -59,8 +59,8 @@ The script automatically detect and reports on the following major hardware enco
|
|
|
59
59
|
| Media Foundation | H.264、H.265、AV1 |
|
|
60
60
|
| D3D12VA (Direct3D 12 Video Acceleration) | H.264、H.265、AV1 |
|
|
61
61
|
| VAAPI (Video Acceleration API) | H.264、H.265、AV1、MJPEG、MPEG-2、VP8、VP9 |
|
|
62
|
-
| Vulkan | H.264、H.265
|
|
63
|
-
| Apple VideoToolbox | H.264、H.265
|
|
62
|
+
| Vulkan | H.264、H.265、AV1 |
|
|
63
|
+
| Apple VideoToolbox | H.264、H.265、ProRes |
|
|
64
64
|
|
|
65
65
|
### Decoders
|
|
66
66
|
The script automatically detect and reports on the following major hardware decoders and their supported formats:
|
|
@@ -72,7 +72,7 @@ The script automatically detect and reports on the following major hardware deco
|
|
|
72
72
|
| DXVA2 (DirectX Video Acceleration) | H.264、H.265、MJPEG、MPEG-1、MPEG-2、MPEG-4、VP8 |
|
|
73
73
|
| D3D11VA (Direct3D 11 Video Acceleration) | H.264、H.265、AV1、MJPEG、MPEG-1、MPEG-2、MPEG-4、VP8、VP9 |
|
|
74
74
|
| Vulkan | H.264、H.265、AV1 |
|
|
75
|
-
| Apple VideoToolbox | H.264、H.265、MPEG-2、MPEG-4
|
|
75
|
+
| Apple VideoToolbox | H.264、H.265、MPEG-2、MPEG-4、ProRes |
|
|
76
76
|
|
|
77
77
|
### Bit-depth and Chroma Subsampling Detection
|
|
78
78
|
In addition to resolution-based testing, the tool now includes comprehensive bit-depth and chroma subsampling detection. This feature tests hardware codec support for different pixel formats, helping you understand the full capabilities of your hardware encoders and decoders.
|
|
@@ -33,8 +33,8 @@ The script automatically detect and reports on the following major hardware enco
|
|
|
33
33
|
| Media Foundation | H.264、H.265、AV1 |
|
|
34
34
|
| D3D12VA (Direct3D 12 Video Acceleration) | H.264、H.265、AV1 |
|
|
35
35
|
| VAAPI (Video Acceleration API) | H.264、H.265、AV1、MJPEG、MPEG-2、VP8、VP9 |
|
|
36
|
-
| Vulkan | H.264、H.265
|
|
37
|
-
| Apple VideoToolbox | H.264、H.265
|
|
36
|
+
| Vulkan | H.264、H.265、AV1 |
|
|
37
|
+
| Apple VideoToolbox | H.264、H.265、ProRes |
|
|
38
38
|
|
|
39
39
|
### Decoders
|
|
40
40
|
The script automatically detect and reports on the following major hardware decoders and their supported formats:
|
|
@@ -46,7 +46,7 @@ The script automatically detect and reports on the following major hardware deco
|
|
|
46
46
|
| DXVA2 (DirectX Video Acceleration) | H.264、H.265、MJPEG、MPEG-1、MPEG-2、MPEG-4、VP8 |
|
|
47
47
|
| D3D11VA (Direct3D 11 Video Acceleration) | H.264、H.265、AV1、MJPEG、MPEG-1、MPEG-2、MPEG-4、VP8、VP9 |
|
|
48
48
|
| Vulkan | H.264、H.265、AV1 |
|
|
49
|
-
| Apple VideoToolbox | H.264、H.265、MPEG-2、MPEG-4
|
|
49
|
+
| Apple VideoToolbox | H.264、H.265、MPEG-2、MPEG-4、ProRes |
|
|
50
50
|
|
|
51
51
|
### Bit-depth and Chroma Subsampling Detection
|
|
52
52
|
In addition to resolution-based testing, the tool now includes comprehensive bit-depth and chroma subsampling detection. This feature tests hardware codec support for different pixel formats, helping you understand the full capabilities of your hardware encoders and decoders.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.3
|
|
@@ -58,8 +58,10 @@ ENCODER_TITLES = {
|
|
|
58
58
|
("vp9_vaapi", "vp9"): "Video Acceleration VP9 Encoder(VAAPI)",
|
|
59
59
|
("h264_vulkan", "h264"): "Vulkan Hardware H264 Encoder(Vulkan)",
|
|
60
60
|
("hevc_vulkan", "h265"): "Vulkan Hardware H265 Encoder(Vulkan)",
|
|
61
|
+
("av1_vulkan", "av1"): "Vulkan Hardware AV1 Encoder(Vulkan)",
|
|
61
62
|
("h264_videotoolbox", "h264"): "MacOS Hardware H264 Encoder(VideoToolbox)",
|
|
62
63
|
("hevc_videotoolbox", "h265"): "MacOS Hardware H265 Encoder(VideoToolbox)",
|
|
64
|
+
("prores_videotoolbox", "prores"): "MacOS Hardware ProRes Encoder(VideoToolbox)",
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
# Decoder titles (same as main module)
|
|
@@ -101,16 +103,18 @@ DECODER_TITLES = {
|
|
|
101
103
|
("videotoolbox", "h265"): "MacOS Hardware H265 Decoder(VideoToolbox)",
|
|
102
104
|
("videotoolbox", "mpeg2"): "MacOS Hardware MPEG-2 Decoder(VideoToolbox)",
|
|
103
105
|
("videotoolbox", "mpeg4"): "MacOS Hardware MPEG-4 Decoder(VideoToolbox)",
|
|
106
|
+
("videotoolbox", "prores"): "MacOS Hardware ProRes Decoder(VideoToolbox)",
|
|
104
107
|
}
|
|
105
108
|
|
|
106
109
|
# Encoder definitions (same as main module)
|
|
107
110
|
ENCODERS = {
|
|
108
111
|
"h264": {"lib": "libx264", "hw_encoders": ["h264_nvenc", "h264_qsv", "h264_amf", "h264_mf", "h264_d3d12va", "h264_vaapi", "h264_vulkan", "h264_videotoolbox"]},
|
|
109
112
|
"h265": {"lib": "libx265", "hw_encoders": ["hevc_nvenc", "hevc_qsv", "hevc_amf", "hevc_mf", "hevc_d3d12va", "hevc_vaapi", "hevc_vulkan", "hevc_videotoolbox"]},
|
|
110
|
-
"av1": {"lib": "librav1e", "hw_encoders": ["av1_nvenc", "av1_qsv", "av1_amf", "av1_mf", "av1_d3d12va", "av1_vaapi"]},
|
|
113
|
+
"av1": {"lib": "librav1e", "hw_encoders": ["av1_nvenc", "av1_qsv", "av1_amf", "av1_mf", "av1_d3d12va", "av1_vaapi", "av1_vulkan"]},
|
|
111
114
|
"mpeg2": {"lib": "mpeg2video", "hw_encoders": ["mpeg2_qsv", "mpeg2_vaapi"]},
|
|
112
115
|
"vp8": {"lib": "libvpx", "hw_encoders": ["vp8_vaapi"]},
|
|
113
116
|
"vp9": {"lib": "libvpx-vp9", "hw_encoders": ["vp9_qsv", "vp9_vaapi"]},
|
|
117
|
+
"prores": {"lib": "prores", "hw_encoders": ["prores_videotoolbox"]},
|
|
114
118
|
}
|
|
115
119
|
|
|
116
120
|
# Decoder definitions (same as main module)
|
|
@@ -123,6 +127,7 @@ DECODERS = {
|
|
|
123
127
|
"mpeg4": {"lib": "mpeg4", "hw_decoders": ["mpeg4_cuvid", "dxva2", "d3d11va", "videotoolbox"]},
|
|
124
128
|
"vp8": {"lib": "libvpx", "hw_decoders": ["vp8_cuvid", "vp8_qsv", "dxva2", "d3d11va"]},
|
|
125
129
|
"vp9": {"lib": "libvpx-vp9", "hw_decoders": ["vp9_cuvid", "vp9_qsv", "dxva2", "d3d11va"]},
|
|
130
|
+
"prores": {"lib": "prores", "hw_decoders": ["videotoolbox"]},
|
|
126
131
|
}
|
|
127
132
|
|
|
128
133
|
|
|
@@ -148,8 +153,10 @@ def _run_ffmpeg_command(command, verbose):
|
|
|
148
153
|
def _run_encoder_bitdepth_test(test_data):
|
|
149
154
|
"""Tests encoder support for a specific pixel format."""
|
|
150
155
|
codec, encoder, pix_fmt, bit_depth, chroma, test_dir, verbose = test_data
|
|
151
|
-
|
|
152
|
-
|
|
156
|
+
if codec == "prores":
|
|
157
|
+
file_ext = ".mov"
|
|
158
|
+
else:
|
|
159
|
+
file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
|
|
153
160
|
output_file = os.path.join(test_dir, f"{encoder}_{pix_fmt}{file_ext}")
|
|
154
161
|
|
|
155
162
|
# Determine pixel format for output based on input format
|
|
@@ -291,8 +298,10 @@ def _run_encoder_bitdepth_tests(test_dir, max_workers, verbose):
|
|
|
291
298
|
def _run_decoder_bitdepth_test(test_data):
|
|
292
299
|
"""Tests decoder support for a specific pixel format."""
|
|
293
300
|
codec, hw_decoder, pix_fmt, bit_depth, chroma, test_dir, verbose = test_data
|
|
294
|
-
|
|
295
|
-
|
|
301
|
+
if codec == "prores":
|
|
302
|
+
file_ext = ".mov"
|
|
303
|
+
else:
|
|
304
|
+
file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
|
|
296
305
|
test_file = os.path.join(test_dir, f"{codec}_{pix_fmt}{file_ext}")
|
|
297
306
|
|
|
298
307
|
# Create test file with specific pixel format if it doesn't exist
|
|
@@ -78,6 +78,7 @@ DECODER_TITLES = {
|
|
|
78
78
|
("videotoolbox", "h265"): "MacOS Hardware H265 Decoder(VideoToolbox)",
|
|
79
79
|
("videotoolbox", "mpeg2"): "MacOS Hardware MPEG-2 Decoder(VideoToolbox)",
|
|
80
80
|
("videotoolbox", "mpeg4"): "MacOS Hardware MPEG-4 Decoder(VideoToolbox)",
|
|
81
|
+
("videotoolbox", "prores"): "MacOS Hardware ProRes Decoder(VideoToolbox)",
|
|
81
82
|
}
|
|
82
83
|
|
|
83
84
|
DECODERS = {
|
|
@@ -90,6 +91,7 @@ DECODERS = {
|
|
|
90
91
|
"mpeg4": {"lib": "mpeg4", "hw_decoders": ["mpeg4_cuvid", "dxva2", "d3d11va", "videotoolbox"]},
|
|
91
92
|
"vp8": {"lib": "libvpx", "hw_decoders": ["vp8_cuvid", "vp8_qsv", "dxva2", "d3d11va"]},
|
|
92
93
|
"vp9": {"lib": "libvpx-vp9", "hw_decoders": ["vp9_cuvid", "vp9_qsv", "dxva2", "d3d11va"]},
|
|
94
|
+
"prores": {"lib": "prores", "hw_decoders": ["videotoolbox"]},
|
|
93
95
|
}
|
|
94
96
|
|
|
95
97
|
# --- Encoder Definitions ---
|
|
@@ -121,18 +123,21 @@ ENCODER_TITLES = {
|
|
|
121
123
|
("vp9_vaapi", "vp9"): "Video Acceleration VP9 Encoder(VAAPI)",
|
|
122
124
|
("h264_vulkan", "h264"): "Vulkan Hardware H264 Encoder(Vulkan)",
|
|
123
125
|
("hevc_vulkan", "h265"): "Vulkan Hardware H265 Encoder(Vulkan)",
|
|
126
|
+
("av1_vulkan", "av1"): "Vulkan Hardware AV1 Encoder(Vulkan)",
|
|
124
127
|
("h264_videotoolbox", "h264"): "MacOS Hardware H264 Encoder(VideoToolbox)",
|
|
125
128
|
("hevc_videotoolbox", "h265"): "MacOS Hardware H265 Encoder(VideoToolbox)",
|
|
129
|
+
("prores_videotoolbox", "prores"): "MacOS Hardware ProRes Encoder(VideoToolbox)",
|
|
126
130
|
}
|
|
127
131
|
|
|
128
132
|
ENCODERS = {
|
|
129
133
|
"h264": {"lib": "libx264", "hw_encoders": ["h264_nvenc", "h264_qsv", "h264_amf", "h264_mf", "h264_d3d12va", "h264_vaapi", "h264_vulkan", "h264_videotoolbox"]},
|
|
130
134
|
"h265": {"lib": "libx265", "hw_encoders": ["hevc_nvenc", "hevc_qsv", "hevc_amf", "hevc_mf", "hevc_d3d12va", "hevc_vaapi", "hevc_vulkan", "hevc_videotoolbox"]},
|
|
131
|
-
"av1": {"lib": "librav1e", "hw_encoders": ["av1_nvenc", "av1_qsv", "av1_amf", "av1_mf", "av1_d3d12va", "av1_vaapi"]},
|
|
135
|
+
"av1": {"lib": "librav1e", "hw_encoders": ["av1_nvenc", "av1_qsv", "av1_amf", "av1_mf", "av1_d3d12va", "av1_vaapi", "av1_vulkan"]},
|
|
132
136
|
"mjpeg": {"lib": "mjpeg", "hw_encoders": ["mjpeg_qsv", "mjpeg_vaapi"]},
|
|
133
137
|
"mpeg2": {"lib": "mpeg2video", "hw_encoders": ["mpeg2_qsv", "mpeg2_vaapi"]},
|
|
134
138
|
"vp8": {"lib": "libvpx", "hw_encoders": ["vp8_vaapi"]},
|
|
135
139
|
"vp9": {"lib": "libvpx-vp9", "hw_encoders": ["vp9_qsv", "vp9_vaapi"]},
|
|
140
|
+
"prores": {"lib": "prores", "hw_encoders": ["prores_videotoolbox"]},
|
|
136
141
|
}
|
|
137
142
|
|
|
138
143
|
# Combine both decoder and encoder data into a single structure
|
|
@@ -259,7 +264,10 @@ def _run_ffmpeg_command(command, verbose):
|
|
|
259
264
|
def _run_encoder_test_single(test_data):
|
|
260
265
|
"""Runs a single encoder test and returns the result."""
|
|
261
266
|
codec, encoder, res_name, res_size, test_dir, verbose = test_data
|
|
262
|
-
|
|
267
|
+
if codec == "prores":
|
|
268
|
+
file_ext = ".mov"
|
|
269
|
+
else:
|
|
270
|
+
file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
|
|
263
271
|
output_file = os.path.join(test_dir, f"{encoder}_{res_name}{file_ext}")
|
|
264
272
|
if "vulkan" in encoder:
|
|
265
273
|
command = [
|
|
@@ -374,7 +382,10 @@ def _run_encoder_tests(test_dir, max_workers, verbose):
|
|
|
374
382
|
def _run_decoder_test_single(test_data):
|
|
375
383
|
"""Runs a single decoder test and returns the result."""
|
|
376
384
|
codec, hw_decoder, res_name, res_size, test_dir, verbose = test_data
|
|
377
|
-
|
|
385
|
+
if codec == "prores":
|
|
386
|
+
file_ext = ".mov"
|
|
387
|
+
else:
|
|
388
|
+
file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
|
|
378
389
|
test_file_path = os.path.join(test_dir, f"{codec}_{res_name}{file_ext}")
|
|
379
390
|
|
|
380
391
|
found_file = False
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.3"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: HwCodecDetect
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: A cross-platform tool to automatically detect and test hardware video decoders/encoders using FFmpeg.
|
|
5
5
|
Home-page: https://github.com/whyb/HwCodecDetect
|
|
6
6
|
Author: whyb
|
|
@@ -59,8 +59,8 @@ The script automatically detect and reports on the following major hardware enco
|
|
|
59
59
|
| Media Foundation | H.264、H.265、AV1 |
|
|
60
60
|
| D3D12VA (Direct3D 12 Video Acceleration) | H.264、H.265、AV1 |
|
|
61
61
|
| VAAPI (Video Acceleration API) | H.264、H.265、AV1、MJPEG、MPEG-2、VP8、VP9 |
|
|
62
|
-
| Vulkan | H.264、H.265
|
|
63
|
-
| Apple VideoToolbox | H.264、H.265
|
|
62
|
+
| Vulkan | H.264、H.265、AV1 |
|
|
63
|
+
| Apple VideoToolbox | H.264、H.265、ProRes |
|
|
64
64
|
|
|
65
65
|
### Decoders
|
|
66
66
|
The script automatically detect and reports on the following major hardware decoders and their supported formats:
|
|
@@ -72,7 +72,7 @@ The script automatically detect and reports on the following major hardware deco
|
|
|
72
72
|
| DXVA2 (DirectX Video Acceleration) | H.264、H.265、MJPEG、MPEG-1、MPEG-2、MPEG-4、VP8 |
|
|
73
73
|
| D3D11VA (Direct3D 11 Video Acceleration) | H.264、H.265、AV1、MJPEG、MPEG-1、MPEG-2、MPEG-4、VP8、VP9 |
|
|
74
74
|
| Vulkan | H.264、H.265、AV1 |
|
|
75
|
-
| Apple VideoToolbox | H.264、H.265、MPEG-2、MPEG-4
|
|
75
|
+
| Apple VideoToolbox | H.264、H.265、MPEG-2、MPEG-4、ProRes |
|
|
76
76
|
|
|
77
77
|
### Bit-depth and Chroma Subsampling Detection
|
|
78
78
|
In addition to resolution-based testing, the tool now includes comprehensive bit-depth and chroma subsampling detection. This feature tests hardware codec support for different pixel formats, helping you understand the full capabilities of your hardware encoders and decoders.
|
hwcodecdetect-0.2.2/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.2.2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.2.2"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|