diff options
Diffstat (limited to 'kms++util/src')
-rw-r--r-- | kms++util/src/videodevice.cpp | 21 |
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; |