private void RecieveDataCallback(IntPtr buf, int bufsize, bool isheaderdata) { var bytes = new byte[bufsize]; Marshal.Copy(buf, bytes, 0, bufsize); var dir = string.Format("{0}\\RecordFiles", Directory.GetCurrentDirectory()); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } if (isheaderdata) { if (writer != null) { writer.Close(); writer = null; } _path = string.Format("{0}\\recordFile{1}.mkv", dir, _count); writer = new BinaryWriter(File.Open(_path, FileMode.Append)); _count++; } if (_path != string.Empty) { writer.Write(bytes); } _fileSize += bufsize; if (_fileSize > 104857600) { RtspRecorder.WriteHeader(_rtspPath); _fileSize = 0; } }
private void RecieveDataCallback(IntPtr buf, int bufSize, bool isHeaderData) { var bytes = new byte[bufSize]; Marshal.Copy(buf, bytes, 0, bufSize); var dir = string.Format("{0}\\RecordFiles", Directory.GetCurrentDirectory()); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } if (isHeaderData) { if (writer != null) { writer.Close(); if (fsStream != null) { fsStream.Close(); } } _path = string.Format("{0}\\recordFile{1}.mkv", dir, _count); fsStream = new FileStream(_path, FileMode.Append); writer = new BinaryWriter(fsStream, Encoding.UTF8); _count++; _isHeaderCall = false; } if (_path != string.Empty) { writer.Write(bytes); } _fileSize += bufSize; if (_fileSize > 10000000 && !_isHeaderCall) { RtspRecorder.WriteHeader(_rtspPath); _isHeaderCall = true; _fileSize = 0; } }