Tue Sep 05, 2023 8:41 am
Hello, I'm working with decklink duo 2 on C# net core 6. I'm trying to get bitmap data for image processing , but it doesn't work. Please help me!
public void InputVideoFrameArrived(object sender, DeckLinkDeviceInputVideoFrameEventArgs e)
{
if (e.videoFrame.GetFlags().HasFlag(_BMDFrameFlags.bmdFrameHasNoInputSource))
return;
FPSCount++;
double T = DateTime.Now.Subtract(TimeStart).TotalMilliseconds;
if (T > 1000)
{
Debug.WriteLine("FPS: " + (int)(FPSCount * 1000.0f / T));
TimeStart = DateTime.Now;
FPSCount = 0;
}
byte[] mediaFrameBuffer = { };
IntPtr srcPtr;
e.videoFrame.GetBytes(out srcPtr);
System.Runtime.InteropServices.Marshal.Copy(srcPtr, mediaFrameBuffer, 0, e.videoFrame.GetHeight() * e.videoFrame.GetWidth());
System.Runtime.InteropServices.Marshal.ReleaseComObject(e.videoFrame);
Bitmap bmp;
using (var ms = new MemoryStream(mediaFrameBuffer))
{
bmp = new Bitmap(ms);
}
}