Commit 93d9ab4
[GStreamer][WPE] Replace platform ifdefs with runtime quirks
https://bugs.webkit.org/show_bug.cgi?id=269287
Reviewed by Xabier Rodriguez-Calvar.
Compile-time quirks prevent re-usability of the same binaries across different platforms (using
containers). The proposed solution is to always compile those, they don't depend on any specific
APIs so that shouldn't be an issue. Then at runtime quirks can be tweaked using the
WEBKIT_GST_QUIRKS and WEBKIT_GST_HOLE_PUNCH environment variables.
* Source/WebCore/platform/SourcesGStreamer.txt:
* Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
* Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::decodebinAutoplugSelectCallback):
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::decodeAudioForBusCreation):
* Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::ensureGStreamerInitialized):
(WebCore::registerWebKitGStreamerElements):
* Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
(WebCore::GStreamerRegistryScanner::ElementFactories::ElementFactories):
(WebCore::GStreamerRegistryScanner::ElementFactories::hasElementForCaps const):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::setSyncOnClock):
(WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
(WebCore::MediaPlayerPrivateGStreamer::gstreamerPositionFromSinks const):
(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::configureElement):
(WebCore::MediaPlayerPrivateGStreamer::configureElementPlatformQuirks):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::swapBuffersIfNeeded):
(WebCore::setRectangleToVideoSink):
(WebCore::MediaPlayerPrivateGStreamer::isHolePunchRenderingEnabled const):
(WebCore::MediaPlayerPrivateGStreamer::createHolePunchVideoSink):
(WebCore::MediaPlayerPrivateGStreamer::shouldIgnoreIntrinsicSize):
(WebCore::MediaPlayerPrivateGStreamer::createVideoSink):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkBcmNexus.cpp: Added.
(WebCore::GStreamerHolePunchQuirkBcmNexus::setHolePunchVideoRectangle):
* Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkBcmNexus.h: Added.
* Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkWesteros.cpp: Added.
(WebCore::GStreamerHolePunchQuirkWesteros::createHolePunchVideoSink):
(WebCore::GStreamerHolePunchQuirkWesteros::setHolePunchVideoRectangle):
* Source/WebCore/platform/gstreamer/GStreamerHolePunchQuirkWesteros.h: Added.
* Source/WebCore/platform/gstreamer/GStreamerQuirkAmLogic.cpp: Added.
(WebCore::GStreamerQuirkAmLogic::GStreamerQuirkAmLogic):
(WebCore::GStreamerQuirkAmLogic::createWebAudioSink):
(WebCore::GStreamerQuirkAmLogic::configureElement):
* Source/WebCore/platform/gstreamer/GStreamerQuirkAmLogic.h: Added.
* Source/WebCore/platform/gstreamer/GStreamerQuirkBcmNexus.cpp: Added.
(WebCore::GStreamerQuirkBcmNexus::GStreamerQuirkBcmNexus):
(WebCore::GStreamerQuirkBcmNexus::isHardwareAccelerated):
* Source/WebCore/platform/gstreamer/GStreamerQuirkBcmNexus.h: Added.
* Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcom.cpp: Added.
(WebCore::GStreamerQuirkBroadcom::GStreamerQuirkBroadcom):
(WebCore::GStreamerQuirkBroadcom::configureElement):
(WebCore::GStreamerQuirkBroadcom::isHardwareAccelerated):
* Source/WebCore/platform/gstreamer/GStreamerQuirkBroadcom.h: Added.
* Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.cpp: Added.
(WebCore::GStreamerQuirkRealtek::GStreamerQuirkRealtek):
(WebCore::GStreamerQuirkRealtek::createWebAudioSink):
(WebCore::GStreamerQuirkRealtek::configureElement):
(WebCore::GStreamerQuirkRealtek::isHardwareAccelerated):
* Source/WebCore/platform/gstreamer/GStreamerQuirkRealtek.h: Added.
* Source/WebCore/platform/gstreamer/GStreamerQuirkWesteros.cpp: Added.
(WebCore::GStreamerQuirkWesteros::GStreamerQuirkWesteros):
(WebCore::GStreamerQuirkWesteros::configureElement):
(WebCore::GStreamerQuirkWesteros::isHardwareAccelerated):
* Source/WebCore/platform/gstreamer/GStreamerQuirkWesteros.h: Added.
* Source/WebCore/platform/gstreamer/GStreamerQuirks.cpp: Added.
(WebCore::GStreamerQuirksManager::singleton):
(WebCore::GStreamerQuirksManager::GStreamerQuirksManager):
(WebCore::GStreamerQuirksManager::isEnabled const):
(WebCore::GStreamerQuirksManager::createWebAudioSink):
(WebCore::GStreamerQuirksManager::createHolePunchVideoSink):
(WebCore::GStreamerQuirksManager::setHolePunchVideoRectangle):
(WebCore::GStreamerQuirksManager::configureElement):
(WebCore::GStreamerQuirksManager::isHardwareAccelerated const):
(WebCore::GStreamerQuirksManager::supportsVideoHolePunchRendering const):
(WebCore::GStreamerQuirksManager::audioVideoDecoderFactoryListType const):
(WebCore::GStreamerQuirksManager::disallowedWebAudioDecoders const):
* Source/WebCore/platform/gstreamer/GStreamerQuirks.h: Added.
(WebCore::GStreamerQuirk::isPlatformSupported const):
(WebCore::GStreamerQuirk::createWebAudioSink):
(WebCore::GStreamerQuirk::configureElement):
(WebCore::GStreamerQuirk::isHardwareAccelerated):
(WebCore::GStreamerQuirk::audioVideoDecoderFactoryListType const):
(WebCore::GStreamerQuirk::disallowedWebAudioDecoders const):
(WebCore::GStreamerHolePunchQuirk::createHolePunchVideoSink):
(WebCore::GStreamerHolePunchQuirk::setHolePunchVideoRectangle):
* Source/cmake/OptionsWPE.cmake:
Canonical link: https://commits.webkit.org/276080@main1 parent 80dcbbc commit 93d9ab4
34 files changed
Lines changed: 1398 additions & 298 deletions
File tree
- LayoutTests/platform/wpe/media
- Source
- WebCore
- html
- platform
- audio/gstreamer
- graphics
- gstreamer
- gstreamer
- testing
- cmake
- Tools/Scripts/webkitpy/port
Lines changed: 21 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
122 | 127 | | |
123 | 128 | | |
124 | 129 | | |
| |||
174 | 179 | | |
175 | 180 | | |
176 | 181 | | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
177 | 186 | | |
178 | 187 | | |
179 | 188 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
97 | 105 | | |
98 | 106 | | |
99 | 107 | | |
| |||
Lines changed: 5 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| |||
126 | 127 | | |
127 | 128 | | |
128 | 129 | | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
| 130 | + | |
| 131 | + | |
140 | 132 | | |
141 | 133 | | |
142 | 134 | | |
143 | 135 | | |
144 | 136 | | |
145 | 137 | | |
146 | | - | |
147 | | - | |
148 | | - | |
| 138 | + | |
| 139 | + | |
149 | 140 | | |
150 | 141 | | |
151 | 142 | | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | 143 | | |
158 | 144 | | |
159 | 145 | | |
| |||
Lines changed: 4 additions & 22 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
79 | | - | |
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
| 84 | + | |
84 | 85 | | |
85 | 86 | | |
86 | 87 | | |
| |||
89 | 90 | | |
90 | 91 | | |
91 | 92 | | |
| 93 | + | |
| 94 | + | |
92 | 95 | | |
93 | 96 | | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | 97 | | |
111 | 98 | | |
112 | 99 | | |
113 | 100 | | |
114 | 101 | | |
115 | 102 | | |
116 | 103 | | |
117 | | - | |
118 | 104 | | |
119 | 105 | | |
120 | 106 | | |
| |||
166 | 152 | | |
167 | 153 | | |
168 | 154 | | |
169 | | - | |
170 | 155 | | |
171 | | - | |
172 | 156 | | |
173 | 157 | | |
174 | 158 | | |
| |||
424 | 408 | | |
425 | 409 | | |
426 | 410 | | |
427 | | - | |
428 | 411 | | |
429 | | - | |
430 | 412 | | |
431 | 413 | | |
432 | 414 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1662 | 1662 | | |
1663 | 1663 | | |
1664 | 1664 | | |
| 1665 | + | |
| 1666 | + | |
| 1667 | + | |
| 1668 | + | |
| 1669 | + | |
1665 | 1670 | | |
1666 | 1671 | | |
1667 | 1672 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
332 | 332 | | |
333 | 333 | | |
334 | 334 | | |
| 335 | + | |
| 336 | + | |
335 | 337 | | |
336 | 338 | | |
337 | 339 | | |
| |||
661 | 663 | | |
662 | 664 | | |
663 | 665 | | |
| 666 | + | |
664 | 667 | | |
665 | 668 | | |
666 | 669 | | |
| |||
Lines changed: 5 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| |||
311 | 312 | | |
312 | 313 | | |
313 | 314 | | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
325 | | - | |
326 | | - | |
327 | 315 | | |
328 | 316 | | |
329 | 317 | | |
| |||
436 | 424 | | |
437 | 425 | | |
438 | 426 | | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
439 | 431 | | |
440 | 432 | | |
441 | 433 | | |
| |||
Lines changed: 15 additions & 18 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
139 | 140 | | |
140 | 141 | | |
141 | 142 | | |
142 | | - | |
| 143 | + | |
| 144 | + | |
143 | 145 | | |
144 | | - | |
| 146 | + | |
145 | 147 | | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
| 148 | + | |
153 | 149 | | |
154 | 150 | | |
155 | 151 | | |
| |||
298 | 294 | | |
299 | 295 | | |
300 | 296 | | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
310 | 307 | | |
311 | 308 | | |
312 | 309 | | |
| |||
0 commit comments