Changeset 159335 in webkit
- Timestamp:
- Nov 15, 2013 7:05:48 AM (10 years ago)
- Location:
- trunk
- Files:
-
- 6 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r159331 r159335 1 2013-11-15 Stephane Jadaud <sjadaud@sii.fr> 2 3 [GStreamer] Add support for Media Source API 4 https://bugs.webkit.org/show_bug.cgi?id=99065 5 6 Reviewed by Philippe Normand. 7 8 * platform/gtk/TestExpectations: 9 1 10 2013-11-15 Michał Pakuła vel Rutka <m.pakula@samsung.com> 2 11 -
trunk/LayoutTests/platform/gtk/TestExpectations
r159330 r159335 250 250 webkit.org/b/117039 media/track/video-track.html [ Skip ] 251 251 252 # Tests for MediaSource API. Feature is not yet functional. 253 webkit.org/b/99065 http/tests/media/media-source [ Skip ] 252 # Tests for MediaSource API. Feature is not totally functional. 253 webkit.org/b/99065 http/tests/media/media-source/mediasource-addsourcebuffer.html [ Failure Timeout ] 254 webkit.org/b/99065 http/tests/media/media-source/mediasource-append-buffer.html [ Crash ] 255 webkit.org/b/99065 http/tests/media/media-source/mediasource-buffered.html [ Failure ] 256 webkit.org/b/99065 http/tests/media/media-source/mediasource-closed.html [ Failure ] 257 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-mp4-a-bitrate.html [ Failure ] 258 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-mp4-av-audio-bitrate.html [ Failure ] 259 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-mp4-av-framesize.html [ Failure ] 260 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-mp4-av-video-bitrate.html [ Failure ] 261 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-mp4-v-bitrate.html [ Failure ] 262 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-mp4-v-framerate.html [ Failure ] 263 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-mp4-v-framesize.html [ Failure ] 264 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-webm-a-bitrate.html [ Failure ] 265 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-webm-av-audio-bitrate.html [ Failure ] 266 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-webm-av-framesize.html [ Failure ] 267 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-webm-av-video-bitrate.html [ Failure ] 268 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-webm-v-bitrate.html [ Failure ] 269 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-webm-v-framerate.html [ Failure ] 270 webkit.org/b/99065 http/tests/media/media-source/mediasource-config-change-webm-v-framesize.html [ Failure ] 271 webkit.org/b/99065 http/tests/media/media-source/mediasource-is-type-supported.html [ Failure ] 272 webkit.org/b/99065 http/tests/media/media-source/mediasource-play.html [ Failure ] 273 webkit.org/b/99065 http/tests/media/media-source/mediasource-sourcebufferlist.html [ Crash ] 274 webkit.org/b/99065 http/tests/media/media-source/seek-to-end-after-duration-change.html [ Timeout ] 275 webkit.org/b/99065 http/tests/media/media-source/video-media-source-abort.html [ Timeout ] 276 webkit.org/b/99065 http/tests/media/media-source/video-media-source-add-and-remove-buffers.html [ Timeout ] 277 webkit.org/b/99065 http/tests/media/media-source/video-media-source-append-in-ended-state.html [ Timeout ] 278 webkit.org/b/99065 http/tests/media/media-source/video-media-source-append-with-offset-in-ended-state.html [ Timeout ] 279 webkit.org/b/99065 http/tests/media/media-source/video-media-source-async-events.html [ Timeout ] 280 webkit.org/b/99065 http/tests/media/media-source/video-media-source-closed-on-htmlmediaelement-destruction.html [ Timeout ] 281 webkit.org/b/99065 http/tests/media/media-source/video-media-source-duration-boundaryconditions.html [ Timeout ] 282 webkit.org/b/99065 http/tests/media/media-source/video-media-source-duration-changed.html [ Timeout ] 283 webkit.org/b/99065 http/tests/media/media-source/video-media-source-duration.html [ Timeout ] 284 webkit.org/b/99065 http/tests/media/media-source/video-media-source-errors.html [ Timeout ] 285 webkit.org/b/99065 http/tests/media/media-source/video-media-source-event-attributes.html [ Timeout ] 286 webkit.org/b/99065 http/tests/media/media-source/video-media-source-garbage-collection-before-sourceopen.html [ Timeout ] 287 webkit.org/b/99065 http/tests/media/media-source/video-media-source-is-type-supported.html [ Timeout ] 288 webkit.org/b/99065 http/tests/media/media-source/video-media-source-objects.html [ Timeout ] 289 webkit.org/b/99065 http/tests/media/media-source/video-media-source-play.html [ Timeout ] 290 webkit.org/b/99065 http/tests/media/media-source/video-media-source-reject-append-after-reopening.html [ Timeout ] 291 webkit.org/b/99065 http/tests/media/media-source/video-media-source-seek.html [ Timeout ] 292 webkit.org/b/99065 http/tests/media/media-source/video-media-source-sourcebufferlist-crash.html [ Timeout ] 293 webkit.org/b/99065 http/tests/media/media-source/video-media-source-state-changes.html [ Timeout ] 294 webkit.org/b/99065 http/tests/media/media-source/video-media-source-zero-byte-append-in-ended-state.html [ Timeout ] 295 296 webkit.org/b/99065 media/media-source/media-source-track-enabled.html [ Failure ] 297 webkit.org/b/99065 media/media-source/media-source-tracks.html [ Failure ] 298 webkit.org/b/99065 media/media-source/media-source-append-failed.html [ Timeout ] 299 webkit.org/b/99065 media/media-source/media-source-canplaythrough.html [ Timeout ] 300 webkit.org/b/99065 media/media-source/media-source-play.html [ Timeout ] 254 301 255 302 # Encrypted Media Extensions are not enabled. -
trunk/Source/WebCore/ChangeLog
r159326 r159335 1 2013-11-15 Stephane Jadaud <sjadaud@sii.fr> 2 3 [GStreamer] Add support for Media Source API 4 https://bugs.webkit.org/show_bug.cgi?id=99065 5 6 The patch integrate a Media Source player for the GStreamer backend. The implementented architecture is: 7 - MediaPlayerPrivateGStreamer engine is modified to support Media Source URIs (change blob:// to mediasourceblob://), in addition to the existing support for web (http/https/blob) URIs 8 - Similar to the existing WebKitWebSrc gstreamer element that handles web URIs, a new gstreamer element named WebKitMediaSrc is implemented to handle Media Source URIs 9 - WebKitMediaSrc registers its URI protocol handler, allowing uridecodebin to dynamically create the appropriate source element. 10 - The WebKitMediaSrc element creates a bin with 2 appsrc: One for Audio and One for Video. Pads are dynamically linked at the reception of first video and audio buffers. 11 12 Reviewed by Philippe Normand. 13 14 Tests: Activate http/tests/media/media-source and media/media-source tests 15 16 * GNUmakefile.am: 17 * GNUmakefile.list.am: 18 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: 19 (WebCore::initializeGStreamerAndRegisterWebKitElements): 20 (WebCore::MediaPlayerPrivateGStreamer::load): 21 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: 22 * platform/graphics/gstreamer/MediaSourceGStreamer.cpp: Added. 23 (WebCore::MediaSourceGStreamer::open): 24 (WebCore::MediaSourceGStreamer::MediaSourceGStreamer): 25 (WebCore::MediaSourceGStreamer::~MediaSourceGStreamer): 26 (WebCore::MediaSourceGStreamer::addSourceBuffer): 27 (WebCore::MediaSourceGStreamer::setDuration): 28 (WebCore::MediaSourceGStreamer::markEndOfStream): 29 (WebCore::MediaSourceGStreamer::unmarkEndOfStream): 30 * platform/graphics/gstreamer/MediaSourceGStreamer.h: Added. 31 * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp: Added. 32 (WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer): 33 (WebCore::SourceBufferPrivateGStreamer::append): 34 (WebCore::SourceBufferPrivateGStreamer::abort): 35 (WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource): 36 * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h: Added. 37 * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Added. 38 (webKitMediaSrcAddSrc): 39 (webkit_media_src_init): 40 (webKitMediaSrcFinalize): 41 (webKitMediaSrcSetProperty): 42 (webKitMediaSrcGetProperty): 43 (webKitMediaVideoSrcStop): 44 (webKitMediaAudioSrcStop): 45 (webKitMediaVideoSrcStart): 46 (webKitMediaAudioSrcStart): 47 (webKitMediaSrcChangeState): 48 (webKitMediaSrcQueryWithParent): 49 (webKitMediaSrcUriGetType): 50 (webKitMediaSrcGetProtocols): 51 (webKitMediaSrcGetUri): 52 (webKitMediaSrcSetUri): 53 (webKitMediaSrcUriHandlerInit): 54 (webKitMediaVideoSrcNeedDataMainCb): 55 (webKitMediaAudioSrcNeedDataMainCb): 56 (webKitMediaVideoSrcNeedDataCb): 57 (webKitMediaAudioSrcNeedDataCb): 58 (webKitMediaVideoSrcEnoughDataMainCb): 59 (webKitMediaAudioSrcEnoughDataMainCb): 60 (webKitMediaVideoSrcEnoughDataCb): 61 (webKitMediaAudioSrcEnoughDataCb): 62 (webKitMediaVideoSrcSeekMainCb): 63 (webKitMediaAudioSrcSeekMainCb): 64 (webKitMediaVideoSrcSeekDataCb): 65 (webKitMediaAudioSrcSeekDataCb): 66 (webKitMediaSrcSetMediaPlayer): 67 (webKitMediaSrcSetPlayBin): 68 (MediaSourceClientGstreamer::MediaSourceClientGstreamer): 69 (MediaSourceClientGstreamer::~MediaSourceClientGstreamer): 70 (MediaSourceClientGstreamer::didReceiveDuration): 71 (MediaSourceClientGstreamer::didReceiveData): 72 (MediaSourceClientGstreamer::didFinishLoading): 73 (MediaSourceClientGstreamer::didFail): 74 * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.h: Added. 75 1 76 2013-11-14 Victor Costan <costan@gmail.com> 2 77 -
trunk/Source/WebCore/GNUmakefile.am
r159264 r159335 83 83 -I$(srcdir)/Source/WebCore/platform/mediastream/gstreamer \ 84 84 -I$(srcdir)/Source/WebCore/platform/mock \ 85 -I$(srcdir)/Source/WebCore/platform/mock/mediasource \ 85 86 -I$(srcdir)/Source/WebCore/platform/network \ 86 87 -I$(srcdir)/Source/WebCore/platform/network/gtk \ -
trunk/Source/WebCore/GNUmakefile.list.am
r159268 r159335 3421 3421 Source/WebCore/html/HTMLMarqueeElement.cpp \ 3422 3422 Source/WebCore/html/HTMLMarqueeElement.h \ 3423 Source/WebCore/html/HTMLMediaSource.cpp \ 3424 Source/WebCore/html/HTMLMediaSource.h \ 3423 3425 Source/WebCore/html/HTMLMediaElement.cpp \ 3424 3426 Source/WebCore/html/HTMLMediaElement.h \ … … 5440 5442 Source/WebCore/platform/mock/ScrollbarThemeMock.cpp \ 5441 5443 Source/WebCore/platform/mock/ScrollbarThemeMock.h \ 5444 Source/WebCore/platform/mock/mediasource/MockBox.cpp \ 5445 Source/WebCore/platform/mock/mediasource/MockBox.h \ 5446 Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp \ 5447 Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h \ 5448 Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.cpp \ 5449 Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.h \ 5450 Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.cpp \ 5451 Source/WebCore/platform/mock/mediasource/MockSourceBufferPrivate.h \ 5452 Source/WebCore/platform/mock/mediasource/MockTracks.cpp \ 5453 Source/WebCore/platform/mock/mediasource/MockTracks.h \ 5442 5454 Source/WebCore/platform/network/BlobData.cpp \ 5443 5455 Source/WebCore/platform/network/BlobData.h \ … … 6309 6321 Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp \ 6310 6322 Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h 6323 webcore_platform_sources += \ 6324 Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp \ 6325 Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h \ 6326 Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.cpp \ 6327 Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.h \ 6328 Source/WebCore/platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp \ 6329 Source/WebCore/platform/graphics/gstreamer/WebKitMediaSourceGStreamer.h 6311 6330 endif 6312 6331 -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
r158734 r159335 57 57 #endif 58 58 59 #if ENABLE(MEDIA_SOURCE) 60 #include "MediaSource.h" 61 #include "WebKitMediaSourceGStreamer.h" 62 #endif 63 59 64 // GstPlayFlags flags from playbin2. It is the policy of GStreamer to 60 65 // not publicly expose element-specific enums. That's why this … … 230 235 if (!srcFactory) { 231 236 GST_DEBUG_CATEGORY_INIT(webkit_media_player_debug, "webkitmediaplayer", 0, "WebKit media player"); 232 return gst_element_register(0, "webkitwebsrc", GST_RANK_PRIMARY + 100, WEBKIT_TYPE_WEB_SRC); 233 } 234 237 gst_element_register(0, "webkitwebsrc", GST_RANK_PRIMARY + 100, WEBKIT_TYPE_WEB_SRC); 238 } 239 240 #if ENABLE(MEDIA_SOURCE) 241 GRefPtr<GstElementFactory> WebKitMediaSrcFactory = gst_element_factory_find("webkitmediasrc"); 242 if (!WebKitMediaSrcFactory) 243 gst_element_register(0, "webkitmediasrc", GST_RANK_PRIMARY + 100, WEBKIT_TYPE_MEDIA_SRC); 244 #endif 235 245 return true; 236 246 } … … 389 399 390 400 #if ENABLE(MEDIA_SOURCE) 391 void MediaPlayerPrivateGStreamer::load(const String& url, PassRefPtr<MediaSource>) 392 { 393 notImplemented(); 401 void MediaPlayerPrivateGStreamer::load(const String& url, PassRefPtr<HTMLMediaSource> mediaSource) 402 { 403 String mediasourceUri = String::format("mediasource%s", url.utf8().data()); 404 m_mediaSource = mediaSource; 405 load(mediasourceUri); 394 406 } 395 407 #endif … … 1310 1322 if (WEBKIT_IS_WEB_SRC(m_source.get())) 1311 1323 webKitWebSrcSetMediaPlayer(WEBKIT_WEB_SRC(m_source.get()), m_player); 1324 #if ENABLE(MEDIA_SOURCE) 1325 if (m_mediaSource && WEBKIT_IS_MEDIA_SRC(m_source.get())) { 1326 MediaSourceGStreamer::open(m_mediaSource.get(), WEBKIT_MEDIA_SRC(m_source.get())); 1327 webKitMediaSrcSetPlayBin(WEBKIT_MEDIA_SRC(m_source.get()), m_playBin.get()); 1328 } 1329 #endif 1312 1330 } 1313 1331 -
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
r158436 r159335 34 34 #include <wtf/Forward.h> 35 35 36 #if ENABLE(MEDIA_SOURCE) 37 #include "MediaSourceGStreamer.h" 38 #endif 39 36 40 typedef struct _GstBuffer GstBuffer; 37 41 typedef struct _GstMessage GstMessage; … … 56 60 void load(const String &url); 57 61 #if ENABLE(MEDIA_SOURCE) 58 void load(const String& url, PassRefPtr< MediaSource>);62 void load(const String& url, PassRefPtr<HTMLMediaSource>); 59 63 #endif 60 64 void commitLoad(); … … 201 205 RefPtr<InbandTextTrackPrivate> m_chaptersTrack; 202 206 #endif 207 #if ENABLE(MEDIA_SOURCE) 208 RefPtr<HTMLMediaSource> m_mediaSource; 209 #endif 203 210 }; 204 211 } -
trunk/Tools/ChangeLog
r159330 r159335 1 2013-11-15 Stephane Jadaud <sjadaud@sii.fr> 2 3 [GStreamer] Add support for Media Source API 4 https://bugs.webkit.org/show_bug.cgi?id=99065 5 6 Reviewed by Philippe Normand. 7 8 * Scripts/webkitperl/FeatureList.pm: 9 1 10 2013-11-15 Xabier Rodriguez Calvar <calvaris@igalia.com> 2 11 -
trunk/Tools/Scripts/webkitperl/FeatureList.pm
r159321 r159335 342 342 343 343 { option => "media-source", desc => "Toggle Media Source support", 344 define => "ENABLE_MEDIA_SOURCE", default => 0, value => \$mediaSourceSupport },344 define => "ENABLE_MEDIA_SOURCE", default => isGtk(), value => \$mediaSourceSupport }, 345 345 346 346 { option => "media-statistics", desc => "Toggle Media Statistics support",
Note: See TracChangeset
for help on using the changeset viewer.