mirror of
https://github.com/barry-ran/QtScrcpy.git
synced 2025-04-21 12:04:59 +00:00
fix: screenshot by render frame
This commit is contained in:
parent
3a2f82a027
commit
0ebe3d3198
4 changed files with 15 additions and 9 deletions
|
@ -105,6 +105,11 @@ const AVFrame *VideoBuffer::consumeRenderedFrame()
|
|||
return m_renderingframe;
|
||||
}
|
||||
|
||||
const AVFrame *VideoBuffer::peekRenderedFrame()
|
||||
{
|
||||
return m_renderingframe;
|
||||
}
|
||||
|
||||
void VideoBuffer::interrupt()
|
||||
{
|
||||
if (m_renderExpiredFrames) {
|
||||
|
|
|
@ -32,6 +32,8 @@ public:
|
|||
// unlocking m_mutex
|
||||
const AVFrame* consumeRenderedFrame();
|
||||
|
||||
const AVFrame* peekRenderedFrame();
|
||||
|
||||
// wake up and avoid any blocking call
|
||||
void interrupt();
|
||||
|
||||
|
|
|
@ -105,7 +105,14 @@ void Device::updateScript(QString script)
|
|||
|
||||
void Device::onScreenshot()
|
||||
{
|
||||
m_screenshot = true;
|
||||
if (!m_vb) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_vb->lock();
|
||||
// screenshot
|
||||
saveFrame(m_vb->peekRenderedFrame());
|
||||
m_vb->unLock();
|
||||
}
|
||||
|
||||
void Device::initSignals()
|
||||
|
@ -201,12 +208,6 @@ void Device::initSignals()
|
|||
if (m_videoForm) {
|
||||
m_videoForm->updateRender(frame);
|
||||
}
|
||||
|
||||
// screenshot
|
||||
if (m_screenshot) {
|
||||
saveFrame(frame);
|
||||
m_screenshot = false;
|
||||
}
|
||||
m_vb->unLock();
|
||||
},Qt::QueuedConnection);
|
||||
}
|
||||
|
|
|
@ -65,8 +65,6 @@ private:
|
|||
|
||||
QTime m_startTimeCount;
|
||||
DeviceParams m_params;
|
||||
|
||||
bool m_screenshot = false;
|
||||
};
|
||||
|
||||
#endif // DEVICE_H
|
||||
|
|
Loading…
Add table
Reference in a new issue