Changeset 246918 in webkit


Ignore:
Timestamp:
Jun 27, 2019 7:10:09 PM (5 years ago)
Author:
Fujii Hironori
Message:

[WinCairo][MediaFoundation] Stop using soft linking for Media Foundation
https://bugs.webkit.org/show_bug.cgi?id=198783

Reviewed by Alex Christensen.

WinCairo is supporting Windows 7 or newer. It doesn't need soft
linking anymore.

No new tests because there is no behavior change.

  • PlatformWinCairo.cmake: Added libraries to WebCore_LIBRARIES.
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateMediaFoundation::setRate):
(WebCore::MediaPlayerPrivateMediaFoundation::setAllChannelVolumes):
(WebCore::MediaPlayerPrivateMediaFoundation::createSession):
(WebCore::MediaPlayerPrivateMediaFoundation::endSession):
(WebCore::MediaPlayerPrivateMediaFoundation::startCreateMediaSource):
(WebCore::MediaPlayerPrivateMediaFoundation::createTopologyFromSource):
(WebCore::MediaPlayerPrivateMediaFoundation::createOutputNode):
(WebCore::MediaPlayerPrivateMediaFoundation::createSourceStreamNode):
(WebCore::MediaPlayerPrivateMediaFoundation::updateReadyState):
(WebCore::MediaPlayerPrivateMediaFoundation::videoDisplay):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::createOptimalVideoType):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::setFrameRate):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSample):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::initializeD3D):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createD3DSample):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r246917 r246918  
     12019-06-27  Fujii Hironori  <Hironori.Fujii@sony.com>
     2
     3        [WinCairo][MediaFoundation] Stop using soft linking for Media Foundation
     4        https://bugs.webkit.org/show_bug.cgi?id=198783
     5
     6        Reviewed by Alex Christensen.
     7
     8        WinCairo is supporting Windows 7 or newer. It doesn't need soft
     9        linking anymore.
     10
     11        No new tests because there is no behavior change.
     12
     13        * PlatformWinCairo.cmake: Added libraries to WebCore_LIBRARIES.
     14        * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
     15        (WebCore::mimeTypeCache):
     16        (WebCore::MediaPlayerPrivateMediaFoundation::setRate):
     17        (WebCore::MediaPlayerPrivateMediaFoundation::setAllChannelVolumes):
     18        (WebCore::MediaPlayerPrivateMediaFoundation::createSession):
     19        (WebCore::MediaPlayerPrivateMediaFoundation::endSession):
     20        (WebCore::MediaPlayerPrivateMediaFoundation::startCreateMediaSource):
     21        (WebCore::MediaPlayerPrivateMediaFoundation::createTopologyFromSource):
     22        (WebCore::MediaPlayerPrivateMediaFoundation::createOutputNode):
     23        (WebCore::MediaPlayerPrivateMediaFoundation::createSourceStreamNode):
     24        (WebCore::MediaPlayerPrivateMediaFoundation::updateReadyState):
     25        (WebCore::MediaPlayerPrivateMediaFoundation::videoDisplay):
     26        (WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::createOptimalVideoType):
     27        (WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::setFrameRate):
     28        (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSample):
     29        (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::initializeD3D):
     30        (WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createD3DSample):
     31
    1322019-06-27  Basuke Suzuki  <Basuke.Suzuki@sony.com>
    233
  • trunk/Source/WebCore/PlatformWinCairo.cmake

    r246076 r246918  
    55
    66list(APPEND WebCore_PRIVATE_INCLUDE_DIRECTORIES
    7     "${DirectX_INCLUDE_DIRS}"
    87    "${WEBKIT_LIBRARIES_DIR}/include"
    98    "${WEBCORE_DIR}/loader/archive/cf"
     
    3938
    4039list(APPEND WebCore_LIBRARIES
    41     ${DirectX_LIBRARIES}
     40    D3d9
     41    Mf
     42    Mfplat
    4243    comctl32
    4344    crypt32
     45    dxva2
     46    evr
    4447    iphlpapi
    4548    rpcrt4
  • trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp

    r246302 r246918  
    3939#include <cairo.h>
    4040#endif
    41 #include <wtf/SoftLinking.h>
    4241
    4342#if USE(MEDIA_FOUNDATION)
     
    4544#include <wtf/MainThread.h>
    4645#include <wtf/NeverDestroyed.h>
    47 
    48 SOFT_LINK_LIBRARY(Mf);
    49 SOFT_LINK_OPTIONAL(Mf, MFCreateSourceResolver, HRESULT, STDAPICALLTYPE, (IMFSourceResolver**));
    50 SOFT_LINK_OPTIONAL(Mf, MFCreateMediaSession, HRESULT, STDAPICALLTYPE, (IMFAttributes*, IMFMediaSession**));
    51 SOFT_LINK_OPTIONAL(Mf, MFCreateTopology, HRESULT, STDAPICALLTYPE, (IMFTopology**));
    52 SOFT_LINK_OPTIONAL(Mf, MFCreateTopologyNode, HRESULT, STDAPICALLTYPE, (MF_TOPOLOGY_TYPE, IMFTopologyNode**));
    53 SOFT_LINK_OPTIONAL(Mf, MFGetService, HRESULT, STDAPICALLTYPE, (IUnknown*, REFGUID, REFIID, LPVOID*));
    54 SOFT_LINK_OPTIONAL(Mf, MFCreateAudioRendererActivate, HRESULT, STDAPICALLTYPE, (IMFActivate**));
    55 SOFT_LINK_OPTIONAL(Mf, MFCreateVideoRendererActivate, HRESULT, STDAPICALLTYPE, (HWND, IMFActivate**));
    56 SOFT_LINK_OPTIONAL(Mf, MFGetSupportedMimeTypes, HRESULT, STDAPICALLTYPE, (PROPVARIANT*));
    57 
    58 SOFT_LINK_LIBRARY(Mfplat);
    59 SOFT_LINK_OPTIONAL(Mfplat, MFStartup, HRESULT, STDAPICALLTYPE, (ULONG, DWORD));
    60 SOFT_LINK_OPTIONAL(Mfplat, MFShutdown, HRESULT, STDAPICALLTYPE, ());
    61 SOFT_LINK_OPTIONAL(Mfplat, MFCreateMediaType, HRESULT, STDAPICALLTYPE, (IMFMediaType**));
    62 SOFT_LINK_OPTIONAL(Mfplat, MFFrameRateToAverageTimePerFrame, HRESULT, STDAPICALLTYPE, (UINT32, UINT32, UINT64*));
    63 
    64 SOFT_LINK_LIBRARY(evr);
    65 SOFT_LINK_OPTIONAL(evr, MFCreateVideoSampleFromSurface, HRESULT, STDAPICALLTYPE, (IUnknown*, IMFSample**));
    66 
    67 SOFT_LINK_LIBRARY(Dxva2);
    68 SOFT_LINK_OPTIONAL(Dxva2, DXVA2CreateDirect3DDeviceManager9, HRESULT, STDAPICALLTYPE, (UINT*, IDirect3DDeviceManager9**));
    69 
    70 SOFT_LINK_LIBRARY(D3d9);
    71 SOFT_LINK_OPTIONAL(D3d9, Direct3DCreate9Ex, HRESULT, STDAPICALLTYPE, (UINT, IDirect3D9Ex**));
    7246
    7347// MFSamplePresenterSampleCounter
     
    128102    cachedTypes.get().add(String("video/mp4"));
    129103
    130     if (!MFGetSupportedMimeTypesPtr())
    131         return cachedTypes;
    132 
    133104    PROPVARIANT propVarMimeTypeArray;
    134105    PropVariantInit(&propVarMimeTypeArray);
    135106
    136     HRESULT hr = MFGetSupportedMimeTypesPtr()(&propVarMimeTypeArray);
     107    HRESULT hr = MFGetSupportedMimeTypes(&propVarMimeTypeArray);
    137108
    138109    if (SUCCEEDED(hr)) {
     
    248219    COMPtr<IMFRateControl> rateControl;
    249220
    250     HRESULT hr = MFGetServicePtr()(m_mediaSession.get(), MF_RATE_CONTROL_SERVICE, IID_IMFRateControl, (void**)&rateControl);
     221    HRESULT hr = MFGetService(m_mediaSession.get(), MF_RATE_CONTROL_SERVICE, IID_IMFRateControl, (void**)&rateControl);
    251222
    252223    if (!SUCCEEDED(hr))
     
    290261bool MediaPlayerPrivateMediaFoundation::setAllChannelVolumes(float volume)
    291262{
    292     if (!MFGetServicePtr())
    293         return false;
    294 
    295263    COMPtr<IMFAudioStreamVolume> audioVolume;
    296     if (!SUCCEEDED(MFGetServicePtr()(m_mediaSession.get(), MR_STREAM_VOLUME_SERVICE, __uuidof(IMFAudioStreamVolume), (void **)&audioVolume)))
     264    if (!SUCCEEDED(MFGetService(m_mediaSession.get(), MR_STREAM_VOLUME_SERVICE, __uuidof(IMFAudioStreamVolume), (void **)&audioVolume)))
    297265        return false;
    298266
     
    382350bool MediaPlayerPrivateMediaFoundation::createSession()
    383351{
    384     if (!MFStartupPtr() || !MFCreateMediaSessionPtr())
    385         return false;
    386 
    387     if (FAILED(MFStartupPtr()(MF_VERSION, MFSTARTUP_FULL)))
    388         return false;
    389 
    390     if (FAILED(MFCreateMediaSessionPtr()(nullptr, &m_mediaSession)))
     352    if (FAILED(MFStartup(MF_VERSION, MFSTARTUP_FULL)))
     353        return false;
     354
     355    if (FAILED(MFCreateMediaSession(nullptr, &m_mediaSession)))
    391356        return false;
    392357
     
    423388    }
    424389
    425     if (!MFShutdownPtr())
    426         return false;
    427 
    428     HRESULT hr = MFShutdownPtr()();
     390    HRESULT hr = MFShutdown();
    429391    ASSERT_UNUSED(hr, SUCCEEDED(hr));
    430392
     
    434396bool MediaPlayerPrivateMediaFoundation::startCreateMediaSource(const String& url)
    435397{
    436     if (!MFCreateSourceResolverPtr())
    437         return false;
    438 
    439     if (FAILED(MFCreateSourceResolverPtr()(&m_sourceResolver)))
     398    if (FAILED(MFCreateSourceResolver(&m_sourceResolver)))
    440399        return false;
    441400
     
    565524bool MediaPlayerPrivateMediaFoundation::createTopologyFromSource()
    566525{
    567     if (!MFCreateTopologyPtr())
     526    if (!MFCreateTopology)
    568527        return false;
    569528
    570529    // Create a new topology.
    571     if (FAILED(MFCreateTopologyPtr()(&m_topology)))
     530    if (FAILED(MFCreateTopology(&m_topology)))
    572531        return false;
    573532
     
    678637bool MediaPlayerPrivateMediaFoundation::createOutputNode(COMPtr<IMFStreamDescriptor> sourceSD, COMPtr<IMFTopologyNode>& node)
    679638{
    680     if (!MFCreateTopologyNodePtr() || !MFCreateAudioRendererActivatePtr() || !MFCreateVideoRendererActivatePtr())
    681         return false;
    682 
    683639    if (!sourceSD)
    684640        return false;
     
    699655
    700656    // Create a downstream node.
    701     if (FAILED(MFCreateTopologyNodePtr()(MF_TOPOLOGY_OUTPUT_NODE, &node)))
     657    if (FAILED(MFCreateTopologyNode(MF_TOPOLOGY_OUTPUT_NODE, &node)))
    702658        return false;
    703659
     
    706662    if (MFMediaType_Audio == guidMajorType) {
    707663        // Create the audio renderer.
    708         if (FAILED(MFCreateAudioRendererActivatePtr()(&rendererActivate)))
     664        if (FAILED(MFCreateAudioRendererActivate(&rendererActivate)))
    709665            return false;
    710666        m_hasAudio = true;
    711667    } else if (MFMediaType_Video == guidMajorType) {
    712668        // Create the video renderer.
    713         if (FAILED(MFCreateVideoRendererActivatePtr()(nullptr, &rendererActivate)))
     669        if (FAILED(MFCreateVideoRendererActivate(nullptr, &rendererActivate)))
    714670            return false;
    715671
     
    731687bool MediaPlayerPrivateMediaFoundation::createSourceStreamNode(COMPtr<IMFStreamDescriptor> sourceSD, COMPtr<IMFTopologyNode>& node)
    732688{
    733     if (!MFCreateTopologyNodePtr())
    734         return false;
    735 
    736689    if (!m_mediaSource || !m_sourcePD || !sourceSD)
    737690        return false;
    738691
    739692    // Create the source-stream node.
    740     HRESULT hr = MFCreateTopologyNodePtr()(MF_TOPOLOGY_SOURCESTREAM_NODE, &node);
     693    HRESULT hr = MFCreateTopologyNode(MF_TOPOLOGY_SOURCESTREAM_NODE, &node);
    741694    if (FAILED(hr))
    742695        return false;
     
    762715void MediaPlayerPrivateMediaFoundation::updateReadyState()
    763716{
    764     if (!MFGetServicePtr())
    765         return;
    766 
    767717    COMPtr<IPropertyStore> prop;
    768718
    769719    // Get the property store from the media session.
    770     HRESULT hr = MFGetServicePtr()(m_mediaSession.get(), MFNETSOURCE_STATISTICS_SERVICE, IID_PPV_ARGS(&prop));
     720    HRESULT hr = MFGetService(m_mediaSession.get(), MFNETSOURCE_STATISTICS_SERVICE, IID_PPV_ARGS(&prop));
    771721
    772722    if (FAILED(hr))
     
    808758        return m_videoDisplay;
    809759
    810     if (!MFGetServicePtr())
    811         return nullptr;
    812 
    813     MFGetServicePtr()(m_mediaSession.get(), MR_VIDEO_RENDER_SERVICE, IID_PPV_ARGS(&m_videoDisplay));
     760    MFGetService(m_mediaSession.get(), MR_VIDEO_RENDER_SERVICE, IID_PPV_ARGS(&m_videoDisplay));
    814761
    815762    return m_videoDisplay;
     
    17791726{
    17801727    COMPtr<IMFMediaType> optimalVideoType;
    1781     HRESULT hr = MFCreateMediaTypePtr()(&optimalVideoType);
     1728    HRESULT hr = MFCreateMediaType(&optimalVideoType);
    17821729    if (FAILED(hr))
    17831730        return hr;
     
    23022249{
    23032250    UINT64 avgTimePerFrame = 0;
    2304     MFFrameRateToAverageTimePerFramePtr()(fps.Numerator, fps.Denominator, &avgTimePerFrame);
     2251    MFFrameRateToAverageTimePerFrame(fps.Numerator, fps.Denominator, &avgTimePerFrame);
    23052252
    23062253    m_frameDuration = (MFTIME)avgTimePerFrame;
     
    28002747        COMPtr<IMFMediaBuffer> buffer;
    28012748        hr = sample->GetBufferByIndex(0, &buffer);
    2802         hr = MFGetServicePtr()(buffer.get(), MR_BUFFER_SERVICE, __uuidof(IDirect3DSurface9), (void**)&surface);
     2749        hr = MFGetService(buffer.get(), MR_BUFFER_SERVICE, __uuidof(IDirect3DSurface9), (void**)&surface);
    28032750    } else if (m_surfaceRepaint) {
    28042751        // Use the last surface.
     
    29042851    ASSERT(!m_deviceManager);
    29052852
    2906     HRESULT hr = Direct3DCreate9ExPtr()(D3D_SDK_VERSION, &m_direct3D9);
    2907     if (FAILED(hr))
    2908         return hr;
    2909 
    2910     return DXVA2CreateDirect3DDeviceManager9Ptr()(&m_deviceResetToken, &m_deviceManager);
     2853    HRESULT hr = Direct3DCreate9Ex(D3D_SDK_VERSION, &m_direct3D9);
     2854    if (FAILED(hr))
     2855        return hr;
     2856
     2857    return DXVA2CreateDirect3DDeviceManager9(&m_deviceResetToken, &m_deviceManager);
    29112858}
    29122859
     
    29912938        return hr;
    29922939
    2993     return MFCreateVideoSampleFromSurfacePtr()(surface.get(), &videoSample);
     2940    return MFCreateVideoSampleFromSurface(surface.get(), &videoSample);
    29942941}
    29952942
Note: See TracChangeset for help on using the changeset viewer.