private static HResult CreateMediaSource(string videoFile, out IMFMediaSource source)
        {
            IMFSourceResolver resolver = null;

            source = null;

            HResult hr = MF.CreateSourceResolver(out resolver);

            if (Failed(hr))
            {
                return(hr);
            }

            hr = resolver.CreateObjectFromURL(videoFile, MFResolution.MediaSource, null, out source);

            if (Failed(hr))
            {
                SafeRelease(source);
            }

            SafeRelease(resolver);

            return(hr);
        }