overlay/www-client/firefox/files/firefox-pipewire-patch-fpermissive.patch
2020-12-11 14:09:30 +01:00

41 lines
1.9 KiB
Diff

--- a/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
+++ b/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
@@ -42,7 +42,7 @@ const char kRequestInterfaceName[] = "org.freedesktop.portal.Request";
const char kScreenCastInterfaceName[] = "org.freedesktop.portal.ScreenCast";
-static void BaseCapturerPipeWire::SyncDmaBuf(int fd, uint64_t start_or_end) {
+void BaseCapturerPipeWire::SyncDmaBuf(int fd, uint64_t start_or_end) {
struct dma_buf_sync sync = { 0 };
sync.flags = start_or_end | DMA_BUF_SYNC_READ;
@@ -386,21 +386,23 @@ void BaseCapturerPipeWire::HandleBuffer(pw_buffer* buffer) {
map = nullptr;
src = nullptr;
} else if (spaBuffer->datas[0].type == pw_core_type_->data.MemFd) {
- map = mmap(nullptr, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset,
- PROT_READ, MAP_PRIVATE, spaBuffer->datas[0].fd, 0);
+ map = static_cast<uint8_t*>(
+ mmap(nullptr, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset,
+ PROT_READ, MAP_PRIVATE, spaBuffer->datas[0].fd, 0));
src = SPA_MEMBER(map, spaBuffer->datas[0].mapoffset, uint8_t);
} else if (spaBuffer->datas[0].type == pw_core_type_->data.DmaBuf) {
int fd;
fd = spaBuffer->datas[0].fd;
- map = mmap (nullptr, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset,
- PROT_READ, MAP_PRIVATE, fd, 0);
+ map = static_cast<uint8_t*>(
+ mmap (nullptr, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset,
+ PROT_READ, MAP_PRIVATE, fd, 0));
SyncDmaBuf(fd, DMA_BUF_SYNC_START);
src = SPA_MEMBER (map, spaBuffer->datas[0].mapoffset, uint8_t);
} else if (spaBuffer->datas[0].type == pw_core_type_->data.MemPtr) {
map = nullptr;
- src = spaBuffer->datas[0].data;
+ src = static_cast<uint8_t*>(spaBuffer->datas[0].data);
} else {
return;
}