Changeset 194787 in webkit
- Timestamp:
- Jan 8, 2016 1:42:25 PM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r194781 r194787 1 2016-01-08 Per Arne Vollan <peavo@outlook.com> 2 3 [WinCairo] Support more video formats. 4 https://bugs.webkit.org/show_bug.cgi?id=152890 5 6 Reviewed by Alex Christensen. 7 8 Use MediaFoundation api to detect all supported video/audio formats. 9 10 * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp: 11 (WebCore::MediaPlayerPrivateMediaFoundation::getSupportedTypes): 12 (WebCore::MediaPlayerPrivateMediaFoundation::supportsType): 13 1 14 2016-01-08 Brady Eidson <beidson@apple.com> 2 15 -
trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp
r194535 r194787 42 42 43 43 #include <wtf/MainThread.h> 44 #include <wtf/NeverDestroyed.h> 44 45 45 46 SOFT_LINK_LIBRARY(Mf); … … 52 53 SOFT_LINK_OPTIONAL(Mf, MFCreateVideoRendererActivate, HRESULT, STDAPICALLTYPE, (HWND, IMFActivate**)); 53 54 SOFT_LINK_OPTIONAL(Mf, MFCreateSampleGrabberSinkActivate, HRESULT, STDAPICALLTYPE, (IMFMediaType*, IMFSampleGrabberSinkCallback*, IMFActivate**)); 55 SOFT_LINK_OPTIONAL(Mf, MFGetSupportedMimeTypes, HRESULT, STDAPICALLTYPE, (PROPVARIANT*)); 54 56 55 57 SOFT_LINK_LIBRARY(Mfplat); … … 119 121 } 120 122 123 static const HashSet<String>& mimeTypeCache() 124 { 125 static NeverDestroyed<HashSet<String>> cachedTypes; 126 127 if (cachedTypes.get().size() > 0) 128 return cachedTypes; 129 130 cachedTypes.get().add(String("video/mp4")); 131 132 if (!MFGetSupportedMimeTypesPtr()) 133 return cachedTypes; 134 135 PROPVARIANT propVarMimeTypeArray; 136 PropVariantInit(&propVarMimeTypeArray); 137 138 HRESULT hr = MFGetSupportedMimeTypesPtr()(&propVarMimeTypeArray); 139 140 if (SUCCEEDED(hr)) { 141 CALPWSTR mimeTypeArray = propVarMimeTypeArray.calpwstr; 142 for (unsigned i = 0; i < mimeTypeArray.cElems; i++) 143 cachedTypes.get().add(mimeTypeArray.pElems[i]); 144 } 145 146 PropVariantClear(&propVarMimeTypeArray); 147 148 return cachedTypes; 149 } 150 121 151 void MediaPlayerPrivateMediaFoundation::getSupportedTypes(HashSet<String>& types) 122 152 { 123 types .add(String("video/mp4"));153 types = mimeTypeCache(); 124 154 } 125 155 … … 129 159 return MediaPlayer::IsNotSupported; 130 160 131 if ( parameters.type == "video/mp4")161 if (mimeTypeCache().contains(parameters.type)) 132 162 return MediaPlayer::IsSupported; 133 163
Note: See TracChangeset
for help on using the changeset viewer.