mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-12-24 01:06:46 +08:00
[feat] upgrade MiniRTC and expose source ID in data callbacks
This commit is contained in:
@@ -202,14 +202,17 @@ class Render {
|
||||
public:
|
||||
static void OnReceiveVideoBufferCb(const XVideoFrame* video_frame,
|
||||
const char* user_id, size_t user_id_size,
|
||||
const char* src_id, size_t src_id_size,
|
||||
void* user_data);
|
||||
|
||||
static void OnReceiveAudioBufferCb(const char* data, size_t size,
|
||||
const char* user_id, size_t user_id_size,
|
||||
const char* src_id, size_t src_id_size,
|
||||
void* user_data);
|
||||
|
||||
static void OnReceiveDataBufferCb(const char* data, size_t size,
|
||||
const char* user_id, size_t user_id_size,
|
||||
const char* src_id, size_t src_id_size,
|
||||
void* user_data);
|
||||
|
||||
static void OnSignalStatusCb(SignalStatus status, const char* user_id,
|
||||
|
||||
@@ -216,6 +216,7 @@ void Render::SdlCaptureAudioOut([[maybe_unused]] void* userdata,
|
||||
|
||||
void Render::OnReceiveVideoBufferCb(const XVideoFrame* video_frame,
|
||||
const char* user_id, size_t user_id_size,
|
||||
const char* src_id, size_t src_id_size,
|
||||
void* user_data) {
|
||||
Render* render = (Render*)user_data;
|
||||
if (!render) {
|
||||
@@ -283,6 +284,7 @@ void Render::OnReceiveVideoBufferCb(const XVideoFrame* video_frame,
|
||||
|
||||
void Render::OnReceiveAudioBufferCb(const char* data, size_t size,
|
||||
const char* user_id, size_t user_id_size,
|
||||
const char* src_id, size_t src_id_size,
|
||||
void* user_data) {
|
||||
Render* render = (Render*)user_data;
|
||||
if (!render) {
|
||||
@@ -302,16 +304,19 @@ void Render::OnReceiveAudioBufferCb(const char* data, size_t size,
|
||||
|
||||
void Render::OnReceiveDataBufferCb(const char* data, size_t size,
|
||||
const char* user_id, size_t user_id_size,
|
||||
const char* src_id, size_t src_id_size,
|
||||
void* user_data) {
|
||||
Render* render = (Render*)user_data;
|
||||
if (!render) {
|
||||
return;
|
||||
}
|
||||
|
||||
// try to parse as file-transfer chunk first
|
||||
static FileReceiver receiver;
|
||||
if (receiver.OnData(data, size)) {
|
||||
return;
|
||||
std::string source_id = std::string(src_id, src_id_size);
|
||||
LOG_ERROR("Receive from source [{}]", source_id);
|
||||
if (source_id == "file") {
|
||||
// try to parse as file-transfer chunk first
|
||||
static FileReceiver receiver;
|
||||
receiver.OnData(data, size);
|
||||
}
|
||||
|
||||
std::string json_str(data, size);
|
||||
|
||||
@@ -165,6 +165,7 @@ std::filesystem::path FileReceiver::GetDefaultDesktopPath() {
|
||||
}
|
||||
|
||||
bool FileReceiver::OnData(const char* data, size_t size) {
|
||||
LOG_ERROR("FileReceiver::OnData: size={}", size);
|
||||
if (!data || size < sizeof(FileChunkHeader)) {
|
||||
LOG_ERROR("FileReceiver::OnData: invalid buffer");
|
||||
return false;
|
||||
|
||||
Submodule submodules/minirtc updated: 04e1af6331...bfc9b0c9d4
Reference in New Issue
Block a user