WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
167588
[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
Details
Formatted Diff
Diff
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
Details
Patch
(51.53 KB, patch)
2017-01-31 11:19 PST
,
Xabier Rodríguez Calvar
no flags
Details
Formatted Diff
Diff
Patch
(52.03 KB, patch)
2017-02-01 08:01 PST
,
Xabier Rodríguez Calvar
no flags
Details
Formatted Diff
Diff
Patch for landing
(52.32 KB, patch)
2017-02-02 08:18 PST
,
Xabier Rodríguez Calvar
no flags
Details
Formatted Diff
Diff
Show Obsolete
(4)
View All
Add attachment
proposed patch, testcase, etc.
Xabier Rodríguez Calvar
Comment 1
2017-01-30 09:07:05 PST
Created
attachment 300114
[details]
Patch
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.
Top of Page
Format For Printing
XML
Clone This Bug