I wanted to open a video file using IMFSourceResolver but it returned The Byte Stream Type of the Given URL is unsupported. What I did is that open the video to get IRandomAccessStream, convert it to IMFByteStream and use CreateObjectFromByteStream() to get the IMFMediaSource.
According to this link CreateObjectFromByteStream it says if MF_E_UNSUPPORTED_BYTESTREAM_TYPE is returned Specify the MIME type by setting the MF_BYTESTREAM_CONTENT_TYPE attribute on the byte stream. This link for MF_BYTESTREAM_CONTENT_TYPE says To get the attribute value, query the byte stream object for the IMFAttributes interface. But I could not figure it out how to do that.
Is it possible to get IMFAttribute interface from IMFByteStream? If so how? And what should the values MF_BYTESTREAM_CONTENT_TYPE?
From MSDN (http://msdn.microsoft.com/en-us/library/windows/desktop/aa374773%28v=vs.85%29.aspx)
According to this info, some byte-streams support IMFAttributes, others don't. If you query your IMFByteStream for IMFAttributes and it returns E_NOINTERFACE this will mean that yours doesn't.