Changeset 193959 in webkit


Ignore:
Timestamp:
Dec 11, 2015 9:45:16 AM (8 years ago)
Author:
peavo@outlook.com
Message:

[WinCairo][MediaFoundation] Setting playback rate does not work.
https://bugs.webkit.org/show_bug.cgi?id=152172

Reviewed by Brent Fulgham.

Implement method to set playback rate.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::seekDouble):
(WebCore::MediaPlayerPrivateMediaFoundation::setRateDouble):
(WebCore::MediaPlayerPrivateMediaFoundation::durationDouble):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r193957 r193959  
     12015-12-11  Per Arne Vollan  <peavo@outlook.com>
     2
     3        [WinCairo][MediaFoundation] Setting playback rate does not work.
     4        https://bugs.webkit.org/show_bug.cgi?id=152172
     5
     6        Reviewed by Brent Fulgham.
     7
     8        Implement method to set playback rate.
     9
     10        * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
     11        (WebCore::MediaPlayerPrivateMediaFoundation::seekDouble):
     12        (WebCore::MediaPlayerPrivateMediaFoundation::setRateDouble):
     13        (WebCore::MediaPlayerPrivateMediaFoundation::durationDouble):
     14        * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
     15
    1162015-12-11  Darin Adler  <darin@apple.com>
    217
  • trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp

    r193761 r193959  
    217217}
    218218
     219void MediaPlayerPrivateMediaFoundation::setRateDouble(double rate)
     220{
     221    COMPtr<IMFRateControl> rateControl;
     222
     223    HRESULT hr = MFGetServicePtr()(m_mediaSession.get(), MF_RATE_CONTROL_SERVICE, IID_IMFRateControl, (void**)&rateControl);
     224
     225    if (!SUCCEEDED(hr))
     226        return;
     227
     228    BOOL reduceSamplesInStream = rate > 2.0;
     229
     230    rateControl->SetRate(reduceSamplesInStream, rate);
     231}
     232
    219233double MediaPlayerPrivateMediaFoundation::durationDouble() const
    220234{
  • trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.h

    r193353 r193959  
    7373    virtual bool seeking() const;
    7474    virtual void seekDouble(double) override;
     75
     76    virtual void setRateDouble(double) override;
     77
    7578    virtual double durationDouble() const override;
    7679
Note: See TracChangeset for help on using the changeset viewer.