protected void CreateMediaSource(string sURL) { TRACE("CPlayer::CreateMediaSource"); IMFSourceResolver pSourceResolver; object pSource; // Create the source resolver. MFExtern.MFCreateSourceResolver(out pSourceResolver); try { // Use the source resolver to create the media source. MFObjectType ObjectType = MFObjectType.Invalid; pSourceResolver.CreateObjectFromURL( sURL, // URL of the source. MFResolution.MediaSource, // Create a source object. null, // Optional property store. out ObjectType, // Receives the created object type. out pSource // Receives a pointer to the media source. ); // Get the IMFMediaSource interface from the media source. m_pSource = (IMFMediaSource)pSource; } finally { // Clean up Marshal.ReleaseComObject(pSourceResolver); } }
protected void CreateMediaSource(string sURL) { IMFSourceResolver pSourceResolver; object pSource; // Create the source resolver. int hr = MFExtern.MFCreateSourceResolver(out pSourceResolver); MFError.ThrowExceptionForHR(hr); try { // Use the source resolver to create the media source. MFObjectType ObjectType = MFObjectType.Invalid; hr = pSourceResolver.CreateObjectFromURL( sURL, // URL of the source. MFResolution.MediaSource, // Create a source object. null, // Optional property store. out ObjectType, // Receives the created object type. out pSource // Receives a pointer to the media source. ); MFError.ThrowExceptionForHR(hr); // Get the IMFMediaSource interface from the media source. m_pSource = pSource as IMFMediaSource; } finally { // Clean up Marshal.ReleaseComObject(pSourceResolver); } }
/////////////////////////////////////////////////////////////////////// // Name: CreateMediaSource // Description: Create a media source from a URL. // // sURL: The URL to open. // ppSource: Receives a pointer to the media source. /////////////////////////////////////////////////////////////////////// static void CreateMediaSource(string sURL, out IMFMediaSource ppSource) { HResult hr; IMFSourceResolver pSourceResolver; object pSourceUnk; // Create the source resolver. hr = MFExtern.MFCreateSourceResolver(out pSourceResolver); MFError.ThrowExceptionForHR(hr); try { // Use the source resolver to create the media source. MFObjectType ObjectType = MFObjectType.Invalid; hr = pSourceResolver.CreateObjectFromURL( sURL, // URL of the source. MFResolution.MediaSource, // Create a source object. null, // Optional property store. out ObjectType, // Receives the object type. out pSourceUnk // Receives a pointer to the source. ); MFError.ThrowExceptionForHR(hr); // Get the IMFMediaSource interface from the media source. ppSource = (IMFMediaSource)pSourceUnk; } finally { // Clean up. if (pSourceResolver != null) { Marshal.ReleaseComObject(pSourceResolver); } } }
public HResult EndCreateObject(IMFAsyncResult pResult, out MFObjectType pObjectType, out object ppObject) { pObjectType = MFObjectType.ByteStream; HResult hr = pResult.GetObject(out ppObject); if (MFError.Succeeded(hr)) { IcyScheme icy = (IcyScheme)ppObject; // Wait for the HttpWebRequest to finish connecting. This // includes sending the request, and processing the response // headers and caching some data (see m_FirstBlock). hr = icy.WaitForConnect(); } return(hr); }
static IMFMediaSource GetMediaSource(string sourceFileName) { HResult hr; // Get an IMFMediaSource. IMFSourceResolver sourceResolver; hr = MFExtern.MFCreateSourceResolver(out sourceResolver); MFError.ThrowExceptionForHR(hr); MFObjectType objectType = MFObjectType.Invalid; object source; hr = sourceResolver.CreateObjectFromURL(sourceFileName, MFResolution.MediaSource, null, out objectType, out source); MFError.ThrowExceptionForHR(hr); IMFMediaSource mediaSource = (IMFMediaSource)source; COMBase.SafeRelease(sourceResolver); sourceResolver = null; return(mediaSource); }
//////////////////////////////////////////////////////////////////////////////////////// // Name: CPlayer::CreateMediaSource (Private) // Description: // Creates a media source from URL // Parameter: // sURL: [in] File URL // ppMediaSource: [out] Receives the media source ///////////////////////////////////////////////////////////////////////////////////////// private void CreateMediaSource( string sURL, out IMFMediaSource ppMediaSource) { Debug.WriteLine("CPlayer::CreateMediaSource"); if (sURL == null) { throw new COMException("null pointer", (int)HResult.E_POINTER); } HResult hr; IMFSourceResolver pSourceResolver; object pSourceUnk; hr = MFExtern.MFCreateSourceResolver(out pSourceResolver); MFError.ThrowExceptionForHR(hr); try { // Use the source resolver to create the media source. MFObjectType ObjectType = MFObjectType.Invalid; hr = pSourceResolver.CreateObjectFromURL( sURL, // URL of the source. MFResolution.MediaSource, // Create a source object. null, // Optional property store. out ObjectType, // Receives the created object type. out pSourceUnk // Receives a pointer to the media source. ); MFError.ThrowExceptionForHR(hr); // Get the IMFMediaSource interface from the media source. ppMediaSource = (IMFMediaSource)pSourceUnk; } finally { SafeRelease(pSourceResolver); } }
public HResult EndCreateObject( IMFAsyncResult pResult, out MFObjectType pObjectType, out object ppObject ) { // Make sure we *never* leave this entry point with an exception try { HResult hr; pObjectType = MFObjectType.Invalid; ppObject = null; m_Log.WriteLine("EndCreateObject"); if (pResult == null) { throw new COMException("invalid IMFAsyncResult", (int)HResult.E_INVALIDARG); } hr = pResult.GetObject(out ppObject); MFError.ThrowExceptionForHR(hr); // Minimal sanity check - is it really a media source? IMFMediaSource pSource = (IMFMediaSource)ppObject; pObjectType = MFObjectType.MediaSource; // unneeded SAFE_RELEASE(pSource); // unneeded SAFE_RELEASE(ppObject); return(HResult.S_OK); } catch (Exception e) { ppObject = null; pObjectType = MFObjectType.Invalid; return((HResult)Marshal.GetHRForException(e)); } }
public int EndCreateObject( IMFAsyncResult pResult, out MFObjectType pObjectType, out object ppObject ) { // Make sure we *never* leave this entry point with an exception try { int hr; pObjectType = MFObjectType.Invalid; ppObject = null; m_Log.WriteLine("EndCreateObject"); if (pResult == null) { throw new COMException("invalid IMFAsyncResult", E_InvalidArgument); } hr = pResult.GetObject(out ppObject); MFError.ThrowExceptionForHR(hr); // Minimal sanity check - is it really a media source? IMFMediaSource pSource = (IMFMediaSource)ppObject; pObjectType = MFObjectType.MediaSource; // unneeded SAFE_RELEASE(pSource); // unneeded SAFE_RELEASE(ppObject); return S_Ok; } catch (Exception e) { ppObject = null; pObjectType = MFObjectType.Invalid; return Marshal.GetHRForException(e); } }