|
20 | 20 |
|
21 | 21 | #include "internals.h" |
22 | 22 |
|
| 23 | +#if ENABLE_VAAPI |
| 24 | +#include "vainfo.h" |
| 25 | +#endif |
23 | 26 |
|
24 | 27 | struct TVHCodecs tvh_codecs; |
25 | 28 |
|
@@ -254,7 +257,11 @@ tvh_codec_find(const char *name) |
254 | 257 |
|
255 | 258 |
|
256 | 259 | void |
| 260 | +#if ENABLE_VAAPI |
| 261 | +tvh_codecs_register(int vainfo_probe_enabled) |
| 262 | +#else |
257 | 263 | tvh_codecs_register() |
| 264 | +#endif |
258 | 265 | { |
259 | 266 | SLIST_INIT(&tvh_codecs); |
260 | 267 | tvh_codec_register(&tvh_codec_mpeg2video); |
@@ -291,10 +298,26 @@ tvh_codecs_register() |
291 | 298 | #endif |
292 | 299 |
|
293 | 300 | #if ENABLE_VAAPI |
294 | | - tvh_codec_register(&tvh_codec_vaapi_h264); |
295 | | - tvh_codec_register(&tvh_codec_vaapi_hevc); |
296 | | - tvh_codec_register(&tvh_codec_vaapi_vp8); |
297 | | - tvh_codec_register(&tvh_codec_vaapi_vp9); |
| 301 | + if (vainfo_probe_enabled && !vainfo_init(VAINFO_SHOW_LOGS)) { |
| 302 | + if (vainfo_encoder_isavailable(VAINFO_H264) || |
| 303 | + vainfo_encoder_isavailable(VAINFO_H264_LOW_POWER)) |
| 304 | + tvh_codec_register(&tvh_codec_vaapi_h264); |
| 305 | + if (vainfo_encoder_isavailable(VAINFO_HEVC) || |
| 306 | + vainfo_encoder_isavailable(VAINFO_HEVC_LOW_POWER)) |
| 307 | + tvh_codec_register(&tvh_codec_vaapi_hevc); |
| 308 | + if (vainfo_encoder_isavailable(VAINFO_VP8) || |
| 309 | + vainfo_encoder_isavailable(VAINFO_VP8_LOW_POWER)) |
| 310 | + tvh_codec_register(&tvh_codec_vaapi_vp8); |
| 311 | + if (vainfo_encoder_isavailable(VAINFO_VP9) || |
| 312 | + vainfo_encoder_isavailable(VAINFO_VP9_LOW_POWER)) |
| 313 | + tvh_codec_register(&tvh_codec_vaapi_vp9); |
| 314 | + } |
| 315 | + else { |
| 316 | + tvh_codec_register(&tvh_codec_vaapi_h264); |
| 317 | + tvh_codec_register(&tvh_codec_vaapi_hevc); |
| 318 | + tvh_codec_register(&tvh_codec_vaapi_vp8); |
| 319 | + tvh_codec_register(&tvh_codec_vaapi_vp9); |
| 320 | + } |
298 | 321 | #endif |
299 | 322 |
|
300 | 323 | #if ENABLE_NVENC |
|
0 commit comments