Changeset 207873 in webkit


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

[GStreamer] Track enhancements for MSE support
https://bugs.webkit.org/show_bug.cgi?id=162869

Reviewed by Xabier Rodriguez-Calvar.

Add 'id' field to Audio/VideoTrackPrivateGStreamer. Make TrackPrivateBaseGStreamer
work anyway in cases where the demuxer isn't contained in a GstPlaybin.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfActiveChanged):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r207871 r207873  
     12016-10-26  Enrique Ocaña González  <eocanha@igalia.com>
     2
     3        [GStreamer] Track enhancements for MSE support
     4        https://bugs.webkit.org/show_bug.cgi?id=162869
     5
     6        Reviewed by Xabier Rodriguez-Calvar.
     7
     8        Add 'id' field to Audio/VideoTrackPrivateGStreamer. Make TrackPrivateBaseGStreamer
     9        work anyway in cases where the demuxer isn't contained in a GstPlaybin.
     10
     11        * platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
     12        (WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):
     13        * platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
     14        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
     15        (WebCore::TrackPrivateBaseGStreamer::tagsChanged):
     16        (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfActiveChanged):
     17        * platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
     18        (WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):
     19        * platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
     20
    1212016-10-26  Youenn Fablet  <youenn@apple.com>
    222
  • trunk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp

    r159730 r207873  
    3838    , m_playbin(playbin)
    3939{
     40    // FIXME: Get a real ID from the tkhd atom.
     41    m_id = "A" + String::number(index);
    4042    notifyTrackOfActiveChanged();
    4143}
  • trunk/Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h

    r197563 r207873  
    4949    int trackIndex() const override { return m_index; }
    5050
     51    AtomicString id() const override { return m_id; }
    5152    AtomicString label() const override { return m_label; }
    5253    AtomicString language() const override { return m_language; }
     
    5556    AudioTrackPrivateGStreamer(GRefPtr<GstElement> playbin, gint index, GRefPtr<GstPad>);
    5657
     58    AtomicString m_id;
    5759    GRefPtr<GstElement> m_playbin;
    5860};
  • trunk/Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp

    r203058 r207873  
    8989{
    9090    GRefPtr<GstTagList> tags;
    91     g_object_get(m_pad.get(), "tags", &tags.outPtr(), nullptr);
     91    if (g_object_class_find_property(G_OBJECT_GET_CLASS(m_pad.get()), "tags"))
     92        g_object_get(m_pad.get(), "tags", &tags.outPtr(), NULL);
     93    else
     94        tags = adoptGRef(gst_tag_list_new_empty());
     95
    9296    {
    9397        LockHolder lock(m_tagMutex);
     
    104108
    105109    gboolean active = false;
    106     if (m_pad)
     110    if (m_pad && g_object_class_find_property(G_OBJECT_GET_CLASS(m_pad.get()), "active"))
    107111        g_object_get(m_pad.get(), "active", &active, NULL);
    108112
  • trunk/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp

    r159730 r207873  
    3838    , m_playbin(playbin)
    3939{
     40    // FIXME: Get a real ID from the tkhd atom.
     41    m_id = "V" + String::number(index);
    4042    notifyTrackOfActiveChanged();
    4143}
  • trunk/Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h

    r197563 r207873  
    4949    int trackIndex() const override { return m_index; }
    5050
     51    AtomicString id() const override { return m_id; }
    5152    AtomicString label() const override { return m_label; }
    5253    AtomicString language() const override { return m_language; }
     
    5556    VideoTrackPrivateGStreamer(GRefPtr<GstElement> playbin, gint index, GRefPtr<GstPad>);
    5657
     58    AtomicString m_id;
    5759    GRefPtr<GstElement> m_playbin;
    5860};
Note: See TracChangeset for help on using the changeset viewer.