aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil-cisco@xs4all.nl>2021-03-26 13:18:09 +0100
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2021-03-26 13:18:09 +0100
commitf0f1641486ded51920abda7bccd503394b561837 (patch)
tree9d6a919d76b5095fa91910b3b218b29d4d7bd859
parent162d4e7221ca1dc27b8025e988b34ce3b58855e8 (diff)
downloadv4l-utils-f0f1641486ded51920abda7bccd503394b561837.tar.gz
qv4l2: fallback if window()->windowHandle() == NULL
window()->windowHandle() can return NULL, in that case fallback to a 1920x1080 screen resolution. Still better than a crash. Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
-rw-r--r--utils/qv4l2/capture-win.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/utils/qv4l2/capture-win.cpp b/utils/qv4l2/capture-win.cpp
index fad5b8c2..5667e7e7 100644
--- a/utils/qv4l2/capture-win.cpp
+++ b/utils/qv4l2/capture-win.cpp
@@ -244,8 +244,14 @@ void CaptureWin::setWindowSize(QSize frameSize)
QDesktopWidget *screen = QApplication::desktop();
QRect resolution = screen->screenGeometry();
#else
- QScreen *screen = window()->windowHandle()->screen();
- QSize resolution = screen->availableSize();
+ QSize resolution(1920, 1080);
+
+ // window()->windowHandle() can be NULL, for example when
+ // using X11 forwarding.
+ if (window()->windowHandle()) {
+ QScreen *screen = window()->windowHandle()->screen();
+ resolution = screen->availableSize();
+ }
#endif
QSize windowSize = pixelAspectFrameSize(cropSize(frameSize)) + margins;