diff --git a/src/apps/mediaplayer/VideoNode.cpp b/src/apps/mediaplayer/VideoNode.cpp index b7c2387b32..26c35708d1 100644 --- a/src/apps/mediaplayer/VideoNode.cpp +++ b/src/apps/mediaplayer/VideoNode.cpp @@ -299,7 +299,14 @@ VideoNode::HandleBuffer(BBuffer *buffer) LockBitmap(); if (fBitmap) { // bigtime_t start = system_time(); - memcpy(fBitmap->Bits(), buffer->Data(), fBitmap->BitsLength()); + if (fOverlayActive) { + if (B_OK == fBitmap->LockBits()) { + memcpy(fBitmap->Bits(), buffer->Data(), fBitmap->BitsLength()); + fBitmap->UnlockBits(); + } + } else { + memcpy(fBitmap->Bits(), buffer->Data(), fBitmap->BitsLength()); + } // printf("overlay copy: %Ld usec\n", system_time() - start); } UnlockBitmap();