rpms/camstream/devel camstream-0.26.3-libv4l.patch, NONE, 1.1 camstream.spec, 1.19, 1.20

Hans de Goede jwrdegoede at fedoraproject.org
Sun Sep 7 10:02:46 UTC 2008


Author: jwrdegoede

Update of /cvs/pkgs/rpms/camstream/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25501

Modified Files:
	camstream.spec 
Added Files:
	camstream-0.26.3-libv4l.patch 
Log Message:
* Sun Sep  7 2008 Hans de Goede <hdegoede at redhat.com> - 0.26.3-15
- Fix FTBFS (bug 434345)
- Patch to use libv4l for support for more webcams


camstream-0.26.3-libv4l.patch:

--- NEW FILE camstream-0.26.3-libv4l.patch ---
diff -ur camstream-0.26.3/camstream/Makefile.in camstream-0.26.3.new/camstream/Makefile.in
--- camstream-0.26.3/camstream/Makefile.in	2008-09-05 17:11:56.000000000 +0200
+++ camstream-0.26.3.new/camstream/Makefile.in	2008-09-05 17:11:22.000000000 +0200
@@ -100,10 +100,10 @@
 
 # The programs
 camstream:	$(STREAMOBJS) $(SUBS)
-	$(CXX) -o $@ $(LDFLAGS) $(STREAMOBJS) $(SUBS) $(MLIBS) $(LIBS)
+	$(CXX) -o $@ $(LDFLAGS) $(STREAMOBJS) $(SUBS) $(MLIBS) $(LIBS) -lv4l1
 
 caminfo:	$(INFOOBJS) $(SUBS)
-	$(CXX) -o $@ $(LDFLAGS) $(INFOOBJS) $(SUBS)  $(MLIBS) $(LIBS)
+	$(CXX) -o $@ $(LDFLAGS) $(INFOOBJS) $(SUBS)  $(MLIBS) $(LIBS) -lv4l1
 
 ftpput:		$(FTPOBJS) $(SUBS)
 	$(CXX) -o $@ $(LDFLAGS) $(FTPOBJS) $(SUBS) $(MLIBS) $(LIBS)
Only in camstream-0.26.3.new/camstream: Makefile.in~
diff -ur camstream-0.26.3/camstream/devices/VideoDevice.cc camstream-0.26.3.new/camstream/devices/VideoDevice.cc
--- camstream-0.26.3/camstream/devices/VideoDevice.cc	2003-11-22 03:49:27.000000000 +0100
+++ camstream-0.26.3.new/camstream/devices/VideoDevice.cc	2008-09-05 17:07:18.000000000 +0200
@@ -12,6 +12,8 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
+#include <libv4l1.h>
+
 #undef TRACE_VIDEODEV_READ
 #define TRACE_VIDEODEV_MEM
 
@@ -87,9 +89,9 @@
    pNullImage = new QImage();
    
    // Do a small test
-   CamFD = ::open((const char *)node_name, O_RDONLY);
+   CamFD = v4l1_open((const char *)node_name, O_RDONLY);
    if (CamFD >= 0) {
-     if (ioctl(CamFD, VIDIOCGCAP, &vcap) < 0) {
+     if (v4l1_ioctl(CamFD, VIDIOCGCAP, &vcap) < 0) {
        qDebug("CVideoDevice::CVideoDevice() could not query capabilities; is this really a video device?");
      }
      else {
@@ -116,7 +118,7 @@
             AudioInputs.insert(i, new CVideoAudioInput(this, i));
        }
      }
-     ::close(CamFD);
+     v4l1_close(CamFD);
    }
    else 
      if (errno == EBUSY)
@@ -135,7 +137,7 @@
      qWarning("Warning: CVideoDevice `%s' was destroyed when it was in use more than once.", (const char *)NodeName);
    CleanUp();
    if (CamFD >= 0) {
-     close(CamFD);
+     v4l1_close(CamFD);
      emit Closed();
    }
 
@@ -167,7 +169,7 @@
      return;
    }
    
-   if (ioctl(CamFD, VIDIOCGPICT, &VPic) < 0) {
+   if (v4l1_ioctl(CamFD, VIDIOCGPICT, &VPic) < 0) {
      qDebug("CVideoDevice::Init: could not get picture parameters. (duh?)");
      return;
    }
@@ -175,7 +177,7 @@
 
    HasFramerate = FALSE;
    memset(&vwin, 0, sizeof(struct video_window));
-   if (ioctl(CamFD, VIDIOCGWIN, &vwin) == 0) {
+   if (v4l1_ioctl(CamFD, VIDIOCGWIN, &vwin) == 0) {
 #if defined(PWC_FPS_SHIFT)
      if ((vwin.flags & PWC_FPS_FRMASK) >> PWC_FPS_SHIFT) {
        HasFramerate = TRUE;
@@ -191,7 +193,7 @@
    VMBuf.size = 0;
    VMBuf.frames = 0;
    vid_io_buffer_size = 0;
-   if (ioctl(CamFD, VIDIOCGMBUF, &VMBuf) == 0) {
+   if (v4l1_ioctl(CamFD, VIDIOCGMBUF, &VMBuf) == 0) {
 qDebug("Using mmap(), VMBuf.size = %d", VMBuf.size);
      vid_io_buffer_size = VMBuf.size;
      if (Buffers > 0) {
@@ -211,7 +213,7 @@
    
    /* See if we can actually mmap() the memory */
    if (VMBuf.size > 0) {
-     vid_io_buffer = (uchar *)mmap(NULL, vid_io_buffer_size, PROT_READ, MAP_SHARED, CamFD, 0);
+     vid_io_buffer = (uchar *)v4l1_mmap(NULL, vid_io_buffer_size, PROT_READ, MAP_SHARED, CamFD, 0);
      if (vid_io_buffer == (uchar *)-1) {
        qWarning("CVideoDevice::Init(): mmap() failed (%d). Falling back to non-mmap()ed mode.", errno);
        VMBuf.size = 0;
@@ -248,7 +250,7 @@
 {
    if (VMBuf.size > 0) {
      MSync(); // Just to make sure
-     munmap(vid_io_buffer, vid_io_buffer_size);
+     v4l1_munmap(vid_io_buffer, vid_io_buffer_size);
      VMBuf.size = 0;
    }
    else
@@ -268,10 +270,10 @@
 {
    VPic.palette = pal;
    VPic.depth = depth;
-   if (ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
+   if (v4l1_ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
      return FALSE;
    /* Sigh. It was to be expected. The OV511 and IBMCam don't pay attention to the palette field */
-   if (ioctl(CamFD, VIDIOCGPICT, &VPic) < 0)
+   if (v4l1_ioctl(CamFD, VIDIOCGPICT, &VPic) < 0)
      return FALSE;
    if (VPic.palette == pal) {
      Palette = pal;
@@ -350,7 +352,7 @@
 #ifdef TRACE_VIDEODEV_READ
    qDebug("CVideoDevice::MCapture(): buffer %d, format %d, size (%dx%d)", buf, Palette, image_w, image_h);
 #endif  
-   if (ioctl(CamFD, VIDIOCMCAPTURE, &vm) < 0) {
+   if (v4l1_ioctl(CamFD, VIDIOCMCAPTURE, &vm) < 0) {
      perror("CVideoDevice::MCapture() ioctl");
      return -errno;
    }
@@ -368,7 +370,7 @@
 #ifdef TRACE_VIDEODEV_READ
    qDebug("CVideoDevice::MSync()   : buffer %d", CurBuffer);
 #endif  
-   if (ioctl(CamFD, VIDIOCSYNC, &CurBuffer) < 0) {
+   if (v4l1_ioctl(CamFD, VIDIOCSYNC, &CurBuffer) < 0) {
      perror("CVideoDevice::MSync() ioctl");
      return -errno;
    }
@@ -580,7 +582,7 @@
      qWarning("Warning: VideoDevice already opened ?!?!");
      return 0;
    }
-   CamFD = ::open(NodeName, O_RDONLY);
+   CamFD = v4l1_open(NodeName, O_RDONLY);
    if (CamFD < 0) {
      Opened = 0;
      return -errno;
@@ -619,7 +621,7 @@
        delete pImageSocket;
        pImageSocket = NULL;
        CleanUp();
-       close(CamFD);
+       v4l1_close(CamFD);
        CamFD = -1;
        emit Closed();
      }
@@ -753,7 +755,7 @@
 
    image_w = 0;
    image_h = 0;
-   if (CamFD >= 0 && ioctl(CamFD, VIDIOCGWIN, &vwin) == 0) {
+   if (CamFD >= 0 && v4l1_ioctl(CamFD, VIDIOCGWIN, &vwin) == 0) {
      image_w = vwin.width;
      image_h = vwin.height;
    }
@@ -803,7 +805,7 @@
 printf("CVideoDevice::SetSize(%d, %d)\n", width, height);
    if (CamFD < 0 || width > max_w || height > max_h)
      return FALSE;
-   if (ioctl(CamFD, VIDIOCGWIN, &vwin) < 0) {
+   if (v4l1_ioctl(CamFD, VIDIOCGWIN, &vwin) < 0) {
      perror("GWIN: ");
      return FALSE;
    }
@@ -813,7 +815,7 @@
    vwin.width = width;
    vwin.height = height;
    vwin.clipcount = 0;
-   if (ioctl(CamFD, VIDIOCSWIN, &vwin) < 0) {
+   if (v4l1_ioctl(CamFD, VIDIOCSWIN, &vwin) < 0) {
      perror("SWIN");
    }
    else {
@@ -867,7 +869,7 @@
    if (CamFD < 0)
      return -1;
    if (HasFramerate) {
-     if (ioctl(CamFD, VIDIOCGWIN, &vwin) < 0)
+     if (v4l1_ioctl(CamFD, VIDIOCGWIN, &vwin) < 0)
        return -1;
 #if defined(PWC_FPS_SHIFT)       
      return (vwin.flags & PWC_FPS_FRMASK) >> PWC_FPS_SHIFT;
@@ -890,7 +892,7 @@
 {
    struct video_window vwin;
 qDebug("CVideoDevice::SetFramerate(%d)", fps);
-   if (CamFD < 0 || ioctl(CamFD, VIDIOCGWIN, &vwin) < 0)
+   if (CamFD < 0 || v4l1_ioctl(CamFD, VIDIOCGWIN, &vwin) < 0)
      return FALSE;
 
    if (HasFramerate) {
@@ -904,7 +906,7 @@
      vwin.flags = (vwin.flags & ~PWC_FPS_MASK) | (FrameRate << PWC_FPS_SHIFT);
 //qDebug("Setting framerate -> 0x%x\n", vwin.flags);
 #endif     
-     if (ioctl(CamFD, VIDIOCSWIN, &vwin) < 0)
+     if (v4l1_ioctl(CamFD, VIDIOCSWIN, &vwin) < 0)
        return FALSE;
 //     MCapture(CurBuffer); // Try to grab new frame
    }
@@ -1010,8 +1012,8 @@
    ret = FALSE;
    if (CamFD >= 0 && (number >= 0 && number < (int)VideoInputs.count())) {
      arg.channel = number;
-     if (ioctl(CamFD, VIDIOCGCHAN, &arg) == 0) {
-       if (ioctl(CamFD, VIDIOCSCHAN, &arg) == 0) {
+     if (v4l1_ioctl(CamFD, VIDIOCGCHAN, &arg) == 0) {
+       if (v4l1_ioctl(CamFD, VIDIOCSCHAN, &arg) == 0) {
          CurrentVideoInput = number;
          emit ChangedVideoInput(number);
          ret = TRUE;
@@ -1074,9 +1076,9 @@
    
    if (CamFD >= 0 && (number >= 0 && number < (int)AudioInputs.count())) {
      va.audio = number;
-     if (ioctl(CamFD, VIDIOCGAUDIO, &va) == 0) {
+     if (v4l1_ioctl(CamFD, VIDIOCGAUDIO, &va) == 0) {
        va.audio = number;
-       if (ioctl(CamFD, VIDIOCSAUDIO, &va) == 0) {
+       if (v4l1_ioctl(CamFD, VIDIOCSAUDIO, &va) == 0) {
          CurrentAudioInput = number;
          // FIXME emit ChangedAudioInput(number)
          ret = TRUE;
@@ -1117,7 +1119,7 @@
      return FALSE;
 
    VPic.brightness = val & 0xffff;
-   if (ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
+   if (v4l1_ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
      return FALSE;
    return TRUE;
 }
@@ -1147,7 +1149,7 @@
      return FALSE;
 
    VPic.contrast = val & 0xffff;
-   if (ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
+   if (v4l1_ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
      return FALSE;
    return TRUE;
 }
@@ -1181,7 +1183,7 @@
      return FALSE;
 
    VPic.hue = val & 0xffff;
-   if (ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
+   if (v4l1_ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
      return FALSE;
    return TRUE;
 }
@@ -1217,7 +1219,7 @@
      return FALSE;
 
    VPic.colour = val & 0xffff;
-   if (ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
+   if (v4l1_ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
      return FALSE;
    return TRUE;
 }
@@ -1253,7 +1255,7 @@
      return FALSE;
 
    VPic.whiteness = val & 0xffff;
-   if (ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
+   if (v4l1_ioctl(CamFD, VIDIOCSPICT, &VPic) < 0)
      return FALSE;
    return TRUE;
 }
@@ -1286,7 +1288,7 @@
        MCapture((CurBuffer + 1) % Buffers); 
    }
    else {
-     if (read(CamFD, src, vid_io_image_size) < 0)
+     if (v4l1_read(CamFD, src, vid_io_image_size) < 0)
        return -errno;
    }
    
Only in camstream-0.26.3.new/camstream/devices: VideoDevice.cc~
diff -ur camstream-0.26.3/camstream/gui/VideoSettingsDlg.cc camstream-0.26.3.new/camstream/gui/VideoSettingsDlg.cc
--- camstream-0.26.3/camstream/gui/VideoSettingsDlg.cc	2002-05-01 02:23:21.000000000 +0200
+++ camstream-0.26.3.new/camstream/gui/VideoSettingsDlg.cc	2008-09-05 17:07:28.000000000 +0200
@@ -14,6 +14,8 @@
 #include <qslider.h>
 #include <qtabwidget.h>
 
+#include <libv4l1.h>
+
 #include "VideoDeviceInput.h"
 #include "VideoSettingsDlg.h" 
 #include "pwc-ioctl.h"
@@ -125,7 +127,7 @@
      struct pwc_probe probe;
 
      memset(&probe, 0, sizeof(probe));
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCPROBE, &probe) == 0) {
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCPROBE, &probe) == 0) {
        if (vidname == probe.name)
          IsPhilips = TRUE;
      }
@@ -138,7 +140,7 @@
      qDebug("Philips webcam detected, enabling extensions");
      PhilipsTab->show();
 
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAGC, &agc) < 0) {
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAGC, &agc) < 0) {
        qDebug("No VIDIOCPWCGAGC");
        AGCBox->setEnabled(FALSE);
        AGCValue->setEnabled(FALSE);
@@ -148,7 +150,7 @@
        AGCValue->setValue(abs(agc) / 256);
      }
 
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGCONTOUR, &contour) < 0) {
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGCONTOUR, &contour) < 0) {
        qDebug("No VIDIOCPWCGCONTOUR");
        ContourBox->setEnabled(FALSE);
        ContourValue->setEnabled(FALSE);
@@ -159,14 +161,14 @@
          ContourValue->setValue(contour / 256);
      }
 
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGBACKLIGHT, &backlight) < 0) {
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGBACKLIGHT, &backlight) < 0) {
        qDebug("No VIDIOCPWCGBACKLIGHT");
        BacklightBox->setEnabled(FALSE);
      }
      else
        BacklightBox->setChecked(backlight != 0);
 
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGFLICKER, &flicker) < 0) {
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGFLICKER, &flicker) < 0) {
        qDebug("No VIDIOCPWCGFLICKER");
        FlickerBox->setEnabled(FALSE);
      }
@@ -176,21 +178,21 @@
      ShutterBox->setChecked(TRUE);
 
 
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGDYNNOISE, &dynnoise) < 0) {
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGDYNNOISE, &dynnoise) < 0) {
        qDebug("No VIDIOCPWCGDYNNOISE");
        m_NoiseReduction->setEnabled(FALSE);
      }
      else
        m_NoiseReduction->setCurrentItem(dynnoise);
 
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGCQUAL, &compr) < 0) {
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGCQUAL, &compr) < 0) {
        qDebug("VIDIOCPWCGCQUAL failed");
        m_CompressionSelection->setEnabled(FALSE);
      }
      else
        m_CompressionSelection->setCurrentItem(compr);
 
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAWB, &wb) < 0) {
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAWB, &wb) < 0) {
        m_WhiteBalance->setEnabled(FALSE);
        m_RedDial->setEnabled(FALSE);
        m_BlueDial->setEnabled(FALSE);
@@ -200,7 +202,7 @@
        m_WhiteBalance->setCurrentItem(wb.mode);
        ChangedWB(wb.mode);
      }
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAWBSPEED, &wbs) < 0) {
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAWBSPEED, &wbs) < 0) {
        m_WBSpeed->setEnabled(FALSE);
        m_WBDelay->setEnabled(FALSE);
      }
@@ -309,12 +311,12 @@
 
    if (IsPhilips) {
      if (AGCBox->isChecked()) {
-       if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAGC, &agc) == 0) {
+       if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAGC, &agc) == 0) {
          AGCValue->setValue(-agc / 256);
        }
      }
      if (m_WBMode == PWC_WB_AUTO) {
-       if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAWB, &wb) == 0) {
+       if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAWB, &wb) == 0) {
          m_RedDial->setValue(wb.read_red / 256);
          m_BlueDial->setValue(wb.read_blue / 256);
        }
@@ -553,7 +555,7 @@
    AGCValue->setEnabled(!on);
    if (on) {
      int agc = -1;
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAGC, &agc) < 0)
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAGC, &agc) < 0)
        perror("VIDIOCPWCSAGC");
    }
 }
@@ -564,7 +566,7 @@
 
    if (!AGCBox->isChecked()) {
      agc = value * 256;
-     ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAGC, &agc);
+     v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAGC, &agc);
    }
 }
 
@@ -576,7 +578,7 @@
      ShutterValue->show();
    if (on) {
      int speed = -1;
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSSHUTTER, &speed) < 0)
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSSHUTTER, &speed) < 0)
        perror("VIDIOCPWCSSHUTTER");
    }
 }
@@ -587,7 +589,7 @@
 
    if (!ShutterBox->isChecked()) {
      speed = value * 256;
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSSHUTTER, &speed) < 0)
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSSHUTTER, &speed) < 0)
        perror("VIDIOCPWCSSHUTTER");
    }
 }
@@ -600,7 +602,7 @@
      ContourValue->show();
    if (on) {
      int contour = -1;
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSCONTOUR, &contour) < 0)
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSCONTOUR, &contour) < 0)
        perror("VIDIOCPWCSCONTOUR");
    }
 }
@@ -611,7 +613,7 @@
 
    if (!ContourBox->isChecked()) {
      contour = value * 256;
-     if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSCONTOUR, &contour) < 0)
+     if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSCONTOUR, &contour) < 0)
        perror("VIDIOCPWCSCONTOUR");
    }
 }
@@ -620,7 +622,7 @@
 {
    int backlight;
    backlight = on ? 1 : 0;
-   if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSBACKLIGHT, &backlight) < 0)
+   if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSBACKLIGHT, &backlight) < 0)
      perror("VIDIOCPWCSBACKLIGHT");
 }
 
@@ -628,36 +630,36 @@
 {
    int flicker;
    flicker = on ? 1 : 0;
-   if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSFLICKER, &flicker) < 0)
+   if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSFLICKER, &flicker) < 0)
      perror("VIDIOCPWCSFLICKER");
 }
 
 
 void CVideoSettingsDlg::ChangedNoise(int noise)
 {
-   if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSDYNNOISE, &noise) < 0)
+   if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSDYNNOISE, &noise) < 0)
      perror("VIDIOCPWCSDYNNOISE");
 }
 
 void CVideoSettingsDlg::ChangedCompression(int compression)
 {
-   if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSCQUAL, &compression) < 0)
+   if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSCQUAL, &compression) < 0)
      perror("VIDIOCPWCSCQUAL");
 }
 
 void CVideoSettingsDlg::ClickedSaveUser()
 {
-   ioctl(pVideo->GetDescriptor(), VIDIOCPWCSUSER);
+   v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSUSER);
 }
 
 void CVideoSettingsDlg::ClickedRestoreUser()
 {
-   ioctl(pVideo->GetDescriptor(), VIDIOCPWCRUSER);
+   v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCRUSER);
 }
 
 void CVideoSettingsDlg::ClickedRestoreFactory()
 {
-   ioctl(pVideo->GetDescriptor(), VIDIOCPWCFACTORY);
+   v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCFACTORY);
 }
 
 /**
@@ -676,7 +678,7 @@
    wb.mode = m_WBMode;
    wb.manual_red = m_RedDial->value() * 256;
    wb.manual_blue = m_BlueDial->value() * 256;
-   ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAWB, &wb);
+   v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAWB, &wb);
    
    if (m_WBMode == PWC_WB_MANUAL || m_WBMode == PWC_WB_AUTO) {
      m_RedDial->show();
@@ -688,7 +690,7 @@
        m_BlueDial->setValue(wb.manual_blue / 256);
      }
      else {
-       if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAWB, &wb) < 0)
+       if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCGAWB, &wb) < 0)
          perror("VIDIOCPWCGAWB 3");
        m_RedDial->setValue(wb.read_red / 256);
        m_BlueDial->setValue(wb.read_blue / 256);
@@ -707,7 +709,7 @@
    wb.mode = m_WBMode;
    wb.manual_red = m_RedDial->value() * 256;
    wb.manual_blue = m_BlueDial->value() * 256;
-   ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAWB, &wb);
+   v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAWB, &wb);
 }
 
 void CVideoSettingsDlg::MovedBlue(int blue)
@@ -717,7 +719,7 @@
    wb.mode = m_WBMode;
    wb.manual_red = m_RedDial->value() * 256;
    wb.manual_blue = m_BlueDial->value() * 256;
-   ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAWB, &wb);
+   v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAWB, &wb);
 }
 
 void CVideoSettingsDlg::MovedWBSpeed(int speed)
@@ -728,7 +730,7 @@
    wbs.control_speed = (255 - speed) << 8;
    wbs.control_delay = 0;
 
-   if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAWBSPEED, &wbs) < 0)
+   if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAWBSPEED, &wbs) < 0)
      perror("VIDIOCPWCSAWBSPEED speed");
 }
 
@@ -739,7 +741,7 @@
    wbs.control_speed = 0;
    wbs.control_delay = delay << 8;
 
-   if (ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAWBSPEED, &wbs) < 0)
+   if (v4l1_ioctl(pVideo->GetDescriptor(), VIDIOCPWCSAWBSPEED, &wbs) < 0)
      perror("VIDIOCPWCSAWBSPEED delay");
 }
 
Only in camstream-0.26.3.new/camstream/gui: VideoSettingsDlg.cc~
diff -up ./camstream-0.26.3/camstream/lib/FTPClient.cc~ ./camstream-0.26.3/camstream/lib/FTPClient.cc
--- camstream-0.26.3/camstream/lib/FTPClient.cc~	2008-09-05 18:00:15.000000000 +0200
+++ camstream-0.26.3/camstream/lib/FTPClient.cc	2008-09-05 18:00:15.000000000 +0200
@@ -231,7 +231,7 @@ int CFTPClient::SetupLocal(const QString
      ::close(LocalFileFD);
    }
    if (write)
-     LocalFileFD = ::open((const char *)filename, O_WRONLY | O_CREAT);
+     LocalFileFD = ::open((const char *)filename, O_WRONLY | O_CREAT, 0644);
    else
      LocalFileFD = ::open((const char *)filename, O_RDONLY);
 qDebug("CFTPClient::SetupLocal() Opened local file fd [%d].", LocalFileFD);


Index: camstream.spec
===================================================================
RCS file: /cvs/pkgs/rpms/camstream/devel/camstream.spec,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- camstream.spec	15 Jul 2008 14:19:57 -0000	1.19
+++ camstream.spec	7 Sep 2008 10:02:15 -0000	1.20
@@ -1,6 +1,6 @@
 Name:           camstream
 Version:        0.26.3
-Release:        14%{?dist}
+Release:        15%{?dist}
 
 Summary:        Set of programs to make use of your webcam
 
@@ -13,9 +13,10 @@
 Patch0:         camstream-makefiles.patch
 Patch1:         camstream-0.26.3-linkage.patch
 Patch2:         camstream-0.26.3-x86_64-asm.patch
+Patch3:         camstream-0.26.3-libv4l.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
-BuildRequires:  qt3-devel, autoconf, desktop-file-utils
+BuildRequires:  qt3-devel, autoconf, desktop-file-utils, libv4l-devel
 ExclusiveArch:  %{ix86} x86_64 
 
 %description
@@ -32,6 +33,7 @@
 %ifarch x86_64
 %patch2 -p1
 %endif
+%patch3 -p1
 
 
 %build
@@ -91,6 +93,10 @@
 
 
 %changelog
+* Sun Sep  7 2008 Hans de Goede <hdegoede at redhat.com> - 0.26.3-15
+- Fix FTBFS (bug 434345)
+- Patch to use libv4l for support for more webcams
+
 * Tue Jul 15 2008 Tom "spot" Callaway <tcallawa at redhat.com> - 0.26.3-14
 - fix license tag
 




More information about the fedora-extras-commits mailing list