From 3157894c1a634d1e125edfe5383e0c54727ea23a Mon Sep 17 00:00:00 2001 From: wangjiyu Date: Wed, 16 Apr 2025 19:07:53 +0800 Subject: [PATCH] debug --- rtc_plugins.cpp | 11 ++++++++--- test_time_r.py | 9 +++++++-- util/RTCContext.cpp | 14 ++++++++++++-- util/RTCContext.h | 3 ++- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/rtc_plugins.cpp b/rtc_plugins.cpp index 7079dc8..565a846 100644 --- a/rtc_plugins.cpp +++ b/rtc_plugins.cpp @@ -51,9 +51,13 @@ int getSize() { return RTCContext::instance().getSize(); } +namespace bp = boost::python; namespace np = boost::python::numpy; -np::ndarray getNumpydata() { - return RTCContext::instance().getNumpydata(); +np::ndarray getNumpyData() { + return RTCContext::instance().getNumpyData(); +} +bp::bytes getByteData() { + return RTCContext::instance().getByteData(); } int16_t getDataCount() { return RTCContext::instance().getDataCount(); @@ -211,7 +215,8 @@ BOOST_PYTHON_MODULE(rtc_plugins) { py::def("sendCustomAudioData", &sendCustomAudioData); py::def("getSize", &getSize); py::def("getData", &getData); - py::def("getNumpyData", &getNumpydata); + py::def("getNumpyData", &getNumpyData); + py::def("getByteData", &getByteData); py::def("getDataCount", &getDataCount); } catch (...) { PyErr_SetString(PyExc_RuntimeError, "Module initialization failed"); diff --git a/test_time_r.py b/test_time_r.py index 95cb85b..d53d1e9 100644 --- a/test_time_r.py +++ b/test_time_r.py @@ -4,6 +4,7 @@ import numpy as np import mmap import os from ctypes import c_int16 +import struct srcUserId = "srcUser12" destUserId = "destUser12" @@ -43,8 +44,12 @@ while True: print("resend succ") size = rtc_plugins.getSize() print(f"data size:{size}") - frame = rtc_plugins.getNumpyData() - print(f"frame:{frame}") + #frame = rtc_plugins.getNumpyData() + frame = rtc_plugins.getByteData() + print("get frame") + samples = struct.unpack(f"{len(data_bytes)//2}h", data_bytes) + #print(f"get samples:{samples}") + print("get samples") dataCount = rtc_plugins.getDataCount() print(f"data count:{dataCount}") time.sleep(0.005) diff --git a/util/RTCContext.cpp b/util/RTCContext.cpp index 8005dd1..ad8cda1 100644 --- a/util/RTCContext.cpp +++ b/util/RTCContext.cpp @@ -701,7 +701,7 @@ RetAudioFrame RTCContext::getData() { } namespace bp = boost::python; namespace np = boost::python::numpy; -np::ndarray RTCContext::getNumpydata() { +np::ndarray RTCContext::getNumpyData() { std::cout << "step1" << std::endl; std::lock_guard lock(dataMutex_); RetAudioFrame frame = getData(); @@ -728,7 +728,17 @@ np::ndarray RTCContext::getNumpydata() { return result; } - +bp::bytes RTCContext::getByteData() { + std::cout << "step1" << std::endl; + std::lock_guard lock(dataMutex_); + RetAudioFrame frame = getData(); + std::cout << "step2" << std::endl; + int16_t* data_ptr = frame.data.get(); // 你的数据指针 + std::cout << "step3" << std::endl; + size_t length = frame.dataCount; // 数据长度 + std::cout << "step4" << std::endl; + return bp::bytes(reinterpret_cast(data_ptr), length * sizeof(int16_t)); +} int16_t RTCContext::getDataCount() { std::lock_guard lock(dataMutex_); RetAudioFrame frame = getData(); diff --git a/util/RTCContext.h b/util/RTCContext.h index c9679cb..3db068c 100644 --- a/util/RTCContext.h +++ b/util/RTCContext.h @@ -99,7 +99,8 @@ public: int16_t getSize(); void setData(const mrtc::MRTCAudioFrame& frame); RetAudioFrame getData(); - np::ndarray getNumpydata(); + np::ndarray getNumpyData(); + bp::bytes getByteData(); int16_t getDataCount(); void* getpData() const;