summaryrefslogtreecommitdiff
path: root/kms++util/src
diff options
context:
space:
mode:
Diffstat (limited to 'kms++util/src')
-rw-r--r--kms++util/src/videodevice.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/kms++util/src/videodevice.cpp b/kms++util/src/videodevice.cpp
index 23f45d4..89a7286 100644
--- a/kms++util/src/videodevice.cpp
+++ b/kms++util/src/videodevice.cpp
@@ -248,7 +248,8 @@ VideoDevice::VideoDevice(const string& dev)
VideoDevice::VideoDevice(int fd)
: m_fd(fd), m_has_capture(false), m_has_output(false), m_has_m2m(false), m_capture_streamer(0), m_output_streamer(0)
{
- FAIL_IF(fd < 0, "Bad fd");
+ if (fd < 0)
+ throw runtime_error("bad fd");
struct v4l2_capability cap = { };
int r = ioctl(fd, VIDIOC_QUERYCAP, &cap);
@@ -370,10 +371,13 @@ vector<string> VideoDevice::get_capture_devices()
if (stat(name.c_str(), &buffer) != 0)
continue;
- VideoDevice vid(name);
+ try {
+ VideoDevice vid(name);
- if (vid.has_capture() && !vid.has_m2m())
- v.push_back(name);
+ if (vid.has_capture() && !vid.has_m2m())
+ v.push_back(name);
+ } catch (...) {
+ }
}
return v;
@@ -390,10 +394,13 @@ vector<string> VideoDevice::get_m2m_devices()
if (stat(name.c_str(), &buffer) != 0)
continue;
- VideoDevice vid(name);
+ try {
+ VideoDevice vid(name);
- if (vid.has_m2m())
- v.push_back(name);
+ if (vid.has_m2m())
+ v.push_back(name);
+ } catch (...) {
+ }
}
return v;