X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=pkgsrc-cinelerra-cv.git;a=blobdiff_plain;f=patches%2Fpatch-vdevicev4l_C;fp=patches%2Fpatch-vdevicev4l_C;h=97567d598becd62c6bf39c6ccb418c6f60dab6d0;hp=0000000000000000000000000000000000000000;hb=eb36dc125c0fbb36e7b01e18a64f8b1eed4bd8b2;hpb=7dddc5098a70b61fa8021db2e051d5b4a8403aa1 diff --git a/patches/patch-vdevicev4l_C b/patches/patch-vdevicev4l_C new file mode 100644 index 0000000..97567d5 --- /dev/null +++ b/patches/patch-vdevicev4l_C @@ -0,0 +1,248 @@ +$NetBSD$ + +--- cinelerra/vdevicev4l.C.orig 2010-01-29 08:22:11.000000000 +0000 ++++ cinelerra/vdevicev4l.C +@@ -25,6 +25,7 @@ + #undef _LARGEFILE_SOURCE + #undef _LARGEFILE64_SOURCE + ++#include "config.h" + + #include "assets.h" + #include "bcsignals.h" +@@ -108,6 +109,7 @@ int VDeviceV4L::close_v4l() + + int VDeviceV4L::unmap_v4l_shmem() + { ++#if defined(HAVE_LINUX_VIDEODEV_H) + if(capture_buffer) + { + if(shared_memory) +@@ -116,9 +118,11 @@ int VDeviceV4L::unmap_v4l_shmem() + delete capture_buffer; + capture_buffer = 0; + } ++#endif + return 0; + } + ++#if defined(HAVE_LINUX_VIDEODEV_H) + int VDeviceV4L::v4l_init() + { + int i; +@@ -179,11 +183,20 @@ int VDeviceV4L::v4l_init() + got_first_frame = 0; + return 0; + } ++#else ++int VDeviceV4L::v4l_init() { ++ fprintf(stderr, "VDeviceV4L::v4l_init (Warning: unavailble feature on this platform)\n"); ++ input_fd = 0; ++ return 0; ++} ++#endif + + void VDeviceV4L::v4l1_start_capture() + { ++#if defined(HAVE_LINUX_VIDEODEV_H) + for(int i = 0; i < MIN(capture_params.frames, device->in_config->capture_length); i++) + capture_frame(i); ++#endif + } + + +@@ -195,6 +208,7 @@ void VDeviceV4L::v4l1_start_capture() + + int VDeviceV4L::v4l1_get_inputs() + { ++#if defined(HAVE_LINUX_VIDEODEV_H) + struct video_channel channel_struct; + int i = 0, done = 0; + char *new_source; +@@ -215,6 +229,7 @@ int VDeviceV4L::v4l1_get_inputs() + } + i++; + } ++#endif + return 0; + } + +@@ -227,6 +242,7 @@ int VDeviceV4L::set_mute(int muted) + + int VDeviceV4L::v4l1_set_mute(int muted) + { ++#if defined(HAVE_LINUX_VIDEODEV_H) + struct video_audio audio; + + if(ioctl(input_fd, VIDIOCGAUDIO, &audio)) +@@ -244,6 +260,7 @@ int VDeviceV4L::v4l1_set_mute(int muted) + if(ioctl(input_fd, VIDIOCSAUDIO, &audio) < 0) + perror("VDeviceV4L::ioctl VIDIOCSAUDIO"); + return 0; ++#endif + } + + +@@ -288,6 +305,7 @@ int VDeviceV4L::get_best_colormodel(Asse + return result; + } + ++#if defined(HAVE_LINUX_VIDEODEV_H) + unsigned long VDeviceV4L::translate_colormodel(int colormodel) + { + unsigned long result = 0; +@@ -303,12 +321,18 @@ unsigned long VDeviceV4L::translate_colo + //printf("VDeviceV4L::translate_colormodel %d\n", result); + return result; + } ++#else ++unsigned long VDeviceV4L::translate_colormodel(int) { ++ return 0; ++} ++#endif + + int VDeviceV4L::set_channel(Channel *channel) + { + return v4l1_set_channel(channel); + } + ++#if defined(HAVE_LINUX_VIDEODEV_H) + int VDeviceV4L::v4l1_set_channel(Channel *channel) + { + struct video_channel channel_struct; +@@ -352,7 +376,13 @@ int VDeviceV4L::v4l1_set_channel(Channel + // set_mute(0); + return 0; + } ++#else ++int VDeviceV4L::v4l1_set_channel(Channel*) { ++ return 0; ++} ++#endif + ++#if defined(HAVE_LINUX_VIDEODEV_H) + int VDeviceV4L::v4l1_get_norm(int norm) + { + switch(norm) +@@ -363,13 +393,18 @@ int VDeviceV4L::v4l1_get_norm(int norm) + } + return 0; + } ++#else ++int VDeviceV4L::v4l1_get_norm(int) { ++ return 0; ++} ++#endif + + int VDeviceV4L::set_picture(PictureConfig *picture) + { + v4l1_set_picture(picture); + } + +- ++#if defined(HAVE_LINUX_VIDEODEV_H) + int VDeviceV4L::v4l1_set_picture(PictureConfig *picture) + { + int brightness = (int)((float)picture->brightness / 100 * 32767 + 32768); +@@ -394,8 +429,13 @@ int VDeviceV4L::v4l1_set_picture(Picture + perror("VDeviceV4L::v4l1_set_picture VIDIOCGPICT"); + return 0; + } ++#else ++int VDeviceV4L::v4l1_set_picture(PictureConfig*) { ++ return 0; ++} ++#endif + +- ++#if defined(HAVE_LINUX_VIDEODEV_H) + int VDeviceV4L::capture_frame(int capture_frame_number) + { + struct video_mmap params; +@@ -409,7 +449,13 @@ int VDeviceV4L::capture_frame(int captur + perror("VDeviceV4L::capture_frame VIDIOCMCAPTURE"); + return 0; + } ++#else ++int VDeviceV4L::capture_frame(int) { ++ return 0; ++} ++#endif + ++#if defined(HAVE_LINUX_VIDEODEV_H) + int VDeviceV4L::wait_v4l_frame() + { + //printf("VDeviceV4L::wait_v4l_frame 1 %d\n", capture_frame_number); +@@ -418,17 +464,29 @@ int VDeviceV4L::wait_v4l_frame() + //printf("VDeviceV4L::wait_v4l_frame 2 %d\n", capture_frame_number); + return 0; + } ++#else ++int VDeviceV4L::wait_v4l_frame() { ++ return 0; ++} ++#endif + ++#if defined(HAVE_LINUX_VIDEODEV_H) + int VDeviceV4L::read_v4l_frame(VFrame *frame) + { + frame_to_vframe(frame, (unsigned char*)capture_buffer + capture_params.offsets[capture_frame_number]); + return 0; + } ++#else ++int VDeviceV4L::read_v4l_frame(VFrame *) { ++ return 0; ++} ++#endif + + #ifndef MIN + #define MIN(x, y) ((x) < (y) ? (x) : (y)) + #endif + ++#if defined(HAVE_LINUX_VIDEODEV_H) + int VDeviceV4L::frame_to_vframe(VFrame *frame, unsigned char *input) + { + int inwidth, inheight; +@@ -525,9 +583,13 @@ int VDeviceV4L::frame_to_vframe(VFrame * + } + return 0; + } ++#else ++int VDeviceV4L::frame_to_vframe(VFrame *, unsigned char *) { ++ return 0; ++} ++#endif + +- +- ++#if defined(HAVE_LINUX_VIDEODEV_H) + int VDeviceV4L::next_frame(int previous_frame) + { + int result = previous_frame + 1; +@@ -535,7 +597,13 @@ int VDeviceV4L::next_frame(int previous_ + if(result >= MIN(capture_params.frames, device->in_config->capture_length)) result = 0; + return result; + } ++#else ++int VDeviceV4L::next_frame(int) { ++ return 0; ++} ++#endif + ++#if defined(HAVE_LINUX_VIDEODEV_H) + int VDeviceV4L::read_buffer(VFrame *frame) + { + int result = 0; +@@ -561,7 +629,11 @@ SET_TRACE + + return 0; + } +- ++#else ++int VDeviceV4L::read_buffer(VFrame *) { ++ return 0; ++} ++#endif + + +