From 26d7f4628015d4b7ba8bc7e4856d0e17fb389a0b Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Sat, 25 Feb 2012 13:12:56 +0100 Subject: [PATCH] spark: make cVideo::openDevice ignorem ultiple calls --- libspark/video.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libspark/video.cpp b/libspark/video.cpp index 06b6d48..635a69f 100644 --- a/libspark/video.cpp +++ b/libspark/video.cpp @@ -140,6 +140,7 @@ cVideo::cVideo(int, void *, void *) //outputformat = VID_OUTFMT_RGBC_SVIDEO; scartvoltage = -1; video_standby = 0; + fd = -1; } cVideo::~cVideo(void) @@ -151,6 +152,10 @@ cVideo::~cVideo(void) void cVideo::openDevice(void) { + lt_debug("%s\n", __func__); + /* todo: this fd checking is racy, should be protected by a lock */ + if (fd != -1) /* already open */ + return; if ((fd = open(VIDEO_DEVICE, O_RDWR)) < 0) lt_info("%s cannot open %s: %m\n", __FUNCTION__, VIDEO_DEVICE); fcntl(fd, F_SETFD, FD_CLOEXEC); @@ -159,6 +164,7 @@ void cVideo::openDevice(void) void cVideo::closeDevice(void) { + lt_debug("%s\n", __func__); if (fd >= 0) close(fd); fd = -1;