Message ID | 20240606162903.620906-1-luiz.dentz@gmail.com |
---|---|
State | New |
Headers | show |
Series | [BlueZ,v1] isotest: Fix ISO send data rate | expand |
Hello: This patch was applied to bluetooth/bluez.git (master) by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: On Thu, 6 Jun 2024 12:29:03 -0400 you wrote: > From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> > > We are sending data to controller at wrong average rate not equal to > 1 packet / SDU interval, if Transport_Latency is not an integer multiple > of SDU_Interval. The calculation currently may also give zero, so no > data gets sent. > > [...] Here is the summary with links: - [BlueZ,v1] isotest: Fix ISO send data rate https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=272d8e8c9599 You are awesome, thank you!
diff --git a/tools/isotest.c b/tools/isotest.c index 68154b19caa4..c1bb6abd29aa 100644 --- a/tools/isotest.c +++ b/tools/isotest.c @@ -46,6 +46,7 @@ #define NSEC_USEC(_t) (_t / 1000L) #define SEC_USEC(_t) (_t * 1000000L) #define TS_USEC(_ts) (SEC_USEC((_ts)->tv_sec) + NSEC_USEC((_ts)->tv_nsec)) +#define ROUND_CLOSEST(_x, _y) (((_x) + (_y / 2)) / (_y)) #define DEFAULT_BIG_ID 0x01 #define DEFAULT_BIS_ID 0x01 @@ -834,7 +835,9 @@ static void do_send(int sk, int fd, char *peer, bool repeat) } /* num of packets = latency (ms) / interval (us) */ - num = (out->latency * 1000 / out->interval); + num = ROUND_CLOSEST(out->latency * 1000, out->interval); + if (!num) + num = 1; syslog(LOG_INFO, "Number of packets: %d", num); @@ -843,8 +846,7 @@ static void do_send(int sk, int fd, char *peer, bool repeat) * latency: * jitter buffer = 2 * (SDU * subevents) */ - sndbuf = 2 * ((out->latency * 1000 / out->interval) * - out->sdu); + sndbuf = 2 * (num * out->sdu); len = sizeof(sndbuf); if (setsockopt(sk, SOL_SOCKET, SO_SNDBUF, &sndbuf, len) < 0) {
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> We are sending data to controller at wrong average rate not equal to 1 packet / SDU interval, if Transport_Latency is not an integer multiple of SDU_Interval. The calculation currently may also give zero, so no data gets sent. --- tools/isotest.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)