File tree Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -54,6 +54,8 @@ class A2DPConfig {
54
54
int delay_ms = 1 ;
55
55
// / when a2dp source is active but has no data we generate silence data
56
56
bool silence_on_nodata = false ;
57
+ // / write timeout in ms: -1 is blocking write
58
+ int tx_write_timeout_ms = -1 ; // no timeout
57
59
};
58
60
59
61
@@ -229,10 +231,16 @@ class A2DPStream : public AudioStream, public VolumeSupport {
229
231
}
230
232
231
233
// blocking write: if buffer is full we wait
234
+ int timeout = config.tx_write_timeout_ms ;
235
+ int wait_time = 5 ;
232
236
size_t free = a2dp_buffer.availableForWrite ();
233
237
while (len > free){
234
238
LOGD (" Waiting for buffer: writing %d > available %d" , (int ) len, (int ) free);
235
- delay (5 );
239
+ if (timeout > 0 ) {
240
+ timeout -= wait_time;
241
+ if (timeout <= 0 ) return 0 ;
242
+ }
243
+ delay (wait_time);
236
244
free = a2dp_buffer.availableForWrite ();
237
245
}
238
246
}
You can’t perform that action at this time.
0 commit comments