[vtk-developers] Proposed VTK_USE_VIDEO_FOR_WINDOWS / vfw32 / vtkAVIWriter changes
Mathieu Malaterre
mathieu.malaterre at kitware.com
Thu Aug 18 14:31:10 EDT 2005
My objection is that people on cygwin will not be able to turn the
option ON to get vtkAVIWriter, as I explained in the previous mail. Your
test only check for AVI symbols. But nothing is done to make sure that
headers files are ready to compile vtkWin32VideoSource.cxx.
Therefore if I update the test cygwin will be recognize as a broken
system for both vtkWin32VideoSource.cxx and vtkAVIWriter. Whereas
vtkAVIWriter is valid on this system
Hoping to be clear this time,
Mathieu
David Cole wrote:
> 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
>>>
>>
>>
>>
>
> _______________________________________________
> 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