public override int OnReceive(ref IMediaSampleImpl _sample) { HRESULT hr = (HRESULT)CheckStreaming(); if (hr != S_OK) return hr; return (m_Filter as DumpFilter).OnReceive(ref _sample); }
public int OnReceive(ref IMediaSampleImpl _sample) { lock (m_Lock) { if (m_Stream == null && m_sFileName != "") { m_Stream = new FileStream(m_sFileName, FileMode.Create, FileAccess.Write, FileShare.Read); } int _length = _sample.GetActualDataLength(); if (m_Stream != null && _length > 0) { byte[] _data = new byte[_length]; IntPtr _ptr; _sample.GetPointer(out _ptr); Marshal.Copy(_ptr, _data, 0, _length); m_Stream.Write(_data, 0, _length); } } return S_OK; }