Correctly check when the BBuffer failed the registration with the server.
Signed-off-by: Adrien Destugues <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
4232706dc8
commit
384ae40aa5
@@ -42,8 +42,10 @@ BufferCache::GetBuffer(media_buffer_id id)
|
|||||||
buffer_clone_info info;
|
buffer_clone_info info;
|
||||||
info.buffer = id;
|
info.buffer = id;
|
||||||
BBuffer* buffer = new(std::nothrow) BBuffer(info);
|
BBuffer* buffer = new(std::nothrow) BBuffer(info);
|
||||||
if (buffer == NULL)
|
if (buffer == NULL || buffer->Data() == NULL) {
|
||||||
|
delete buffer;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
fMap.insert(std::make_pair(id, buffer));
|
fMap.insert(std::make_pair(id, buffer));
|
||||||
|
|||||||
@@ -385,14 +385,19 @@ BBufferConsumer::HandleMessage(int32 message, const void* data, size_t size)
|
|||||||
= static_cast<const consumer_buffer_received_command*>(data);
|
= static_cast<const consumer_buffer_received_command*>(data);
|
||||||
|
|
||||||
BBuffer* buffer = fBufferCache->GetBuffer(command->buffer);
|
BBuffer* buffer = fBufferCache->GetBuffer(command->buffer);
|
||||||
buffer->SetHeader(&command->header);
|
if (buffer == NULL) {
|
||||||
|
ERROR("BBufferConsumer::CONSUMER_BUFFER_RECEIVED can't"
|
||||||
|
"find the buffer\n");
|
||||||
|
} else {
|
||||||
|
buffer->SetHeader(&command->header);
|
||||||
|
|
||||||
PRINT(4, "calling BBufferConsumer::BufferReceived buffer %ld at "
|
PRINT(4, "calling BBufferConsumer::BufferReceived buffer %ld "
|
||||||
"perf %Ld and TimeSource()->Now() is %Ld\n",
|
"at perf %Ld and TimeSource()->Now() is %Ld\n",
|
||||||
buffer->Header()->buffer, buffer->Header()->start_time,
|
buffer->Header()->buffer, buffer->Header()->start_time,
|
||||||
TimeSource()->Now());
|
TimeSource()->Now());
|
||||||
|
|
||||||
BufferReceived(buffer);
|
BufferReceived(buffer);
|
||||||
|
}
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user