diff --git a/src/kits/media/BufferGroup.cpp b/src/kits/media/BufferGroup.cpp index b19679382b..e589aa30fb 100644 --- a/src/kits/media/BufferGroup.cpp +++ b/src/kits/media/BufferGroup.cpp @@ -284,9 +284,9 @@ BBufferGroup::ReclaimAllBuffers() // this has happened when the "fReclaimSem" can be aquired "fBufferCount" // times - status_t status; + status_t status = B_ERROR; do { - status = acquire_sem_etc(fReclaimSem, count, 0, 0); + status = acquire_sem_etc(fReclaimSem, count, B_RELATIVE_TIMEOUT, 0); } while (status == B_INTERRUPTED); if (status != B_OK) diff --git a/src/kits/media/BufferProducer.cpp b/src/kits/media/BufferProducer.cpp index 3358a7bf75..101bc811ca 100644 --- a/src/kits/media/BufferProducer.cpp +++ b/src/kits/media/BufferProducer.cpp @@ -271,11 +271,11 @@ BBufferProducer::HandleMessage(int32 message, const void* data, size_t size) ? new BBufferGroup(command->buffer_count, command->buffers) : NULL; - if (group == NULL || group->InitCheck() != B_OK) { + if (group != NULL && group->InitCheck() != B_OK) { ERROR("BBufferProducer::HandleMessage PRODUCER_SET_BUFFER_GROUP" " group InitCheck() failed.\n"); delete group; - return B_OK; + group = NULL; } status_t status = SetBufferGroup(command->source, group); if (command->destination == media_destination::null)