On 9/1/20 2:29 AM, Nikolay Sivov wrote:
On 8/28/20 11:48 PM, Derek Lesho wrote:
@@ -6030,7 +6030,7 @@ static HRESULT resolver_get_bytestream_handler(IMFByteStream *stream, const WCHA
for (i = 0, hr = E_FAIL; i < ARRAY_SIZE(hkey_roots); ++i) {
const WCHAR *namesW[2] = { mimeW, url_ext };
const WCHAR *namesW[3] = { mimeW, url_ext, L"wine/all" }; HKEY hkey, hkey_handler; if (RegOpenKeyA(hkey_roots[i], streamhandlerspath, &hkey))
Is it a way to avoid registering specific types/extensions? Could you explain why this is better than regular registration.
Yes, this is a way to avoid registering specific types. This was zebediah's suggestion, and his reasoning was:
Even if some application creates CLSID_MPEG4ByteStreamHandler manually, and we need to hook up this decoder thereto, I think it makes more sense for the original patch to create it under a generic name (maybe CLSID_GStreamerByteStreamHandler) and custom CLSID. Then, in another patch, we can hook up CLSID_MPEG4ByteStreamHandler to the same object.
Media Foundation doesn't make it as easy as DirectShow to plug in a generic catch-all handler, i.e. we can't just set some registry keys and have done, but regardless I think it's something we want to do, even if that means making the modification in mfreadwrite instead.