HwCodecDetect 0.2.1__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.
Files changed (23) hide show
  1. {hwcodecdetect-0.2.1/src/HwCodecDetect.egg-info → hwcodecdetect-0.2.3}/PKG-INFO +6 -6
  2. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/README.md +5 -5
  3. hwcodecdetect-0.2.3/VERSION +1 -0
  4. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/src/HwCodecDetect/bitdepth_chroma_detect.py +16 -6
  5. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/src/HwCodecDetect/run_tests.py +15 -3
  6. hwcodecdetect-0.2.3/src/HwCodecDetect/version.py +1 -0
  7. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3/src/HwCodecDetect.egg-info}/PKG-INFO +6 -6
  8. hwcodecdetect-0.2.1/VERSION +0 -1
  9. hwcodecdetect-0.2.1/src/HwCodecDetect/version.py +0 -1
  10. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/LICENSE +0 -0
  11. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/MANIFEST.in +0 -0
  12. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/pyproject.toml +0 -0
  13. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/requirements.txt +0 -0
  14. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/setup.cfg +0 -0
  15. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/setup.py +0 -0
  16. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/src/HwCodecDetect/__init__.py +0 -0
  17. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/src/HwCodecDetect/install_ffmpeg_if_needed.py +0 -0
  18. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/SOURCES.txt +0 -0
  19. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/dependency_links.txt +0 -0
  20. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/entry_points.txt +0 -0
  21. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/requires.txt +0 -0
  22. {hwcodecdetect-0.2.1 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/top_level.txt +0 -0
  23. {hwcodecdetect-0.2.1 → 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.1
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
@@ -56,11 +56,11 @@ The script automatically detect and reports on the following major hardware enco
56
56
  | NVEnc | H.264、H.265、AV1 |
57
57
  | QSV (Quick Sync Video) | H.264、H.265、AV1、MJPEG、MPEG-2、VP9 |
58
58
  | AMF (Advanced Media Framework) | H.264、H.265、AV1 |
59
- | Media Foundation | H.264、H.265 |
60
- | D3D12VA (Direct3D 12 Video Acceleration) | H.265 |
59
+ | Media Foundation | H.264、H.265、AV1 |
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.
@@ -30,11 +30,11 @@ The script automatically detect and reports on the following major hardware enco
30
30
  | NVEnc | H.264、H.265、AV1 |
31
31
  | QSV (Quick Sync Video) | H.264、H.265、AV1、MJPEG、MPEG-2、VP9 |
32
32
  | AMF (Advanced Media Framework) | H.264、H.265、AV1 |
33
- | Media Foundation | H.264、H.265 |
34
- | D3D12VA (Direct3D 12 Video Acceleration) | H.265 |
33
+ | Media Foundation | H.264、H.265、AV1 |
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
@@ -46,6 +46,7 @@ ENCODER_TITLES = {
46
46
  ("av1_amf", "av1"): "AMD Hardware AV1 Encoder(AMF)",
47
47
  ("h264_mf", "h264"): "Microsoft Hardware H264 Encoder(MediaFoundation)",
48
48
  ("hevc_mf", "h265"): "Microsoft Hardware H265 Encoder(MediaFoundation)",
49
+ ("av1_mf", "av1"): "Microsoft Hardware AV1 Encoder(MediaFoundation)",
49
50
  ("h264_d3d12va", "h264"): "Microsoft Direct3D 12 Video Acceleration H264 Encoder(D3D12VA)",
50
51
  ("hevc_d3d12va", "h265"): "Microsoft Direct3D 12 Video Acceleration H265 Encoder(D3D12VA)",
51
52
  ("av1_d3d12va", "av1"): "Microsoft Direct3D 12 Video Acceleration AV1 Encoder(D3D12VA)",
@@ -57,8 +58,10 @@ ENCODER_TITLES = {
57
58
  ("vp9_vaapi", "vp9"): "Video Acceleration VP9 Encoder(VAAPI)",
58
59
  ("h264_vulkan", "h264"): "Vulkan Hardware H264 Encoder(Vulkan)",
59
60
  ("hevc_vulkan", "h265"): "Vulkan Hardware H265 Encoder(Vulkan)",
61
+ ("av1_vulkan", "av1"): "Vulkan Hardware AV1 Encoder(Vulkan)",
60
62
  ("h264_videotoolbox", "h264"): "MacOS Hardware H264 Encoder(VideoToolbox)",
61
63
  ("hevc_videotoolbox", "h265"): "MacOS Hardware H265 Encoder(VideoToolbox)",
64
+ ("prores_videotoolbox", "prores"): "MacOS Hardware ProRes Encoder(VideoToolbox)",
62
65
  }
63
66
 
64
67
  # Decoder titles (same as main module)
@@ -100,16 +103,18 @@ DECODER_TITLES = {
100
103
  ("videotoolbox", "h265"): "MacOS Hardware H265 Decoder(VideoToolbox)",
101
104
  ("videotoolbox", "mpeg2"): "MacOS Hardware MPEG-2 Decoder(VideoToolbox)",
102
105
  ("videotoolbox", "mpeg4"): "MacOS Hardware MPEG-4 Decoder(VideoToolbox)",
106
+ ("videotoolbox", "prores"): "MacOS Hardware ProRes Decoder(VideoToolbox)",
103
107
  }
104
108
 
105
109
  # Encoder definitions (same as main module)
106
110
  ENCODERS = {
107
- "h264": {"lib": "libx264", "hw_encoders": ["h264_nvenc", "h264_qsv", "h264_amf", "h264_mf", "h264_vaapi", "h264_vulkan", "h264_videotoolbox"]},
111
+ "h264": {"lib": "libx264", "hw_encoders": ["h264_nvenc", "h264_qsv", "h264_amf", "h264_mf", "h264_d3d12va", "h264_vaapi", "h264_vulkan", "h264_videotoolbox"]},
108
112
  "h265": {"lib": "libx265", "hw_encoders": ["hevc_nvenc", "hevc_qsv", "hevc_amf", "hevc_mf", "hevc_d3d12va", "hevc_vaapi", "hevc_vulkan", "hevc_videotoolbox"]},
109
- "av1": {"lib": "librav1e", "hw_encoders": ["av1_nvenc", "av1_qsv", "av1_amf", "av1_vaapi"]},
113
+ "av1": {"lib": "librav1e", "hw_encoders": ["av1_nvenc", "av1_qsv", "av1_amf", "av1_mf", "av1_d3d12va", "av1_vaapi", "av1_vulkan"]},
110
114
  "mpeg2": {"lib": "mpeg2video", "hw_encoders": ["mpeg2_qsv", "mpeg2_vaapi"]},
111
115
  "vp8": {"lib": "libvpx", "hw_encoders": ["vp8_vaapi"]},
112
116
  "vp9": {"lib": "libvpx-vp9", "hw_encoders": ["vp9_qsv", "vp9_vaapi"]},
117
+ "prores": {"lib": "prores", "hw_encoders": ["prores_videotoolbox"]},
113
118
  }
114
119
 
115
120
  # Decoder definitions (same as main module)
@@ -122,6 +127,7 @@ DECODERS = {
122
127
  "mpeg4": {"lib": "mpeg4", "hw_decoders": ["mpeg4_cuvid", "dxva2", "d3d11va", "videotoolbox"]},
123
128
  "vp8": {"lib": "libvpx", "hw_decoders": ["vp8_cuvid", "vp8_qsv", "dxva2", "d3d11va"]},
124
129
  "vp9": {"lib": "libvpx-vp9", "hw_decoders": ["vp9_cuvid", "vp9_qsv", "dxva2", "d3d11va"]},
130
+ "prores": {"lib": "prores", "hw_decoders": ["videotoolbox"]},
125
131
  }
126
132
 
127
133
 
@@ -147,8 +153,10 @@ def _run_ffmpeg_command(command, verbose):
147
153
  def _run_encoder_bitdepth_test(test_data):
148
154
  """Tests encoder support for a specific pixel format."""
149
155
  codec, encoder, pix_fmt, bit_depth, chroma, test_dir, verbose = test_data
150
-
151
- file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
156
+ if codec == "prores":
157
+ file_ext = ".mov"
158
+ else:
159
+ file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
152
160
  output_file = os.path.join(test_dir, f"{encoder}_{pix_fmt}{file_ext}")
153
161
 
154
162
  # Determine pixel format for output based on input format
@@ -290,8 +298,10 @@ def _run_encoder_bitdepth_tests(test_dir, max_workers, verbose):
290
298
  def _run_decoder_bitdepth_test(test_data):
291
299
  """Tests decoder support for a specific pixel format."""
292
300
  codec, hw_decoder, pix_fmt, bit_depth, chroma, test_dir, verbose = test_data
293
-
294
- file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
301
+ if codec == "prores":
302
+ file_ext = ".mov"
303
+ else:
304
+ file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
295
305
  test_file = os.path.join(test_dir, f"{codec}_{pix_fmt}{file_ext}")
296
306
 
297
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 ---
@@ -108,6 +110,7 @@ ENCODER_TITLES = {
108
110
  ("av1_amf", "av1"): "AMD Hardware AV1 Encoder(AMF)",
109
111
  ("h264_mf", "h264"): "Microsoft Hardware H264 Encoder(MediaFoundation)",
110
112
  ("hevc_mf", "h265"): "Microsoft Hardware H265 Encoder(MediaFoundation)",
113
+ ("av1_mf", "av1"): "Microsoft Hardware AV1 Encoder(MediaFoundation)",
111
114
  ("h264_d3d12va", "h264"): "Microsoft Direct3D 12 Video Acceleration H264 Encoder(D3D12VA)",
112
115
  ("hevc_d3d12va", "h265"): "Microsoft Direct3D 12 Video Acceleration H265 Encoder(D3D12VA)",
113
116
  ("av1_d3d12va", "av1"): "Microsoft Direct3D 12 Video Acceleration AV1 Encoder(D3D12VA)",
@@ -120,18 +123,21 @@ ENCODER_TITLES = {
120
123
  ("vp9_vaapi", "vp9"): "Video Acceleration VP9 Encoder(VAAPI)",
121
124
  ("h264_vulkan", "h264"): "Vulkan Hardware H264 Encoder(Vulkan)",
122
125
  ("hevc_vulkan", "h265"): "Vulkan Hardware H265 Encoder(Vulkan)",
126
+ ("av1_vulkan", "av1"): "Vulkan Hardware AV1 Encoder(Vulkan)",
123
127
  ("h264_videotoolbox", "h264"): "MacOS Hardware H264 Encoder(VideoToolbox)",
124
128
  ("hevc_videotoolbox", "h265"): "MacOS Hardware H265 Encoder(VideoToolbox)",
129
+ ("prores_videotoolbox", "prores"): "MacOS Hardware ProRes Encoder(VideoToolbox)",
125
130
  }
126
131
 
127
132
  ENCODERS = {
128
133
  "h264": {"lib": "libx264", "hw_encoders": ["h264_nvenc", "h264_qsv", "h264_amf", "h264_mf", "h264_d3d12va", "h264_vaapi", "h264_vulkan", "h264_videotoolbox"]},
129
134
  "h265": {"lib": "libx265", "hw_encoders": ["hevc_nvenc", "hevc_qsv", "hevc_amf", "hevc_mf", "hevc_d3d12va", "hevc_vaapi", "hevc_vulkan", "hevc_videotoolbox"]},
130
- "av1": {"lib": "librav1e", "hw_encoders": ["av1_nvenc", "av1_qsv", "av1_amf", "av1_vaapi", "av1_d3d12va"]},
135
+ "av1": {"lib": "librav1e", "hw_encoders": ["av1_nvenc", "av1_qsv", "av1_amf", "av1_mf", "av1_d3d12va", "av1_vaapi", "av1_vulkan"]},
131
136
  "mjpeg": {"lib": "mjpeg", "hw_encoders": ["mjpeg_qsv", "mjpeg_vaapi"]},
132
137
  "mpeg2": {"lib": "mpeg2video", "hw_encoders": ["mpeg2_qsv", "mpeg2_vaapi"]},
133
138
  "vp8": {"lib": "libvpx", "hw_encoders": ["vp8_vaapi"]},
134
139
  "vp9": {"lib": "libvpx-vp9", "hw_encoders": ["vp9_qsv", "vp9_vaapi"]},
140
+ "prores": {"lib": "prores", "hw_encoders": ["prores_videotoolbox"]},
135
141
  }
136
142
 
137
143
  # Combine both decoder and encoder data into a single structure
@@ -258,7 +264,10 @@ def _run_ffmpeg_command(command, verbose):
258
264
  def _run_encoder_test_single(test_data):
259
265
  """Runs a single encoder test and returns the result."""
260
266
  codec, encoder, res_name, res_size, test_dir, verbose = test_data
261
- file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
267
+ if codec == "prores":
268
+ file_ext = ".mov"
269
+ else:
270
+ file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
262
271
  output_file = os.path.join(test_dir, f"{encoder}_{res_name}{file_ext}")
263
272
  if "vulkan" in encoder:
264
273
  command = [
@@ -373,7 +382,10 @@ def _run_encoder_tests(test_dir, max_workers, verbose):
373
382
  def _run_decoder_test_single(test_data):
374
383
  """Runs a single decoder test and returns the result."""
375
384
  codec, hw_decoder, res_name, res_size, test_dir, verbose = test_data
376
- file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
385
+ if codec == "prores":
386
+ file_ext = ".mov"
387
+ else:
388
+ file_ext = ".webm" if codec in ["vp8", "vp9"] else ".mp4"
377
389
  test_file_path = os.path.join(test_dir, f"{codec}_{res_name}{file_ext}")
378
390
 
379
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.1
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
@@ -56,11 +56,11 @@ The script automatically detect and reports on the following major hardware enco
56
56
  | NVEnc | H.264、H.265、AV1 |
57
57
  | QSV (Quick Sync Video) | H.264、H.265、AV1、MJPEG、MPEG-2、VP9 |
58
58
  | AMF (Advanced Media Framework) | H.264、H.265、AV1 |
59
- | Media Foundation | H.264、H.265 |
60
- | D3D12VA (Direct3D 12 Video Acceleration) | H.265 |
59
+ | Media Foundation | H.264、H.265、AV1 |
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.
@@ -1 +0,0 @@
1
- 0.2.1
@@ -1 +0,0 @@
1
- __version__ = "0.2.1"
File without changes
File without changes
File without changes
File without changes