⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 267713 in webkit


Ignore:
Timestamp:
Sep 28, 2020, 1:21:03 PM (6 years ago)
Author:
eric.carlson@apple.com
Message:

[GPUP] Out-of-band TextTracks
https://bugs.webkit.org/show_bug.cgi?id=217062
<rdar://problem/68739969>

Reviewed by Jer Noble.
Source/WebCore:

Add support for passing out-of-band TextTracks to a media engine running in the GPU process.

No new tests, this can only be tested with a specific hardware setup.

  • html/HTMLMediaElement.cpp:

(WebCore::toPlatform):

  • platform/graphics/PlatformTextTrack.h: Put instance variables into a struct so

state can be encoded and decoded.
(WebCore::PlatformTextTrackData::PlatformTextTrackData):
(WebCore::PlatformTextTrackData::decode):
(WebCore::PlatformTextTrackData::encode const):
(WebCore::PlatformTextTrackClient::privateTrack):
(WebCore::PlatformTextTrack::create):
(WebCore::PlatformTextTrack::createOutOfBand):
(WebCore::PlatformTextTrack::type const):
(WebCore::PlatformTextTrack::kind const):
(WebCore::PlatformTextTrack::mode const):
(WebCore::PlatformTextTrack::label const):
(WebCore::PlatformTextTrack::language const):
(WebCore::PlatformTextTrack::url const):
(WebCore::PlatformTextTrack::uniqueId const):
(WebCore::PlatformTextTrack::isDefault const):
(WebCore::PlatformTextTrack::client const):
(WebCore::PlatformTextTrack::data const):
(WebCore::PlatformTextTrack::PlatformTextTrack):
(WebCore::PlatformTextTrack::captionMenuOffItem): Deleted.
(WebCore::PlatformTextTrack::captionMenuAutomaticItem): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::mediaDescriptionForKind):
(WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::outOfBandTrackSources):

  • GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:

(WebKit::RemoteMediaPlayerProxyConfiguration::encode const):
(WebKit::RemoteMediaPlayerProxyConfiguration::decode):

  • Scripts/webkit/messages.py:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
Location:
trunk/Source
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r267711 r267713  
     12020-09-28  Eric Carlson  <eric.carlson@apple.com>
     2
     3        [GPUP] Out-of-band TextTracks
     4        https://bugs.webkit.org/show_bug.cgi?id=217062
     5        <rdar://problem/68739969>
     6
     7        Reviewed by Jer Noble.
     8       
     9        Add support for passing out-of-band TextTracks to a media engine running in the GPU process.
     10
     11        No new tests, this can only be tested with a specific hardware setup.
     12
     13        * html/HTMLMediaElement.cpp:
     14        (WebCore::toPlatform):
     15        * platform/graphics/PlatformTextTrack.h: Put instance variables into a struct so
     16        state can be encoded and decoded.
     17        (WebCore::PlatformTextTrackData::PlatformTextTrackData):
     18        (WebCore::PlatformTextTrackData::decode):
     19        (WebCore::PlatformTextTrackData::encode const):
     20        (WebCore::PlatformTextTrackClient::privateTrack):
     21        (WebCore::PlatformTextTrack::create):
     22        (WebCore::PlatformTextTrack::createOutOfBand):
     23        (WebCore::PlatformTextTrack::type const):
     24        (WebCore::PlatformTextTrack::kind const):
     25        (WebCore::PlatformTextTrack::mode const):
     26        (WebCore::PlatformTextTrack::label const):
     27        (WebCore::PlatformTextTrack::language const):
     28        (WebCore::PlatformTextTrack::url const):
     29        (WebCore::PlatformTextTrack::uniqueId const):
     30        (WebCore::PlatformTextTrack::isDefault const):
     31        (WebCore::PlatformTextTrack::client const):
     32        (WebCore::PlatformTextTrack::data const):
     33        (WebCore::PlatformTextTrack::PlatformTextTrack):
     34        (WebCore::PlatformTextTrack::captionMenuOffItem): Deleted.
     35        (WebCore::PlatformTextTrack::captionMenuAutomaticItem): Deleted.
     36
     37        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
     38        (WebCore::mediaDescriptionForKind):
     39        (WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState):
     40
    1412020-09-28  Fujii Hironori  <Hironori.Fujii@sony.com>
    242
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r267709 r267713  
    68556855#if ENABLE(AVF_CAPTIONS)
    68566856
    6857 static inline PlatformTextTrack::TrackKind toPlatform(TextTrack::Kind kind)
     6857static inline PlatformTextTrackData::TrackKind toPlatform(TextTrack::Kind kind)
    68586858{
    68596859    switch (kind) {
    68606860    case TextTrack::Kind::Captions:
    6861         return PlatformTextTrack::Caption;
     6861        return PlatformTextTrackData::TrackKind::Caption;
    68626862    case TextTrack::Kind::Chapters:
    6863         return PlatformTextTrack::Chapter;
     6863        return PlatformTextTrackData::TrackKind::Chapter;
    68646864    case TextTrack::Kind::Descriptions:
    6865         return PlatformTextTrack::Description;
     6865        return PlatformTextTrackData::TrackKind::Description;
    68666866    case TextTrack::Kind::Forced:
    6867         return PlatformTextTrack::Forced;
     6867        return PlatformTextTrackData::TrackKind::Forced;
    68686868    case TextTrack::Kind::Metadata:
    6869         return PlatformTextTrack::MetaData;
     6869        return PlatformTextTrackData::TrackKind::MetaData;
    68706870    case TextTrack::Kind::Subtitles:
    6871         return PlatformTextTrack::Subtitle;
     6871        return PlatformTextTrackData::TrackKind::Subtitle;
    68726872    }
    68736873    ASSERT_NOT_REACHED();
    6874     return PlatformTextTrack::Caption;
    6875 }
    6876 
    6877 static inline PlatformTextTrack::TrackMode toPlatform(TextTrack::Mode mode)
     6874    return PlatformTextTrackData::TrackKind::Caption;
     6875}
     6876
     6877static inline PlatformTextTrackData::TrackMode toPlatform(TextTrack::Mode mode)
    68786878{
    68796879    switch (mode) {
    68806880    case TextTrack::Mode::Disabled:
    6881         return PlatformTextTrack::Disabled;
     6881        return PlatformTextTrackData::TrackMode::Disabled;
    68826882    case TextTrack::Mode::Hidden:
    6883         return PlatformTextTrack::Hidden;
     6883        return PlatformTextTrackData::TrackMode::Hidden;
    68846884    case TextTrack::Mode::Showing:
    6885         return PlatformTextTrack::Showing;
     6885        return PlatformTextTrackData::TrackMode::Showing;
    68866886    }
    68876887    ASSERT_NOT_REACHED();
    6888     return PlatformTextTrack::Disabled;
     6888    return PlatformTextTrackData::TrackMode::Disabled;
    68896889}
    68906890
  • trunk/Source/WebCore/platform/graphics/PlatformTextTrack.h

    r223728 r267713  
    2424 */
    2525
    26 #ifndef PlatformTextTrack_h
    27 #define PlatformTextTrack_h
     26#pragma once
    2827
    2928#if ENABLE(AVF_CAPTIONS)
     
    3736class InbandTextTrackPrivate;
    3837
    39 class PlatformTextTrackClient {
    40 public:
    41     virtual ~PlatformTextTrackClient() = default;
    42    
    43     virtual TextTrack* publicTrack() = 0;
    44     virtual InbandTextTrackPrivate* privateTrack() { return 0; }
    45 };
    46 
    47 class PlatformTextTrack : public RefCounted<PlatformTextTrack> {
    48 public:
    49     enum TrackKind {
     38struct PlatformTextTrackData {
     39    enum class TrackKind : uint8_t {
    5040        Subtitle = 0,
    5141        Caption = 1,
     
    5545        Forced = 5,
    5646    };
    57     enum TrackType {
     47    enum class TrackType : uint8_t {
    5848        InBand = 0,
    5949        OutOfBand = 1,
    6050        Script = 2
    6151    };
    62     enum TrackMode {
     52    enum class TrackMode : uint8_t {
    6353        Disabled,
    6454        Hidden,
    6555        Showing
    6656    };
    67    
    68     static Ref<PlatformTextTrack> create(PlatformTextTrackClient* client, const String& label, const String& language, TrackMode mode, TrackKind kind, TrackType type, int uniqueId)
    69     {
    70         return adoptRef(*new PlatformTextTrack(client, label, language, String(), mode, kind, type, uniqueId, false));
    71     }
    72 
    73     static Ref<PlatformTextTrack> createOutOfBand(const String& label, const String& language, const String& url, TrackMode mode, TrackKind kind, int uniqueId, bool isDefault)
    74     {
    75         return adoptRef(*new PlatformTextTrack(nullptr, label, language, url, mode, kind, OutOfBand, uniqueId, isDefault));
    76     }
    77 
    78     virtual ~PlatformTextTrack() = default;
    79    
    80     TrackType type() const { return m_type; }
    81     TrackKind kind() const { return m_kind; }
    82     TrackMode mode() const { return m_mode; }
    83     const String& label() const { return m_label; }
    84     const String& language() const { return m_language; }
    85     const String& url() const { return m_url; }
    86     PlatformTextTrackClient* client() const { return m_client; }
    87     int uniqueId() const { return m_uniqueId; }
    88     bool isDefault() const { return m_isDefault; }
    89 
    90     static PlatformTextTrack& captionMenuOffItem()
    91     {
    92         static PlatformTextTrack& off = PlatformTextTrack::create(nullptr, "off menu item", "", Showing, Subtitle, InBand, 0).leakRef();
    93         return off;
    94     }
    95 
    96     static PlatformTextTrack& captionMenuAutomaticItem()
    97     {
    98         static PlatformTextTrack& automatic = PlatformTextTrack::create(nullptr, "automatic menu item", "", Showing, Subtitle, InBand, 0).leakRef();
    99         return automatic;
    100     }
    101 
    102 protected:
    103     PlatformTextTrack(PlatformTextTrackClient* client, const String& label, const String& language, const String& url, TrackMode mode, TrackKind kind, TrackType type, int uniqueId, bool isDefault)
     57
     58    PlatformTextTrackData() = default;
     59    PlatformTextTrackData(const String& label, const String& language, const String& url, TrackMode mode, TrackKind kind, TrackType type, int uniqueId, bool isDefault)
    10460        : m_label(label)
    10561        , m_language(language)
     
    10864        , m_kind(kind)
    10965        , m_type(type)
    110         , m_client(client)
    11166        , m_uniqueId(uniqueId)
    11267        , m_isDefault(isDefault)
     
    12075    TrackKind m_kind;
    12176    TrackType m_type;
    122     PlatformTextTrackClient* m_client;
    12377    int m_uniqueId;
    12478    bool m_isDefault;
    125 };
    126 
     79
     80    template<class Encoder> void encode(Encoder&) const;
     81    template<class Decoder> static Optional<PlatformTextTrackData> decode(Decoder&);
     82};
     83
     84template <class Decoder>
     85Optional<PlatformTextTrackData> PlatformTextTrackData::decode(Decoder& decoder)
     86{
     87    Optional<String> label;
     88    decoder >> label;
     89    if (!label)
     90        return WTF::nullopt;
     91
     92    Optional<String> language;
     93    decoder >> language;
     94    if (!language)
     95        return WTF::nullopt;
     96
     97    Optional<String> url;
     98    decoder >> url;
     99    if (!url)
     100        return WTF::nullopt;
     101
     102    Optional<TrackMode> mode;
     103    decoder >> mode;
     104    if (!mode)
     105        return WTF::nullopt;
     106
     107    Optional<TrackKind> kind;
     108    decoder >> kind;
     109    if (!kind)
     110        return WTF::nullopt;
     111
     112    Optional<TrackType> type;
     113    decoder >> type;
     114    if (!type)
     115        return WTF::nullopt;
     116
     117    Optional<int> uniqueId;
     118    decoder >> uniqueId;
     119    if (!uniqueId)
     120        return WTF::nullopt;
     121
     122    Optional<bool> isDefault;
     123    decoder >> isDefault;
     124    if (!isDefault)
     125        return WTF::nullopt;
     126
     127    PlatformTextTrackData data = {
     128        WTFMove(*label),
     129        WTFMove(*language),
     130        WTFMove(*url),
     131        WTFMove(*mode),
     132        WTFMove(*kind),
     133        WTFMove(*type),
     134        WTFMove(*uniqueId),
     135        WTFMove(*isDefault),
     136    };
     137
     138    return data;
    127139}
    128140
    129 #endif
    130 
    131 #endif // PlatformTextTrack_h
     141template<class Encoder>
     142void PlatformTextTrackData::encode(Encoder& encoder) const
     143{
     144    encoder << m_label;
     145    encoder << m_language;
     146    encoder << m_url;
     147    encoder << m_mode;
     148    encoder << m_kind;
     149    encoder << m_type;
     150    encoder << m_uniqueId;
     151    encoder << m_isDefault;
     152}
     153
     154class PlatformTextTrackClient {
     155public:
     156    virtual ~PlatformTextTrackClient() = default;
     157   
     158    virtual TextTrack* publicTrack() = 0;
     159    virtual InbandTextTrackPrivate* privateTrack() { return 0; }
     160};
     161
     162class PlatformTextTrack : public RefCounted<PlatformTextTrack> {
     163public:
     164    static Ref<PlatformTextTrack> create(PlatformTextTrackClient* client, const String& label, const String& language, PlatformTextTrackData::TrackMode mode, PlatformTextTrackData::TrackKind kind, PlatformTextTrackData::TrackType type, int uniqueId)
     165    {
     166        return adoptRef(*new PlatformTextTrack(client, label, language, String(), mode, kind, type, uniqueId, false));
     167    }
     168
     169    static Ref<PlatformTextTrack> createOutOfBand(const String& label, const String& language, const String& url, PlatformTextTrackData::TrackMode mode, PlatformTextTrackData::TrackKind kind, int uniqueId, bool isDefault)
     170    {
     171        return adoptRef(*new PlatformTextTrack(nullptr, label, language, url, mode, kind, PlatformTextTrackData::TrackType::OutOfBand, uniqueId, isDefault));
     172    }
     173   
     174    static Ref<PlatformTextTrack> create(PlatformTextTrackData&& data)
     175    {
     176        return adoptRef(*new PlatformTextTrack(WTFMove(data)));
     177    }
     178
     179    virtual ~PlatformTextTrack() = default;
     180   
     181    PlatformTextTrackData::TrackType type() const { return m_trackData.m_type; }
     182    PlatformTextTrackData::TrackKind kind() const { return m_trackData.m_kind; }
     183    PlatformTextTrackData::TrackMode mode() const { return m_trackData.m_mode; }
     184    const String& label() const { return m_trackData.m_label; }
     185    const String& language() const { return m_trackData.m_language; }
     186    const String& url() const { return m_trackData.m_url; }
     187    int uniqueId() const { return m_trackData.m_uniqueId; }
     188    bool isDefault() const { return m_trackData.m_isDefault; }
     189    PlatformTextTrackClient* client() const { return m_client; }
     190   
     191    PlatformTextTrackData data() const { return m_trackData; }
     192
     193protected:
     194    PlatformTextTrack(PlatformTextTrackClient* client, const String& label, const String& language, const String& url, PlatformTextTrackData::TrackMode mode, PlatformTextTrackData::TrackKind kind, PlatformTextTrackData::TrackType type, int uniqueId, bool isDefault)
     195        : m_client(client)
     196    {
     197        m_trackData = {
     198            label,
     199            language,
     200            url,
     201            mode,
     202            kind,
     203            type,
     204            uniqueId,
     205            isDefault,
     206        };
     207    }
     208   
     209    PlatformTextTrack(PlatformTextTrackData&& data)
     210        : m_trackData(WTFMove(data))
     211    {
     212    }
     213
     214    PlatformTextTrackData m_trackData;
     215    PlatformTextTrackClient* m_client;
     216};
     217
     218} // namespace WebCore
     219
     220namespace WTF {
     221
     222template<> struct EnumTraits<WebCore::PlatformTextTrackData::TrackKind> {
     223    using values = EnumValues<
     224        WebCore::PlatformTextTrackData::TrackKind,
     225        WebCore::PlatformTextTrackData::TrackKind::Subtitle,
     226        WebCore::PlatformTextTrackData::TrackKind::Caption,
     227        WebCore::PlatformTextTrackData::TrackKind::Description,
     228        WebCore::PlatformTextTrackData::TrackKind::Chapter,
     229        WebCore::PlatformTextTrackData::TrackKind::MetaData,
     230        WebCore::PlatformTextTrackData::TrackKind::Forced
     231    >;
     232};
     233
     234template<> struct EnumTraits<WebCore::PlatformTextTrackData::TrackType> {
     235    using values = EnumValues<
     236        WebCore::PlatformTextTrackData::TrackType,
     237        WebCore::PlatformTextTrackData::TrackType::InBand,
     238        WebCore::PlatformTextTrackData::TrackType::OutOfBand,
     239        WebCore::PlatformTextTrackData::TrackType::Script
     240    >;
     241};
     242
     243template<> struct EnumTraits<WebCore::PlatformTextTrackData::TrackMode> {
     244    using values = EnumValues<
     245        WebCore::PlatformTextTrackData::TrackMode,
     246        WebCore::PlatformTextTrackData::TrackMode::Disabled,
     247        WebCore::PlatformTextTrackData::TrackMode::Hidden,
     248        WebCore::PlatformTextTrackData::TrackMode::Showing
     249    >;
     250};
     251
     252} // namespace WTF
     253
     254#endif // ENABLE(AVF_CAPTIONS)
     255
     256
  • trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm

    r267491 r267713  
    670670#if ENABLE(AVF_CAPTIONS)
    671671
    672 static const NSArray *mediaDescriptionForKind(PlatformTextTrack::TrackKind kind)
     672static const NSArray *mediaDescriptionForKind(PlatformTextTrackData::TrackKind kind)
    673673{
    674674    static bool manualSelectionMode = MTEnableCaption2015BehaviorPtr() && MTEnableCaption2015BehaviorPtr()();
     
    677677
    678678    // FIXME: Match these to correct types:
    679     if (kind == PlatformTextTrack::Caption)
     679    if (kind == PlatformTextTrackData::TrackKind::Caption)
    680680        return @[ AVMediaCharacteristicTranscribesSpokenDialogForAccessibility ];
    681681
    682     if (kind == PlatformTextTrack::Subtitle)
     682    if (kind == PlatformTextTrackData::TrackKind::Subtitle)
    683683        return @[ AVMediaCharacteristicTranscribesSpokenDialogForAccessibility ];
    684684
    685     if (kind == PlatformTextTrack::Description)
     685    if (kind == PlatformTextTrackData::TrackKind::Description)
    686686        return @[ AVMediaCharacteristicTranscribesSpokenDialogForAccessibility, AVMediaCharacteristicDescribesMusicAndSoundForAccessibility ];
    687687
    688     if (kind == PlatformTextTrack::Forced)
     688    if (kind == PlatformTextTrackData::TrackKind::Forced)
    689689        return @[ AVMediaCharacteristicContainsOnlyForcedSubtitles ];
    690690
     
    699699void MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState()
    700700{
    701     const Vector<RefPtr<PlatformTextTrack>>& outOfBandTrackSources = player()->outOfBandTrackSources();
     701    const auto& outOfBandTrackSources = player()->outOfBandTrackSources();
    702702   
    703703    for (auto& textTrack : m_textTracks) {
     
    715715           
    716716            InbandTextTrackPrivate::Mode mode = InbandTextTrackPrivate::Mode::Hidden;
    717             if (track->mode() == PlatformTextTrack::Hidden)
     717            switch (track->mode()) {
     718            case PlatformTextTrackData::TrackMode::Hidden:
    718719                mode = InbandTextTrackPrivate::Mode::Hidden;
    719             else if (track->mode() == PlatformTextTrack::Disabled)
     720                break;
     721            case PlatformTextTrackData::TrackMode::Disabled:
    720722                mode = InbandTextTrackPrivate::Mode::Disabled;
    721             else if (track->mode() == PlatformTextTrack::Showing)
     723                break;
     724            case PlatformTextTrackData::TrackMode::Showing:
    722725                mode = InbandTextTrackPrivate::Mode::Showing;
     726                break;
     727            }
    723728           
    724729            textTrack->setMode(mode);
  • trunk/Source/WebKit/ChangeLog

    r267709 r267713  
     12020-09-28  Eric Carlson  <eric.carlson@apple.com>
     2
     3        [GPUP] Out-of-band TextTracks
     4        https://bugs.webkit.org/show_bug.cgi?id=217062
     5        <rdar://problem/68739969>
     6
     7        Reviewed by Jer Noble.
     8
     9        * GPUProcess/media/RemoteMediaPlayerProxy.cpp:
     10        (WebKit::RemoteMediaPlayerProxy::outOfBandTrackSources):
     11        * GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:
     12        (WebKit::RemoteMediaPlayerProxyConfiguration::encode const):
     13        (WebKit::RemoteMediaPlayerProxyConfiguration::decode):
     14        * Scripts/webkit/messages.py:
     15        * WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
     16        (WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
     17        * WebProcess/GPU/media/RemoteMediaPlayerManager.h:
     18
    1192020-09-28  Devin Rousso  <drousso@apple.com>
    220
  • trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp

    r267491 r267713  
    658658Vector<RefPtr<PlatformTextTrack>> RemoteMediaPlayerProxy::outOfBandTrackSources()
    659659{
    660     notImplemented();
    661     return { };
     660    Vector<RefPtr<PlatformTextTrack>> sources;
     661    for (auto& data : m_configuration.outOfBandTrackData)
     662        sources.append(PlatformTextTrack::create(WTFMove(data)));
     663   
     664    return sources;
    662665}
    663666
  • trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h

    r258082 r267713  
    2929
    3030#include <WebCore/ContentType.h>
     31#include <WebCore/PlatformTextTrack.h>
    3132#include <WebCore/SecurityOriginData.h>
    3233#include <wtf/text/WTFString.h>
     
    4142    Vector<WebCore::ContentType> mediaContentTypesRequiringHardwareSupport;
    4243    Vector<String> preferredAudioCharacteristics;
     44#if ENABLE(AVF_CAPTIONS)
     45    Vector<WebCore::PlatformTextTrackData> outOfBandTrackData;
     46#endif
    4347    WebCore::SecurityOriginData documentSecurityOrigin;
    4448    uint64_t logIdentifier { 0 };
     
    5559        encoder << mediaContentTypesRequiringHardwareSupport;
    5660        encoder << preferredAudioCharacteristics;
     61#if ENABLE(AVF_CAPTIONS)
     62        encoder << outOfBandTrackData;
     63#endif
    5764        encoder << documentSecurityOrigin;
    5865        encoder << logIdentifier;
     
    94101            return WTF::nullopt;
    95102
     103#if ENABLE(AVF_CAPTIONS)
     104        Optional<Vector<WebCore::PlatformTextTrackData>> outOfBandTrackData;
     105        decoder >> outOfBandTrackData;
     106        if (!outOfBandTrackData)
     107            return WTF::nullopt;
     108#endif
     109
    96110        Optional<WebCore::SecurityOriginData> documentSecurityOrigin;
    97111        decoder >> documentSecurityOrigin;
     
    121135            WTFMove(*mediaContentTypesRequiringHardwareSupport),
    122136            WTFMove(*preferredAudioCharacteristics),
     137#if ENABLE(AVF_CAPTIONS)
     138            WTFMove(*outOfBandTrackData),
     139#endif
    123140            WTFMove(*documentSecurityOrigin),
    124141            *logIdentifier,
  • trunk/Source/WebKit/Scripts/webkit/messages.py

    r267156 r267713  
    624624        'WebCore::PaymentAuthorizationResult': ['<WebCore/ApplePaySessionPaymentRequest.h>'],
    625625        'WebCore::PaymentMethodUpdate': ['<WebCore/ApplePaySessionPaymentRequest.h>'],
     626        'WebCore::PlatformTextTrackData': ['<WebCore/PlatformTextTrack.h>'],
    626627        'WebCore::PluginInfo': ['<WebCore/PluginData.h>'],
    627628        'WebCore::PluginLoadClientPolicy': ['<WebCore/PluginData.h>'],
  • trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp

    r267516 r267713  
    143143std::unique_ptr<MediaPlayerPrivateInterface> RemoteMediaPlayerManager::createRemoteMediaPlayer(MediaPlayer* player, MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier)
    144144{
    145 
    146145    RemoteMediaPlayerProxyConfiguration proxyConfiguration;
    147146    proxyConfiguration.referrer = player->referrer();
     
    159158    proxyConfiguration.isVideo = player->isVideoPlayer();
    160159
     160#if ENABLE(AVF_CAPTIONS)
     161    for (const auto& track : player->outOfBandTrackSources())
     162        proxyConfiguration.outOfBandTrackData.append(track->data());
     163#endif
     164
    161165    auto documentSecurityOrigin = player->documentSecurityOrigin();
    162166    proxyConfiguration.documentSecurityOrigin = documentSecurityOrigin;
  • trunk/Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.h

    r258122 r267713  
    4949class RemoteMediaPlayerMIMETypeCache;
    5050class WebProcess;
     51struct PlatformTextTrackData;
    5152struct TrackPrivateRemoteConfiguration;
    5253
Note: See TracChangeset for help on using the changeset viewer.