/// <summary> /// Instantiates a new instance <see cref="ByteStream"/> from a <see cref="Stream"/>. /// </summary> /// <msdn-id>hh162754</msdn-id> /// <unmanaged>HRESULT MFCreateMFByteStreamOnStreamEx([In] IUnknown* punkStream,[Out] IMFByteStream** ppByteStream)</unmanaged> /// <unmanaged-short>MFCreateMFByteStreamOnStreamEx</unmanaged-short> public ByteStream(ComStream sourceStream) { this.comStream = sourceStream; IByteStream localStream; MediaFactory.CreateMFByteStreamOnStream(sourceStream.NativePointer, out localStream); NativePointer = ((ByteStream)localStream).NativePointer; }
/// <summary> /// Instantiates a new instance <see cref="ByteStream"/> from a <see cref="Stream"/>. /// </summary> /// <msdn-id>hh162754</msdn-id> /// <unmanaged>HRESULT MFCreateMFByteStreamOnStreamEx([In] IUnknown* punkStream,[Out] IMFByteStream** ppByteStream)</unmanaged> /// <unmanaged-short>MFCreateMFByteStreamOnStreamEx</unmanaged-short> public ByteStream(Stream sourceStream) { this.sourceStream = sourceStream; #if STORE_APP var randomAccessStream = sourceStream.AsRandomAccessStream(); MediaFactory.CreateMFByteStreamOnStreamEx(new ComObject(Marshal.GetIUnknownForObject(randomAccessStream)), this); #else streamProxy = new ComStreamProxy(sourceStream); MediaFactory.CreateMFByteStreamOnStream(streamProxy, this); #endif }
/// <summary> /// Instantiates a new instance <see cref="ByteStream"/> from a <see cref="Stream"/>. /// </summary> /// <msdn-id>hh162754</msdn-id> /// <unmanaged>HRESULT MFCreateMFByteStreamOnStreamEx([In] IUnknown* punkStream,[Out] IMFByteStream** ppByteStream)</unmanaged> /// <unmanaged-short>MFCreateMFByteStreamOnStreamEx</unmanaged-short> public ByteStream(byte[] sourceStream) { var hglobal = Marshal.AllocHGlobal(sourceStream.Length); Marshal.Copy(sourceStream, 0, hglobal, sourceStream.Length); CreateStreamOnHGlobal(hglobal, true, out istream); IntPtr result; MediaFactory.CreateMFByteStreamOnStream(istream, out result); NativePointer = result; }
/// <summary> /// Instantiates a new instance <see cref="ByteStream"/> from a <see cref="Stream"/>. /// </summary> /// <msdn-id>hh162754</msdn-id> /// <unmanaged>HRESULT MFCreateMFByteStreamOnStreamEx([In] IUnknown* punkStream,[Out] IMFByteStream** ppByteStream)</unmanaged> /// <unmanaged-short>MFCreateMFByteStreamOnStreamEx</unmanaged-short> protected ByteStream(Stream sourceStream) { this.sourceStream = sourceStream; #if STORE_APP var randomAccessStream = sourceStream.AsRandomAccessStream(); randomAccessStreamCom = new ComObject(Marshal.GetIUnknownForObject(randomAccessStream)); MediaFactory.CreateMFByteStreamOnStreamEx(randomAccessStreamCom, this); #else streamProxy = new ComStreamProxy(sourceStream); MediaFactory.CreateMFByteStreamOnStream(ComStream.ToIntPtr(streamProxy), this); #endif }
/// <summary> /// Instantiates a new instance <see cref="ByteStream"/> from a <see cref="Stream"/>. /// </summary> /// <msdn-id>hh162754</msdn-id> /// <unmanaged>HRESULT MFCreateMFByteStreamOnStreamEx([In] IUnknown* punkStream,[Out] IMFByteStream** ppByteStream)</unmanaged> /// <unmanaged-short>MFCreateMFByteStreamOnStreamEx</unmanaged-short> public ByteStream(Stream sourceStream) { this.sourceStream = sourceStream; #if WIN8METRO var randomAccessStream = sourceStream.AsRandomAccessStream(); randomAccessStreamCom = new ComObject(Marshal.GetIUnknownForObject(randomAccessStream)); MediaFactory.CreateMFByteStreamOnStreamEx(randomAccessStreamCom, this); #else streamProxy = new ComStreamProxy(sourceStream); IByteStream localStream; MediaFactory.CreateMFByteStreamOnStream(ComStream.ToIntPtr(streamProxy), out localStream); NativePointer = ((ByteStream)localStream).NativePointer; #endif }
/// <summary> /// Instantiates a new instance <see cref="ByteStream"/> from a <see cref="Stream"/>. /// </summary> /// <msdn-id>hh162754</msdn-id> /// <unmanaged>HRESULT MFCreateMFByteStreamOnStreamEx([In] IUnknown* punkStream,[Out] IMFByteStream** ppByteStream)</unmanaged> /// <unmanaged-short>MFCreateMFByteStreamOnStreamEx</unmanaged-short> public ByteStream(ComStream sourceStream) { this.comStream = sourceStream; MediaFactory.CreateMFByteStreamOnStream(sourceStream, this); }