Audio stream: cleanup dead streams while searching for an empty slot

This commit is contained in:
Silvano Seva 2023-08-27 12:47:55 +02:00
parent e610979ac7
commit fc5e3b0bce
1 changed files with 11 additions and 0 deletions

View File

@ -98,6 +98,17 @@ streamId audioStream_start(const pathId path, stream_sample_t * const buf,
streamId id = -1;
for(size_t i = 0; i < MAX_NUM_STREAMS; i++)
{
// While searching, cleanup dead streams
if(streams[i].path > 0)
{
if(audioPath_getStatus(streams[i].path) != PATH_OPEN)
{
streams[i].dev->driver->terminate(&(streams[i].ctx));
streams[i].path = 0;
}
}
// Empty stream found
if((streams[i].path <= 0) && (streams[i].ctx.running == 0))
id = i;
}