public void PushFrame(IFrameInfo info, IFrameSound frame) { if (info == null) { throw new ArgumentNullException("info"); } if (frame == null) { throw new ArgumentNullException("frame"); } if (IsSynchronized) { WaitFrame(); } var buffer = LockBuffer(); if (buffer == null) { return; } var srcBuffer = frame.GetBuffer(); fixed(uint *pSrc = srcBuffer) fixed(byte *pbDst = buffer) { NativeMethods.CopyMemory((uint *)pbDst, pSrc, buffer.Length); } UnlockBuffer(buffer); }
public void PushFrame(IFrameInfo info, IFrameSound frame) { if (info == null) { throw new ArgumentNullException("info"); } if (frame == null) { throw new ArgumentNullException("frame"); } if (IsSynchronized) { WaitFrame(); } var buffer = LockBuffer(); if (buffer == null) { return; } var srcBuffer = frame.GetBuffer(); Array.Copy(srcBuffer, buffer, buffer.Length); UnlockBuffer(buffer); }
public void PushFrame( IFrameInfo infoFrame, IFrameVideo videoFrame, IFrameSound soundFrame) //IVideoFrame videoFrame, ISoundFrame soundFrame) { if (_threadRecord == null) { return; } var frame = new MediaFrame(); frame.Width = videoFrame.Size.Width; frame.Height = videoFrame.Size.Height; frame.Ratio = videoFrame.Ratio; frame.Image = new int[frame.Width * frame.Height]; Array.Copy(videoFrame.Buffer, frame.Image, frame.Image.Length); frame.SampleRate = _sampleRate;// soundFrame.SampleRate; //frame.Audio = new uint[frame.SampleRate / 50]; //Array.Copy(soundFrame.Buffer, frame.Audio, frame.Audio.Length); _queueMP4.Enqueue(frame); // Process audio... var bufferSrc = soundFrame.GetBuffer(); var bufferWr = new uint[bufferSrc.Length]; Array.Copy(bufferSrc, bufferWr, bufferSrc.Length); _queueWAV.Enqueue(bufferWr); _eventFrame.Set(); }
public void PushFrame(IFrameInfo info, IFrameVideo videoFrame, IFrameSound soundFrame) { if (_threadRecord == null) { return; } var bufferSrc = soundFrame.GetBuffer(); var bufferWr = new uint[bufferSrc.Length]; Array.Copy(bufferSrc, bufferWr, bufferSrc.Length); _queue.Enqueue(bufferWr); _eventFrame.Set(); }