[all] align the frame data to the page boundary

This commit is contained in:
Geoffrey McRae
2020-01-13 19:17:09 +11:00
parent 17df1ebc6b
commit 9846762991
5 changed files with 9 additions and 4 deletions

View File

@@ -109,6 +109,7 @@ static int frameThread(void * opaque)
bool repeatFrame = false;
int frameIndex = 0;
CaptureFrame frame = { 0 };
const long pageSize = sysinfo_getPageSize();
(void)frameIndex;
(void)repeatFrame;
@@ -182,9 +183,12 @@ static int frameThread(void * opaque)
fi->height = frame.height;
fi->stride = frame.stride;
fi->pitch = frame.pitch;
fi->offset = pageSize - sizeof(FrameBuffer);
frameValid = true;
FrameBuffer fb = (FrameBuffer)(fi + 1);
// put the framebuffer on the border of the next page
// this is to allow for aligned DMA transfers by the receiver
FrameBuffer fb = (FrameBuffer)(((uint8_t*)fi) + fi->offset);
framebuffer_prepare(fb);
/* we post and then get the frame, this is intentional! */