summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--v4l2-apps/libv4l/ChangeLog2
-rw-r--r--v4l2-apps/libv4l/libv4lconvert/control/libv4lcontrol.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/v4l2-apps/libv4l/ChangeLog b/v4l2-apps/libv4l/ChangeLog
index 6081e26cf..ebe34fb7f 100644
--- a/v4l2-apps/libv4l/ChangeLog
+++ b/v4l2-apps/libv4l/ChangeLog
@@ -1,6 +1,8 @@
libv4l-0.5.98
-------------
* Genius E-M 112 needs both upside down and whitebalance flags
+* Some makefile improvements by Gregor Jasny
+* If the card name contains a / replace it with a - in the shm name
libv4l-0.5.97
-------------
diff --git a/v4l2-apps/libv4l/libv4lconvert/control/libv4lcontrol.c b/v4l2-apps/libv4l/libv4lconvert/control/libv4lcontrol.c
index ff9b3b5c1..4834c786a 100644
--- a/v4l2-apps/libv4l/libv4lconvert/control/libv4lcontrol.c
+++ b/v4l2-apps/libv4l/libv4lconvert/control/libv4lcontrol.c
@@ -172,7 +172,7 @@ static void v4lcontrol_init_flags(struct v4lcontrol_data *data)
struct v4lcontrol_data *v4lcontrol_create(int fd)
{
int shm_fd;
- int init = 0;
+ int i, init = 0;
char *s, shm_name[256];
struct v4l2_capability cap;
@@ -184,6 +184,11 @@ struct v4lcontrol_data *v4lcontrol_create(int fd)
syscall(SYS_ioctl, fd, VIDIOC_QUERYCAP, &cap);
snprintf(shm_name, 256, "/%s:%s", cap.bus_info, cap.card);
+ /* / is not allowed inside shm names */
+ for (i = 1; shm_name[i]; i++)
+ if (shm_name[i] == '/')
+ shm_name[i] = '-';
+
/* Open the shared memory object identified by shm_name */
if ((shm_fd = shm_open(shm_name, (O_CREAT | O_EXCL | O_RDWR),
(S_IREAD | S_IWRITE))) >= 0)