[GStreamer] AppendPipeline: support dispatch of decryption-specific GstStructure...
authorzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 17 Aug 2017 16:40:56 +0000 (16:40 +0000)
committerzandobersek@gmail.com <zandobersek@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 17 Aug 2017 16:40:56 +0000 (16:40 +0000)
commitd6c5c63babaeb461b835f66db44e8a18572e35d1
tree90d0a4d613b71ccaf4e36514b57e52534449e995
parentec92f511041816c2fa9015ce3e23f24d1be317d7
[GStreamer] AppendPipeline: support dispatch of decryption-specific GstStructure into the pipeline
https://bugs.webkit.org/show_bug.cgi?id=175668

Reviewed by Xabier Rodriguez-Calvar.

Add the AppendPipeline::dispatchDecryptionStructure() method. Callers can
pass in a GstStructure object that contains all the information the
decryption elements in the pipeline will require to properly decrypt the
content. In case the decryptor element isn't available yet, the
GstStructure is stored and dispatched when that element becomes available.

The dispatch itself simply creates a new custom GstEvent that adopts the
given GstStructure object, sends that into the pipeline element, and
shifts the state to 'ongoing'.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread):
(WebCore::AppendPipeline::dispatchPendingDecryptionStructure):
(WebCore::AppendPipeline::dispatchDecryptionStructure):
* platform/graphics/gstreamer/mse/AppendPipeline.h: Remove a redundant private: label.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@220862 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp
Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.h