[vtk-developers] Proposed VTK_USE_VIDEO_FOR_WINDOWS / vfw32 / vtkAVIWriter changes

David Cole david.cole at kitware.com
Thu Aug 18 14:11:52 EDT 2005


But if the TRY_COMPILE succeeds, it means that the compiler has 
successfully found windows.h and vfw.h and that the executable produced 
was successfully linked against vfw32.lib... Isn't that sufficient to 
decide that we should *try* to enable video for windows *by default*? If 
you have a more complete try-compile test that would make a better 
decision, feel free to attach it in a response.

Users with problems can still explicitly set VTK_USE_VIDEO_FOR_WINDOWS 
to OFF.

Another alternative I considered was introducing a separate variable for 
TRY_COMPILE; say, VTK_HAVE_VFW32, that would then be used to include the 
vtkAVIWriter class. And then just leave the VTK_USE_VIDEO_FOR_WINDOWS 
stuff as is.

Any other thoughts?

Still waiting for a solid objection,
David


Mathieu Malaterre wrote:

> David,
>
>     Unless you have a different vtkTestvfw32.cxx, I believe the test 
> is not sufficient. You need to check also for types like:
>
> CAPSTATUS, CAPDRIVERCAPS, CONTROLCALLBACK_PREROLL
>
> cf:
> http://vtk.org/Bug/bug.php?op=show&bugid=635&pos=4
> and
> http://www.cygwin.com/ml/cygwin/2004-03/msg00022.html
>
>     I believe vtkAVIWriter.cxx can be compiled fine on cygwin but not 
> vtkWin32VideoSource.cxx
>
> my 2 cents,
> Mathieu
>
> David Cole wrote:
>
>> Unless I hear objections, I'll commit the proposed changes within the 
>> next day or so. The cvs diff of VTK/CMakeLists.txt appears at the end 
>> of the email.
>>
>> Currently, VTK_USE_VIDEO_FOR_WINDOWS:
>> - defaults to OFF
>> - has documentation string : "Use Video for Windows for video input."
>> - depends on VTK_USE_RENDERING and WIN32
>> - is an "advanced" option
>> - if ON, includes Hybrid/vtkWin32VideoSource.cxx and, as of 
>> yesterday, IO/vtkAVIWriter.cxx as source files
>> - if ON, includes vfw32 as a link library for vtkHybrid and vtkIO
>>
>> I propose:
>> - Changing the *default* value of VTK_USE_VIDEO_FOR_WINDOWS to the 
>> result of a TRY_COMPILE that tells us whether you can successfully 
>> compile and link against vfw32. (You would still be able to change it 
>> or specify it explicitly.)
>> - Changing the documentation string of VTK_USE_VIDEO_FOR_WINDOWS to 
>> read "Enable using Video for Windows (vfw32) for video input and 
>> output."
>> - Eliminating the option's dependence on VTK_USE_RENDERING and WIN32 
>> and relying exlusively on the results of the TRY_COMPILE.
>>
>> More info:
>> The TRY_COMPILE would only be executed once if 
>> VTK_USE_VIDEO_FOR_WINDOWS is NOT already defined (from a previous 
>> run, in the  initial cache or on the cmake command line...) The 
>> source for the TRY_COMPILE is already checked in to 
>> VTK/CMake/vtkTestvfw32.cxx.
>>
>> This way, if you can link against vfw32, you'll get the vfw32 
>> dependent stuff included automatically in your VTK build. Our 
>> reasoning behind this change is this: we have the TRY_COMPILE 
>> technology and we want to get the vtkAVIWriter included on Windows 
>> builds by default...
>>
>> Thanks,
>> David Cole
>> Kitware, Inc.
>>
>>
>> ===== PROPOSED CHANGE =====
>>
>> C:\CvsServers\public.kitware.com\VTK>cvs diff CMakeLists.txt
>> Index: CMakeLists.txt
>> ===================================================================
>> RCS file: /cvsroot/VTK/VTK/CMakeLists.txt,v
>> retrieving revision 1.334
>> diff -r1.334 CMakeLists.txt
>> 717a718,743
>>  > # Check for vfw32 support
>>  > IF("VTK_USE_VIDEO_FOR_WINDOWS" MATCHES "^VTK_USE_VIDEO_FOR_WINDOWS$")
>>  >   MESSAGE(STATUS "Checking if vfw32 is available")
>>  >   TRY_COMPILE(VTK_USE_VIDEO_FOR_WINDOWS_TRY_COMPILE
>>  >     ${VTK_BINARY_DIR}/CMakeTmp
>>  >     ${VTK_SOURCE_DIR}/CMake/vtkTestvfw32.cxx
>>  >     CMAKE_FLAGS "-DLINK_LIBRARIES:STRING=vfw32"
>>  >     OUTPUT_VARIABLE OUTPUT)
>>  >   IF(VTK_USE_VIDEO_FOR_WINDOWS_TRY_COMPILE)
>>  >     MESSAGE(STATUS "Checking if vfw32 is available -- yes")
>>  >     SET(VTK_USE_VIDEO_FOR_WINDOWS 1 CACHE BOOL "Enable using Video 
>> for Windows (vfw32) for video input and output.")
>>  >     WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log
>>  >       "Checking if vfw32 is available "
>>  >       "passed with the following output:\n"
>>  >       "${OUTPUT}\n" APPEND)
>>  >   ELSE(VTK_USE_VIDEO_FOR_WINDOWS_TRY_COMPILE)
>>  >     MESSAGE(STATUS "Checking if vfw32 is available -- no")
>>  >     SET(VTK_USE_VIDEO_FOR_WINDOWS 0 CACHE BOOL "Enable using Video 
>> for Windows (vfw32) for video input and output.")
>>  >     WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log
>>  >       "Checking if vfw32 is available "
>>  >       "failed with the following output:\n"
>>  >       "${OUTPUT}\n" APPEND)
>>  >   ENDIF(VTK_USE_VIDEO_FOR_WINDOWS_TRY_COMPILE)
>>  >   MARK_AS_ADVANCED(VTK_USE_VIDEO_FOR_WINDOWS)
>>  > ENDIF("VTK_USE_VIDEO_FOR_WINDOWS" MATCHES 
>> "^VTK_USE_VIDEO_FOR_WINDOWS$")
>>  >
>> 851,853d876
>> < VTK_DEPENDENT_OPTION(VTK_USE_VIDEO_FOR_WINDOWS
>> <                      "Use Video for Windows for video input." OFF
>> <                      "VTK_USE_RENDERING;WIN32" OFF)
>> 861,862c884
>> <                  VTK_USE_MPI
>> <                  VTK_USE_VIDEO_FOR_WINDOWS)
>> ---
>>  >                  VTK_USE_MPI)
>>
>>
>> _______________________________________________
>> vtk-developers mailing list
>> vtk-developers at vtk.org
>> http://www.vtk.org/mailman/listinfo/vtk-developers
>>
>
>
>




More information about the vtk-developers mailing list