1. 상황
ffmpeg 디코더로 인코딩된 데이터를 넘기기 전에 제대로 된 데이터가 들어오는지 검증하기 위하여
파일로 써서 팟플레이어나 VLC로 확인하려고 했다.
이벤트가 발생할 때 IntPtr 형태로 포인터가 넘어오는 상태였고 이 포인터가 가리키는 바이너리 데이터를 파일로 써야 했다.
2. 사용한 방법
Marshal.Copy를 이용하여 byte 배열에 데이터를 복사하고
FileStream으로 Write하였다.
byte[] data = new byte[streamLen];
Marshal.Copy(streamData, data, 0, (int)streamLen);
string fileName = "test.ts";
using (FileStream test = new FileStream(fileName, FileMode.Append, FileAccess.Write))
{
test.Write(data, 0, (int)streamLen);
}
https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.marshal.copy?view=net-6.0
'일하면서 사용한 짧은 지식 > C#' 카테고리의 다른 글
Thread와 ThreadPool 중 선택하기 (0) | 2021.09.11 |
---|