35 const gchar *factoryName = gst_plugin_feature_get_name(GST_PLUGIN_FEATURE(factory));
41 QString name = QString::fromUtf8(factoryName).toLower();
42 if (name.startsWith(
"amcviddec-omxgoogle") || name.startsWith(
"amcviddec-c2android")) {
46 const auto containsHardware = [](
const gchar *value) {
47 return value && (g_strrstr(value,
"Hardware") !=
nullptr || g_strrstr(value,
"hardware") !=
nullptr);
50 if (containsHardware(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS))) {
54 if (containsHardware(gst_element_factory_get_klass(factory))) {
58 const QString nameLower = QString::fromUtf8(factoryName).toLower();
59 static const QStringList kHardwareTags = {
62 QStringLiteral(
"qsv"),
63 QStringLiteral(
"msdk"),
64 QStringLiteral(
"vulkan"),
65 QStringLiteral(
"d3d"),
66 QStringLiteral(
"dxva"),
67 QStringLiteral(
"vtdec"),
68 QStringLiteral(
"metal")
71 for (
const QString &tag : kHardwareTags) {
72 if (nameLower.contains(tag)) {