Changeset 207883 in webkit


Ignore:
Timestamp:
Oct 26, 2016 1:43:24 AM (7 years ago)
Author:
eocanha@igalia.com
Message:

[GStreamer][MSE] WebKitMediaSourceGStreamer refactoring
https://bugs.webkit.org/show_bug.cgi?id=162902

Reviewed by Xabier Rodriguez-Calvar.

Move WebKitMediaSourceGStreamer to the mse directory, split public and private header
sections, manage stream data throttling and seek synchronization, audio/video/text stream
counting, improve GStreamer duration query, stream initialization, remove
MediaSourceClientGStreamer logic (factored out to its own class in another patch) and
interaction with MediaPlayerPrivateGStreamerMSE, PlaybackPipeline and
SourceBufferPrivateGStreamer.

  • platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Removed.
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp: Added.

(disabledAppsrcNeedData):
(disabledAppsrcEnoughData):
(disabledAppsrcSeekData):
(enabledAppsrcEnoughData):
(enabledAppsrcSeekData):
(getStreamByAppsrc):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(webKitMediaSrcSetProperty):
(webKitMediaSrcGetProperty):
(webKitMediaSrcDoAsyncStart):
(webKitMediaSrcDoAsyncDone):
(webKitMediaSrcChangeState):
(webKitMediaSrcGetSize):
(webKitMediaSrcQueryWithParent):
(webKitMediaSrcUpdatePresentationSize):
(webKitMediaSrcLinkStreamToSrcPad):
(webKitMediaSrcLinkParser):
(webKitMediaSrcFreeStream):
(webKitMediaSrcCheckAllTracksConfigured):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):
(seekNeedsDataMainThread):
(notifyReadyForMoreSamplesMainThread):
(applicationMessageCallback):
(webKitMediaSrcSetMediaPlayerPrivate):
(webKitMediaSrcSetReadyForSamples):
(webKitMediaSrcPrepareSeek):
(WTF::adoptGRef):
(WTF::refGPtr<WebKitMediaSrc>):
(WTF::derefGPtr<WebKitMediaSrc>):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h: Renamed from Source/WebCore/platform/graphics/gstreamer/WebKitMediaSourceGStreamer.h.
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h: Added.
Location:
trunk/Source/WebCore
Files:
2 added
1 deleted
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r207882 r207883  
     12016-10-26  Enrique Ocaña González  <eocanha@igalia.com>
     2
     3        [GStreamer][MSE] WebKitMediaSourceGStreamer refactoring
     4        https://bugs.webkit.org/show_bug.cgi?id=162902
     5
     6        Reviewed by Xabier Rodriguez-Calvar.
     7
     8        Move WebKitMediaSourceGStreamer to the mse directory, split public and private header
     9        sections, manage stream data throttling and seek synchronization, audio/video/text stream
     10        counting, improve GStreamer duration query, stream initialization, remove
     11        MediaSourceClientGStreamer logic (factored out to its own class in another patch) and
     12        interaction with MediaPlayerPrivateGStreamerMSE, PlaybackPipeline and
     13        SourceBufferPrivateGStreamer.
     14
     15        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Removed.
     16        * platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp: Added.
     17        (disabledAppsrcNeedData):
     18        (disabledAppsrcEnoughData):
     19        (disabledAppsrcSeekData):
     20        (enabledAppsrcEnoughData):
     21        (enabledAppsrcSeekData):
     22        (getStreamByAppsrc):
     23        (webkit_media_src_init):
     24        (webKitMediaSrcFinalize):
     25        (webKitMediaSrcSetProperty):
     26        (webKitMediaSrcGetProperty):
     27        (webKitMediaSrcDoAsyncStart):
     28        (webKitMediaSrcDoAsyncDone):
     29        (webKitMediaSrcChangeState):
     30        (webKitMediaSrcGetSize):
     31        (webKitMediaSrcQueryWithParent):
     32        (webKitMediaSrcUpdatePresentationSize):
     33        (webKitMediaSrcLinkStreamToSrcPad):
     34        (webKitMediaSrcLinkParser):
     35        (webKitMediaSrcFreeStream):
     36        (webKitMediaSrcCheckAllTracksConfigured):
     37        (webKitMediaSrcUriGetType):
     38        (webKitMediaSrcGetProtocols):
     39        (webKitMediaSrcGetUri):
     40        (webKitMediaSrcSetUri):
     41        (webKitMediaSrcUriHandlerInit):
     42        (seekNeedsDataMainThread):
     43        (notifyReadyForMoreSamplesMainThread):
     44        (applicationMessageCallback):
     45        (webKitMediaSrcSetMediaPlayerPrivate):
     46        (webKitMediaSrcSetReadyForSamples):
     47        (webKitMediaSrcPrepareSeek):
     48        (WTF::adoptGRef):
     49        (WTF::refGPtr<WebKitMediaSrc>):
     50        (WTF::derefGPtr<WebKitMediaSrc>):
     51        * platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h: Renamed from Source/WebCore/platform/graphics/gstreamer/WebKitMediaSourceGStreamer.h.
     52        * platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h: Added.
     53
    1542016-10-26  Enrique Ocaña González  <eocanha@igalia.com>
    255
  • trunk/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h

    r207882 r207883  
    33 *  Copyright (C) 2013 Collabora Ltd.
    44 *  Copyright (C) 2013 Orange
    5  *  Copyright (C) 2014 Sebastian Dröge <sebastian@centricular.com>
     5 *  Copyright (C) 2014, 2015 Sebastian Dröge <sebastian@centricular.com>
     6 *  Copyright (C) 2015, 2016 Metrological Group B.V.
     7 *  Copyright (C) 2015, 2016 Igalia, S.L
    68 *
    79 *  This library is free software; you can redistribute it and/or
     
    3032#include "SourceBufferPrivate.h"
    3133#include "SourceBufferPrivateClient.h"
     34#include <gst/gst.h>
    3235
    33 #include <gst/gst.h>
     36namespace WebCore {
     37
     38class MediaPlayerPrivateGStreamerMSE;
     39
     40enum MediaSourceStreamTypeGStreamer { Invalid, Unknown, Audio, Video, Text };
     41
     42}
    3443
    3544G_BEGIN_DECLS
     
    5362struct _WebKitMediaSrcClass {
    5463    GstBinClass parentClass;
     64
     65    // Notify app that number of audio/video/text streams changed.
     66    void (*videoChanged)(WebKitMediaSrc*);
     67    void (*audioChanged)(WebKitMediaSrc*);
     68    void (*textChanged)(WebKitMediaSrc*);
    5569};
    5670
    5771GType webkit_media_src_get_type(void);
    5872
     73void webKitMediaSrcSetMediaPlayerPrivate(WebKitMediaSrc*, WebCore::MediaPlayerPrivateGStreamerMSE*);
     74
     75void webKitMediaSrcPrepareSeek(WebKitMediaSrc*, const MediaTime&);
     76void webKitMediaSrcSetReadyForSamples(WebKitMediaSrc*, bool);
     77
    5978G_END_DECLS
    6079
    61 namespace WTF {
    62 template<> GRefPtr<WebKitMediaSrc> adoptGRef(WebKitMediaSrc* ptr);
    63 template<> WebKitMediaSrc* refGPtr<WebKitMediaSrc>(WebKitMediaSrc* ptr);
    64 template<> void derefGPtr<WebKitMediaSrc>(WebKitMediaSrc* ptr);
    65 };
    66 
    67 namespace WebCore {
    68 
    69 class ContentType;
    70 
    71 class MediaSourceClientGStreamer: public RefCounted<MediaSourceClientGStreamer> {
    72     public:
    73         MediaSourceClientGStreamer(WebKitMediaSrc*);
    74         virtual ~MediaSourceClientGStreamer();
    75 
    76         // From MediaSourceGStreamer
    77         MediaSourcePrivate::AddStatus addSourceBuffer(PassRefPtr<SourceBufferPrivate>, const ContentType&);
    78         void durationChanged(const MediaTime&);
    79         void markEndOfStream(MediaSourcePrivate::EndOfStreamStatus);
    80 
    81         // From SourceBufferPrivateGStreamer
    82         SourceBufferPrivateClient::AppendResult append(PassRefPtr<SourceBufferPrivate>, const unsigned char*, unsigned);
    83         void removedFromMediaSource(PassRefPtr<SourceBufferPrivate>);
    84 
    85     private:
    86         GRefPtr<WebKitMediaSrc> m_src;
    87 };
    88 
    89 };
    90 
    9180#endif // USE(GSTREAMER)
Note: See TracChangeset for help on using the changeset viewer.