summaryrefslogtreecommitdiff
blob: df03c3125cebad279096827f783ac69d8d92bdf6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
--- v4l2loopback.c.orig	2013-04-01 21:38:26.998046315 +0200
+++ v4l2loopback.c	2013-04-01 22:07:51.838982767 +0200
@@ -38,11 +38,11 @@ void * v4l2l_vzalloc (	unsigned long siz
 #include <linux/sched.h>
 #include <linux/slab.h>
 
-#define V4L2LOOPBACK_VERSION_CODE KERNEL_VERSION(0,6,3)
+#define V4L2LOOPBACK_VERSION_CODE KERNEL_VERSION(1,0,3)
 
 
-MODULE_DESCRIPTION("V4L2 loopback video device");
-MODULE_AUTHOR("Vasily Levin, IOhannes m zmoelnig <zmoelnig@iem.at>, Stefan Diewald, Anton Novikov");
+MODULE_DESCRIPTION("Webcamstudio video device");
+MODULE_AUTHOR("Vasily Levin, IOhannes m zmoelnig <zmoelnig@iem.at>, Stefan Diewald, Anton Novikov, Modified by Dustin Polke <DuPol@gmx.de>");
 MODULE_LICENSE("GPL");
 
 
@@ -52,7 +52,7 @@ MODULE_LICENSE("GPL");
 
 #define dprintk(fmt, args...)                                           \
   do { if (debug > 0) {                                                 \
-      printk(KERN_INFO "v4l2-loopback[" STRINGIFY2(__LINE__) "]: " fmt, ##args); \
+      printk(KERN_INFO "webcamstudio[" STRINGIFY2(__LINE__) "]: " fmt, ##args); \
     } } while(0)
 
 #define MARK()                                                          \
@@ -62,7 +62,7 @@ MODULE_LICENSE("GPL");
 
 #define dprintkrw(fmt, args...)                                         \
   do { if (debug > 2) {                                                 \
-      printk(KERN_INFO "v4l2-loopback[" STRINGIFY2(__LINE__)"]: " fmt, ##args); \
+      printk(KERN_INFO "webcamstudio[" STRINGIFY2(__LINE__)"]: " fmt, ##args); \
     } } while (0)
 
 
@@ -261,20 +261,16 @@ static const struct v4l2l_format formats
     .depth    = 16,
     .flags    = 0,
   },{
-#ifdef V4L2_PIX_FMT_YVYU
     .name     = "4:2:2, packed YVYU",
     .fourcc   = V4L2_PIX_FMT_YVYU,
     .depth    = 16,
     .flags=0,
   },{
-#endif
-#ifdef V4L2_PIX_FMT_VYUY
     .name     = "4:2:2, packed VYUY",
     .fourcc   = V4L2_PIX_FMT_VYUY,
     .depth    = 16,
     .flags=0,
   },{
-#endif
     .name     = "4:2:2, packed YYUV",
     .fourcc   = V4L2_PIX_FMT_YYUV,
     .depth    = 16,
@@ -512,7 +508,7 @@ v4l2loopback_cd2dev  (struct device*cd)
   struct video_device *loopdev = to_video_device(cd);
   priv_ptr ptr = (priv_ptr)video_get_drvdata(loopdev);
   int nr = ptr->devicenr;
-  if(nr<0 || nr>=devices){printk(KERN_ERR "v4l2-loopback: illegal device %d\n",nr);return NULL;}
+  if(nr<0 || nr>=devices){printk(KERN_ERR "webcamstudio: illegal device %d\n",nr);return NULL;}
   return devs[nr];
 }
 
@@ -522,7 +518,7 @@ v4l2loopback_getdevice        (struct fi
   struct video_device *loopdev = video_devdata(f);
   priv_ptr ptr = (priv_ptr)video_get_drvdata(loopdev);
   int nr = ptr->devicenr;
-  if(nr<0 || nr>=devices){printk(KERN_ERR "v4l2-loopback: illegal device %d\n",nr);return NULL;}
+  if(nr<0 || nr>=devices){printk(KERN_ERR "webcamstudio: illegal device %d\n",nr);return NULL;}
   return devs[nr];
 }
 
@@ -570,10 +566,10 @@ vidioc_querycap     (struct file *file,
   struct v4l2_loopback_device *dev = v4l2loopback_getdevice(file);
   int devnr = ((priv_ptr)video_get_drvdata(dev->vdev))->devicenr;
 
-  strlcpy(cap->driver, "v4l2 loopback", sizeof(cap->driver));
-  strlcpy(cap->card, "Dummy video device", sizeof(cap->card));
-  snprintf(cap->card, sizeof(cap->card), "Dummy video device (0x%04X)",devnr);
-  snprintf(cap->bus_info, sizeof(cap->bus_info), "v4l2loopback:%d", devnr);
+  strlcpy(cap->driver, "WebcamStudio", sizeof(cap->driver));
+  strlcpy(cap->card, "WebcamStudio video device", sizeof(cap->card));
+  snprintf(cap->card, sizeof(cap->card), "WebcamStudio video device (0x%04X)",devnr);
+  snprintf(cap->bus_info, sizeof(cap->bus_info), "WebcamStudio:%d", devnr);
 
   cap->version = V4L2LOOPBACK_VERSION_CODE;
   cap->capabilities =
@@ -1233,7 +1229,7 @@ vidioc_enum_output  (struct file *file,
   memset(outp, 0, sizeof(*outp));
 
   outp->index = index;
-  strlcpy(outp->name, "loopback in", sizeof(outp->name));
+  strlcpy(outp->name, "webcamstudio in", sizeof(outp->name));
   outp->type = V4L2_OUTPUT_TYPE_ANALOG;
   outp->audioset = 0;
   outp->modulator = 0;
@@ -1302,7 +1298,7 @@ vidioc_enum_input   (struct file *file,
   memset(inp, 0, sizeof(*inp));
 
   inp->index = index;
-  strlcpy(inp->name, "loopback", sizeof(inp->name));
+  strlcpy(inp->name, "webcamstudio", sizeof(inp->name));
   inp->type = V4L2_INPUT_TYPE_CAMERA;
   inp->audioset = 0;
   inp->tuner = 0;
@@ -1914,7 +1910,7 @@ v4l2_loopback_read   (struct file *file,
     count = dev->buffer_size;
   if (copy_to_user((void *) buf, (void *) (dev->image +
                                            dev->buffers[read_index].buffer.m.offset), count)) {
-    printk(KERN_ERR "v4l2-loopback: "
+    printk(KERN_ERR "webcamstudio: "
            "failed copy_from_user() in write buf\n");
     return -EFAULT;
   }
@@ -1952,7 +1948,7 @@ v4l2_loopback_write  (struct file *file,
   if (copy_from_user(
                      (void *) (dev->image + b->m.offset),
                      (void *) buf, count)) {
-    printk(KERN_ERR "v4l2-loopback: "
+    printk(KERN_ERR "webcamstudio: "
            "failed copy_from_user() in write buf, could not write %zu\n",
            count);
     return -EFAULT;
@@ -2091,7 +2087,7 @@ init_vdev           (struct video_device
                      int nr)
 {
   MARK();
-  snprintf(vdev->name, sizeof(vdev->name), "Loopback video device %X", nr);
+  snprintf(vdev->name, sizeof(vdev->name), "WebcamStudio device %X", nr);
   vdev->tvnorms      = V4L2_STD_ALL;
   vdev->current_norm = V4L2_STD_ALL;
   vdev->vfl_type     = VFL_TYPE_GRABBER;
@@ -2339,31 +2335,31 @@ init_module         (void)
 
   if (devices > MAX_DEVICES) {
     devices = MAX_DEVICES;
-    printk(KERN_INFO "v4l2loopback: number of devices is limited to: %d\n", MAX_DEVICES);
+    printk(KERN_INFO "webcamstudio: number of devices is limited to: %d\n", MAX_DEVICES);
   }
 
   if (max_buffers > MAX_BUFFERS) {
     max_buffers=MAX_BUFFERS;
-    printk(KERN_INFO "v4l2loopback: number of buffers is limited to: %d\n", MAX_BUFFERS);
+    printk(KERN_INFO "webcamstudio: number of buffers is limited to: %d\n", MAX_BUFFERS);
   }
 
   if (max_openers < 0) {
-    printk(KERN_INFO "v4l2loopback: allowing %d openers rather than %d\n", 2, max_openers);
+    printk(KERN_INFO "webcamstudio: allowing %d openers rather than %d\n", 2, max_openers);
     max_openers=2;
   }
 
   if (max_width < 1) {
     max_width = V4L2LOOPBACK_SIZE_MAX_WIDTH;
-    printk(KERN_INFO "v4l2loopback: using max_width %d\n", max_width);
+    printk(KERN_INFO "webcamstudio: using max_width %d\n", max_width);
   }
   if (max_height < 1) {
     max_height = V4L2LOOPBACK_SIZE_MAX_HEIGHT;
-    printk(KERN_INFO "v4l2loopback: using max_height %d\n", max_height);
+    printk(KERN_INFO "webcamstudio: using max_height %d\n", max_height);
   }
 
   /* kfree on module release */
   for(i=0; i<devices; i++) {
-    dprintk("creating v4l2loopback-device #%d\n", i);
+    dprintk("creating webcamstudio device #%d\n", i);
     devs[i] = kzalloc(sizeof(*devs[i]), GFP_KERNEL);
     if (devs[i] == NULL) {
       free_devices();
@@ -2377,7 +2373,7 @@ init_module         (void)
     /* register the device -> it creates /dev/video* */
     if (video_register_device(devs[i]->vdev, VFL_TYPE_GRABBER, video_nr[i]) < 0) {
       video_device_release(devs[i]->vdev);
-      printk(KERN_ERR "v4l2loopback: failed video_register_device()\n");
+      printk(KERN_ERR "webcamstudio: failed video_register_device()\n");
       free_devices();
       return -EFAULT;
     }
@@ -2387,7 +2383,7 @@ init_module         (void)
 
   dprintk("module installed\n");
 
-  printk(KERN_INFO "v4l2loopback driver version %d.%d.%d loaded\n",
+  printk(KERN_INFO "webcamstudio driver version %d.%d.%d loaded\n",
          (V4L2LOOPBACK_VERSION_CODE >> 16) & 0xff,
          (V4L2LOOPBACK_VERSION_CODE >>  8) & 0xff,
          (V4L2LOOPBACK_VERSION_CODE      ) & 0xff);
--- Makefile.orig	2013-04-01 23:16:54.298307712 +0200
+++ Makefile	2013-04-01 23:18:35.439043279 +0200
@@ -1,7 +1,7 @@
 KERNEL_VERSION	:= `uname -r`
 KERNEL_DIR	:= /lib/modules/$(KERNEL_VERSION)/build
 PWD		:= $(shell pwd)
-obj-m		:= v4l2loopback.o
+obj-m		:= webcamstudio.o
 
 PREFIX = /usr/local
 BINDIR = $(PREFIX)/bin
@@ -30,15 +30,15 @@ MODULE_OPTIONS = devices=2
 
 .PHONY: all install clean distclean
 .PHONY: install-all install-utils install-man
-.PHONY: modprobe v4l2loopback
+.PHONY: modprobe webcamstudio
 
 # we don't control the .ko file dependencies, as it is done by kernel
-# makefiles. therefore v4l2loopback.ko is a phony target actually
-.PHONY: v4l2loopback.ko
+# makefiles. therefore webcamstudio.ko is a phony target actually
+.PHONY: webcamstudio.ko
 
-all: v4l2loopback.ko
-v4l2loopback: v4l2loopback.ko
-v4l2loopback.ko:
+all: webcamstudio.ko
+webcamstudio: webcamstudio.ko
+webcamstudio.ko:
 	@echo "Building v4l2-loopback driver..."
 	$(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules
 install-all: install install-utils install-man