]> gitweb @ CieloNegro.org - pkgsrc-cinelerra-cv.git/blobdiff - patches/patch-vdevicebuz_C
wip...
[pkgsrc-cinelerra-cv.git] / patches / patch-vdevicebuz_C
diff --git a/patches/patch-vdevicebuz_C b/patches/patch-vdevicebuz_C
new file mode 100644 (file)
index 0000000..59f0986
--- /dev/null
@@ -0,0 +1,129 @@
+$NetBSD$
+
+--- cinelerra/vdevicebuz.C.orig        2010-01-29 07:46:20.000000000 +0000
++++ cinelerra/vdevicebuz.C
+@@ -24,6 +24,8 @@
+ #undef _LARGEFILE64_SOURCE
+ #undef _FILE_OFFSET_BITS
++#include "config.h"
++
+ #include "assets.h"
+ #include "bcsignals.h"
+ #include "channel.h"
+@@ -43,9 +45,11 @@
+ #include <errno.h>
+ #include <stdint.h>
++#if defined(HAVE_LINUX_VIDEODEV_H)
+ #include <linux/kernel.h>
+ //#include <linux/videodev2.h>
+ #include <linux/videodev.h>
++#endif
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+@@ -107,6 +111,7 @@ void VDeviceBUZInput::start()
+       Thread::start();
+ }
++#if defined(HAVE_LINUX_VIDEODEV_H)
+ void VDeviceBUZInput::run()
+ {
+     struct buz_sync bsync;
+@@ -117,7 +122,7 @@ void VDeviceBUZInput::run()
+               Thread::enable_cancel();
+               if(ioctl(device->jvideo_fd, BUZIOC_SYNC, &bsync) < 0)
+               {
+-                      perror("VDeviceBUZInput::run BUZIOC_SYNC");
++                      fprintf(stderr, "VDeviceBUZInput::run BUZIOC_SYNC\n");
+                       if(done) return;
+                       Thread::disable_cancel();
+               }
+@@ -152,6 +157,11 @@ void VDeviceBUZInput::run()
+               }
+       }
+ }
++#else
++void VDeviceBUZInput::run() {
++    fprintf(stderr, "VDeviceBUZInput::run (Warning: unavailable for this platform)\n");
++}
++#endif
+ void VDeviceBUZInput::get_buffer(char **ptr, int *size)
+ {
+@@ -444,6 +454,7 @@ int VDeviceBUZ::set_picture(PictureConfi
+       return 0;
+ }
++#if defined(HAVE_LINUX_VIDEODEV_H)
+ int VDeviceBUZ::get_norm(int norm)
+ {
+       switch(norm)
+@@ -453,6 +464,11 @@ int VDeviceBUZ::get_norm(int norm)
+               case SECAM:         return VIDEO_MODE_SECAM;     break;
+       }
+ }
++#else
++int VDeviceBUZ::get_norm(int norm) {
++    return -1;
++}
++#endif
+ int VDeviceBUZ::read_buffer(VFrame *frame)
+ {
+@@ -500,6 +516,7 @@ int VDeviceBUZ::read_buffer(VFrame *fram
+       return 0;
+ }
++#if defined(HAVE_LINUX_VIDEODEV_H)
+ int VDeviceBUZ::open_input_core(Channel *channel)
+ {
+       jvideo_fd = open(device->in_config->buz_in_device, O_RDONLY);
+@@ -621,7 +638,15 @@ int VDeviceBUZ::open_input_core(Channel 
+ //printf("VDeviceBUZ::open_input_core 2\n");
+       return 0;
+ }
++#else
++int VDeviceBUZ::open_input_core(Channel *channel) {
++    fprintf(stderr, "VDeviceBUZ::open_input (Warning: unavailable feature on this platform)\n");
++    jvideo_fd = 0;
++    return 1;
++}
++#endif
++#if defined(HAVE_LINUX_VIDEODEV_H)
+ int VDeviceBUZ::open_output_core(Channel *channel)
+ {
+ //printf("VDeviceBUZ::open_output 1\n");
+@@ -677,9 +702,15 @@ int VDeviceBUZ::open_output_core(Channel
+ //printf("VDeviceBUZ::open_output 2\n");
+       return 0;
+ }
++#else
++int VDeviceBUZ::open_output_core(Channel *channel) {
++    fprintf(stderr, "VDeviceBUZ::open_output (Warning: unavailable feature on this platform)\n");
++    jvideo_fd = 0;
++    return 1;
++}
++#endif
+-
+-
++#if defined(HAVE_LINUX_VIDEODEV_H)
+ int VDeviceBUZ::write_buffer(VFrame *frame, EDL *edl)
+ {
+ //printf("VDeviceBUZ::write_buffer 1\n");
+@@ -753,6 +784,12 @@ int VDeviceBUZ::write_buffer(VFrame *fra
+       return 0;
+ }
++#else
++int VDeviceBUZ::write_buffer(VFrame *frame, EDL *edl) {
++    fprintf(stderr, "VDeviceBUZ::write_buffer (Warning: unavailable feature on this platform)\n");
++    return 0;
++}
++#endif
+ void VDeviceBUZ::new_output_buffer(VFrame *output,
+       int colormodel)