plugins/screencast: Properly mark pw buffers as corrupted

wilder/Plasma/6.2
Vlad Zahorodnii 2 years ago
parent 01fa6c0af0
commit afbb878fca
  1. 3
      src/plugins/screencast/screencaststream.cpp

@ -507,7 +507,6 @@ void ScreenCastStream::recordFrame(const QRegion &_damagedRegion)
}
struct pw_buffer *buffer = pw_stream_dequeue_buffer(m_pwStream);
if (!buffer) {
return;
}
@ -518,6 +517,7 @@ void ScreenCastStream::recordFrame(const QRegion &_damagedRegion)
uint8_t *data = (uint8_t *)spa_data->data;
if (!data && spa_buffer->datas->type != SPA_DATA_DmaBuf) {
qCWarning(KWIN_SCREENCAST) << "Failed to record frame: invalid buffer data";
spa_data->chunk->flags = SPA_CHUNK_FLAG_CORRUPTED;
pw_stream_queue_buffer(m_pwStream, buffer);
return;
}
@ -531,6 +531,7 @@ void ScreenCastStream::recordFrame(const QRegion &_damagedRegion)
if ((stride * size.height()) > spa_data->maxsize) {
qCDebug(KWIN_SCREENCAST) << "Failed to record frame: frame is too big";
spa_data->chunk->flags = SPA_CHUNK_FLAG_CORRUPTED;
pw_stream_queue_buffer(m_pwStream, buffer);
return;
}

Loading…
Cancel
Save