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.
Files changed (23) hide show
  1. {hwcodecdetect-0.2.2/src/HwCodecDetect.egg-info → hwcodecdetect-0.2.3}/PKG-INFO +4 -4
  2. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/README.md +3 -3
  3. hwcodecdetect-0.2.3/VERSION +1 -0
  4. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect/bitdepth_chroma_detect.py +14 -5
  5. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect/run_tests.py +14 -3
  6. hwcodecdetect-0.2.3/src/HwCodecDetect/version.py +1 -0
  7. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3/src/HwCodecDetect.egg-info}/PKG-INFO +4 -4
  8. hwcodecdetect-0.2.2/VERSION +0 -1
  9. hwcodecdetect-0.2.2/src/HwCodecDetect/version.py +0 -1
  10. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/LICENSE +0 -0
  11. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/MANIFEST.in +0 -0
  12. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/pyproject.toml +0 -0
  13. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/requirements.txt +0 -0
  14. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/setup.cfg +0 -0
  15. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/setup.py +0 -0
  16. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect/__init__.py +0 -0
  17. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect/install_ffmpeg_if_needed.py +0 -0
  18. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/SOURCES.txt +0 -0
  19. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/dependency_links.txt +0 -0
  20. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/entry_points.txt +0 -0
  21. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/requires.txt +0 -0
  22. {hwcodecdetect-0.2.2 → hwcodecdetect-0.2.3}/src/HwCodecDetect.egg-info/top_level.txt +0 -0
  23. {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.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
- 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"
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
- 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"
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
- 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"
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
- 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"
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.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.
@@ -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