[Sumover-dev] [svn commit] r4680 - vic/branches/mpeg4/video

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Sun Mar 7 07:16:05 GMT 2010


Author: douglask
Date: Sun Mar  7 07:16:05 2010
New Revision: 4680

Modified:
   vic/branches/mpeg4/video/grabber-win32DS.cpp
   vic/branches/mpeg4/video/grabber-win32DS.h

Log:
For DirectShow devices that can't capture < 480i, allow them to capture up to 1920x1080. Kludge to filter out webcams that can capture at 1920x1080 but at low frame rates like 1.5fps.


Modified: vic/branches/mpeg4/video/grabber-win32DS.cpp
==============================================================================
--- vic/branches/mpeg4/video/grabber-win32DS.cpp	(original)
+++ vic/branches/mpeg4/video/grabber-win32DS.cpp	Sun Mar  7 07:16:05 2010
@@ -817,12 +817,11 @@
 }
 //--------------------------------
 
-int DirectShowGrabber::getCaptureCapabilities() {
+int DirectShowGrabber::getCaptureCapabilities(int preferred_max_width) {
    IAMStreamConfig          *pConfig;
    AM_MEDIA_TYPE            *pmtConfig;
    int                      iCount;
    int                      iSize;
-   int                      preferred_max_width;
    VIDEO_STREAM_CONFIG_CAPS scc;
    HRESULT                  hr;
    VIDEOINFOHEADER          *pVih;
@@ -834,7 +833,6 @@
        return FALSE;
    }
 
-   preferred_max_width = 1024;
    max_width_ = 0;
    max_height_ = 0;
    min_width_ = 0xFFFF;
@@ -890,6 +888,10 @@
        }
    }
    pConfig->Release();
+
+   if (min_height_>=NTSC_BASE_HEIGHT && preferred_max_width != 1920)
+       getCaptureCapabilities(1920);
+
    if (max_width_>0)
        return TRUE;
 

Modified: vic/branches/mpeg4/video/grabber-win32DS.h
==============================================================================
--- vic/branches/mpeg4/video/grabber-win32DS.h	(original)
+++ vic/branches/mpeg4/video/grabber-win32DS.h	Sun Mar  7 07:16:05 2010
@@ -137,7 +137,7 @@
       virtual void setsize();
       virtual int  grab();
       void         setport(const char *port);
-      int          getCaptureCapabilities();
+      int          getCaptureCapabilities(int preferred_max_width=1024);
       virtual void setCaptureOutputFormat();
 
       int          useconfig_;



More information about the Sumover-dev mailing list