RESOLVED FIXED167588
[EME][GStreamer] Fixed decryptor selection
https://bugs.webkit.org/show_bug.cgi?id=167588
Summary [EME][GStreamer] Fixed decryptor selection
Xabier Rodríguez Calvar
Reported 2017-01-30 08:12:19 PST
[EME][GStreamer] Fixed decryptor selection
Attachments
Patch (51.53 KB, patch)
2017-01-30 09:07 PST, Xabier Rodríguez Calvar
no flags
Archive of layout-test-results from ews122 for ios-simulator-wk2 (2.88 MB, application/zip)
2017-01-30 10:34 PST, Build Bot
no flags
Patch (51.53 KB, patch)
2017-01-31 11:19 PST, Xabier Rodríguez Calvar
no flags
Patch (52.03 KB, patch)
2017-02-01 08:01 PST, Xabier Rodríguez Calvar
no flags
Patch for landing (52.32 KB, patch)
2017-02-02 08:18 PST, Xabier Rodríguez Calvar
no flags
Xabier Rodríguez Calvar
Comment 1 2017-01-30 09:07:05 PST
Build Bot
Comment 2 2017-01-30 10:33:57 PST
Comment on attachment 300114 [details] Patch Attachment 300114 [details] did not pass ios-sim-ews (ios-simulator-wk2): Output: http://webkit-queues.webkit.org/results/2974515 New failing tests: css3/filters/backdrop/dynamic-with-clip-path.html
Build Bot
Comment 3 2017-01-30 10:34:00 PST
Created attachment 300122 [details] Archive of layout-test-results from ews122 for ios-simulator-wk2 The attached test failures were seen while running run-webkit-tests on the ios-sim-ews. Bot: ews122 Port: ios-simulator-wk2 Platform: Mac OS X 10.11.6
Xabier Rodríguez Calvar
Comment 4 2017-01-31 11:19:48 PST
Created attachment 300240 [details] Patch Fixed build for --encrypted-media
Zan Dobersek
Comment 5 2017-02-01 02:03:08 PST
Comment on attachment 300240 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=300240&action=review > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:293 > + const GValue* streamEncryptionEventsList = gst_structure_get_value(structure, "stream-encryption-events"); > + ASSERT(streamEncryptionEventsList && GST_VALUE_HOLDS_LIST(streamEncryptionEventsList)); > + unsigned streamEncryptionEventsListSize = gst_value_list_get_size(streamEncryptionEventsList); > + GST_TRACE("found %u protection events", streamEncryptionEventsListSize); > + const GValue* streamEncryptionAllowedSystemsValue = gst_structure_get_value(structure, "stream-encryption-systems"); > + ASSERT(streamEncryptionAllowedSystemsValue && G_VALUE_HOLDS(streamEncryptionAllowedSystemsValue, G_TYPE_STRV)); > + const char** streamEncryptionAllowedSystems = reinterpret_cast<const char**>(g_value_get_boxed(streamEncryptionAllowedSystemsValue)); > + ASSERT(streamEncryptionAllowedSystems); This, along with the later loop, is really hard to grasp. I'd recommend two static methods that extract sequences of GRefPtr<GstEvent> and allowed system strings from the structure. > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:294 > + Ref<SharedBuffer> concatenatedInitDataChunks = SharedBuffer::create(); This isn't really being shared with anything, so it could simply be a Vector. > Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h:155 > + GRefPtr<GstBuffer> m_pendingKey; Should be guarded with ENABLE(LEGACY_ENCRYPTED_MEDIA). > Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:808 > + for (auto iterator : m_appendPipelinesMap) > + iterator.value->dispatchDecryptionKey(buffer); for (auto it : m_appendPipelinesMap.values())
Xabier Rodríguez Calvar
Comment 6 2017-02-01 08:01:20 PST
Created attachment 300325 [details] Patch Requested style changes
Zan Dobersek
Comment 7 2017-02-01 08:09:35 PST
Comment on attachment 300325 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=300325&action=review I can also r- upon request. > Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:299 > + std::pair<const GValue*, const char**> streamEncryptionInformation = extractEventsAndSystemsFromMessage(message); I was thinking this helper function would directly return a Vector of GRefPtr<GstEvent> objects, and a Vector of String objects. That way you're spared of further code around this loop.
Xabier Rodríguez Calvar
Comment 8 2017-02-02 08:18:25 PST
Created attachment 300410 [details] Patch for landing
WebKit Commit Bot
Comment 9 2017-02-02 08:56:16 PST
Comment on attachment 300410 [details] Patch for landing Clearing flags on attachment: 300410 Committed r211562: <http://trac.webkit.org/changeset/211562>
WebKit Commit Bot
Comment 10 2017-02-02 08:56:20 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.