diff options
author | Seungha Yang <seungha.yang@navercorp.com> | 2019-10-25 01:09:08 +0900 |
---|---|---|
committer | Seungha Yang <seungha.yang@navercorp.com> | 2019-10-25 19:48:15 +0900 |
commit | 30d0674e7dea5e5af0a39193b960ce0aa59b3f37 (patch) | |
tree | 2df96bab7aa5a295c7ef861765617f3efbfda3c5 /ext/libav/gstavvidenc.c | |
parent | 80c8c05457d1a7ba37a15b7150e6797dd4dac8e1 (diff) | |
download | gst-libav-30d0674e7dea5e5af0a39193b960ce0aa59b3f37.tar.gz |
avvideenc,avvidedec: Filtering hardware en/decoder by flag
... instead of filtering them by hardcoded string compare.
Diffstat (limited to 'ext/libav/gstavvidenc.c')
-rw-r--r-- | ext/libav/gstavvidenc.c | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/ext/libav/gstavvidenc.c b/ext/libav/gstavvidenc.c index 8211de2..ca38d27 100644 --- a/ext/libav/gstavvidenc.c +++ b/ext/libav/gstavvidenc.c @@ -932,30 +932,18 @@ gst_ffmpegvidenc_register (GstPlugin * plugin) continue; } - if (strstr (in_plugin->name, "vaapi")) { + /* Skip hardware or hybrid (hardware with software fallback) */ + if ((in_plugin->capabilities & AV_CODEC_CAP_HARDWARE) == + AV_CODEC_CAP_HARDWARE) { GST_DEBUG - ("Ignoring VAAPI encoder %s. We can't handle this outside of ffmpeg", + ("Ignoring hardware encoder %s. We can't handle this outside of ffmpeg", in_plugin->name); continue; } - if (strstr (in_plugin->name, "nvenc")) { + if ((in_plugin->capabilities & AV_CODEC_CAP_HYBRID) == AV_CODEC_CAP_HYBRID) { GST_DEBUG - ("Ignoring nvenc encoder %s. We can't handle this outside of ffmpeg", - in_plugin->name); - continue; - } - - if (g_str_has_suffix (in_plugin->name, "_qsv")) { - GST_DEBUG - ("Ignoring qsv encoder %s. We can't handle this outside of ffmpeg", - in_plugin->name); - continue; - } - - if (g_str_has_suffix (in_plugin->name, "_v4l2m2m")) { - GST_DEBUG - ("Ignoring V4L2 mem-to-mem encoder %s. We can't handle this outside of ffmpeg", + ("Ignoring hybrid encoder %s. We can't handle this outside of ffmpeg", in_plugin->name); continue; } |