You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reviewed by Xabier Rodriguez-Calvar.
Wrap the decryptor in a new bin along with parsebin. This should allow seamless switching between
encrypted and clear content processing. As this new parser is auto-plugged by parsebin in
urisourcebin we have to be cautious regarding the infinite auto-plugging outcome by removing our new
parser from the autoplug-factories passed to the inner parsebin element.
Canonical link: https://commits.webkit.org/295500@main
if (supportedKeySystems.contains(GStreamerEMEUtilities::s_WidevineKeySystem) || supportedKeySystems.contains(GStreamerEMEUtilities::s_ClearKeyKeySystem)) {
98
-
for (int i = 0; webmEncryptionMediaTypes[i]; ++i) {
94
+
for (constauto& mediaType : GStreamerEMEUtilities::s_webmEncryptionMediaTypes) {
if (supportedKeySystems.contains(GStreamerEMEUtilities::s_WidevineKeySystem) || supportedKeySystems.contains(GStreamerEMEUtilities::s_ClearKeyKeySystem)) {
95
+
for (constauto& mediaType : GStreamerEMEUtilities::s_webmEncryptionMediaTypes) {
auto self = WEBKIT_MEDIA_THUNDER_PARSER(userData);
133
+
ALLOW_DEPRECATED_DECLARATIONS_BEGIN;
134
+
GValueArray* result;
135
+
136
+
auto factories = gst_element_factory_list_get_elements(GST_ELEMENT_FACTORY_TYPE_DECODABLE, GST_RANK_MARGINAL);
137
+
auto list = gst_element_factory_list_filter(factories, caps, GST_PAD_SINK, gst_caps_is_fixed(caps));
138
+
result = g_value_array_new(g_list_length(list));
139
+
for (GList* tmp = list; tmp; tmp = tmp->next) {
140
+
auto factory = GST_ELEMENT_FACTORY_CAST(tmp->data);
141
+
auto name = StringView::fromLatin1(gst_plugin_feature_get_name(GST_PLUGIN_FEATURE_CAST(factory)));
142
+
if (name == "webkitthunderparser"_s)
143
+
continue;
144
+
145
+
auto decryptorFactoryName = StringView::fromLatin1(gst_plugin_feature_get_name(GST_PLUGIN_FEATURE_CAST(gst_element_get_factory(self->priv->decryptor.get()))));
0 commit comments