CHANGES.TXT 29 July 2003 Pegasus CapturePRO™ version 3.0.9.0 This file contains a revision history for the CapturePRO 3.0 control. ============================================================================== 29 July 2003 CapturePRO3.dll/3.0.9.0 ----------------------- Updated to address problems with DV capture and PCI capture cards. A new event has been added (FilterListChanged), some additional properties are now listed as obsolete (HasDlgVideoFormat, HasDlgVideoSource, and PreviewRate), and the help file is now in HTML Help (.chm) format. Finally, "wrapped" VfW devices are now indicated by a trailing asterisk (*) in the string returned from the ObtainDeviceName method. General issues: --------------- - WaveSamples does not always return valid results during capture - when the container window changes (such as when changing the border style), the preview stream will sometimes freeze: as a workaround, set Preview to False and then back to True to restart the preview stream. - setting CaptureAudio to False with AudioDeviceIndex = -1 and then setting CaptureAudio to True resets AudioDeviceIndex to 0. Delphi 5 issues: ---------------- - the unit CAPTUREPRO3Lib_TLB.pas created by Delphi when importing the ActiveX will not compile if your compiler options disable assignable typed constants (as they should: assignable constants aren't constant, after all). The fix for this is simple: open the unit, find TCapturePRO.InitControlData() at line 951, and add a line with {$J+} before the procedure and line with {$J-} after the procedure. These two lines turn on assignable typed constants for the procedure and turn it back off after the procedure is done. ============================================================================== 18 April 2003 CapturePRO3.dll/3.0.7.0 ----------------------- Fixed a memory leak in the Picture property. ============================================================================== 4 February 2003 CapturePRO3.dll/3.0.6.0 ----------------------- Interim release, mostly to fix memory leaks in .NET wrappers. Also has some minor fixes to deal with drivers returning bogus resolutions. ============================================================================== 18 January 2003 CapturePRO3.dll/3.0.5.0 ----------------------- Official release of CapturePRO 3.0 ================================== Changes from the beta include: - the behavior of the control on a down-level system (i.e., one not running at least DirectX 8) has been changed. On a down-level system, the control now displays the following message in red text on a yellow background, even at design time: Pegasus CapturePRO™ v3 requires DirectX™ 8.0 or better - a property was added for consistency: NumVideoDevices. It serves the same function as the NumDevices property. - a property was modified: TVInputType is now TVInput and takes a TVINPUTTYPE enumeration instead of a long. - the enumerations were modified: the unused FILTERCATEGORYTYPE enumeration was removed, and as noted above, the TVINPUTTYPE enumeration was added. - the help file was updated. - a C++Builder ActiveX sample was added. System requirements: ==================== CapturePRO 3 requires DirectX 8.0 at a minimum, preferably DirectX 8.1b or DirectX 9.0. DirectShow is now part of DirectX, hence this requirement. This means CapturePRO 3 cannot be used on Windows NT or Windows 95 as neither of these platforms is supported by DirectX 8 on up. Windows XP users should also install the latest service pack. Known issues: ============= # IMPORTANT: the Voxware Compression Toolkit (installed by Windows Media Player 7) contains licensing code which will cause Windows to hit a large number of debugger traps (INT 3s) when enumerating the audio codecs. This problem will manifest itself as mysterious breakpoints when starting up an application which uses CapturePRO, and you will see messages in the debug output stream like this: HEAP[ACEnumCrash.exe]: Invalid Address specified to RtlFreeHeap... Users of applications built with CapturePRO will not encounter this problem: it only shows up when using a system-level debugger like those in Visual C++, Delphi, and C++Builder. VB developers, for example, won't encounter this. To address this problem, CapturePRO temporarily disables the Voxware Compression Toolkit if running under a debugger. To permanently disable the Voxware Compression Toolkit: - open the Sounds and Multimedia control panel - go to the Hardware pane - double-click on Audio Codecs in the list of devices - click on the Properties pane - double-click on Voxware Compression Toolkit - click on the Do not use this audio code radio button - close all the way out Do a Google newsgroup search on "voxware heap corruption" for more info. # IMPORTANT: on a number of test systems, disconnecting from a Creative webcam causes a severe crash (i.e., a blue screen). We *strongly* recommend not using the Creative webcam until they update their driver. In fact, if you happen to have their driver installed, uninstall it: it will cause CapturePRO (and other DirectShow-based software) to crash *even if the camera is not attached to the system.* - we've had mixed results with FireWire cameras (the Orange Micro iBot) and capture cards (the Pinnacle Studio PCTV Pro): the iBot drivers from Orange Micro are very unstable on some Windows 2000 machines but seem to work fine on XP, while the Pinnacle capture card doesn't have readily available DirectShow capture drivers (only VFW drivers). ============================================================================== 17 December 2002 CapturePRO3.dll/3.0.1.0 ----------------------- 1. Beta release of a new version of CapturePRO. This version uses DirectShow instead of the obsolete Video For Windows, and a number of changes have been made to the interface and to the packaging of the control. System requirements: ==================== CapturePRO 3 requires DirectX 8.0 at a minimum, preferably DirectX 8.1b (the current version at the time of this writing). DirectShow is now part of DirectX, hence this requirement. This means CapturePRO 3 cannot be used on Windows NT or Windows 95 as neither of these platforms is supported by DirectX 8. Windows XP users should also install the latest service pack. Known issues: ============= # IMPORTANT: the Voxware audio codecs (installed by Windows Media Player, among others) contain licensing code which will cause Windows to hit a debugger trap (INT 3). This problem will show up as mysterious breakpoints in Delphi and Visual C++. To get around this problem, you *must* disable the codecs during development: - open the Sounds and Multimedia control panel - go to the Hardware pane - double-click on Audio Codecs in the list of devices - click on the Properties pane - double-click on Voxware Compression Toolkit - click on the Do not use this audio code radio button - close all the way out Do a Google newsgroup search on "voxware heap corruption" for more info. # IMPORTANT: on a number of test systems, disconnecting from a Creative webcam causes a severe crash (i.e., a blue screen). We *strongly* recommend not using the Creative webcam until they update their driver. In fact, if you happen to have their driver installed, uninstall it: it will cause CapturePRO (and other DirectShow-based software) to crash *even if the camera is not attached to the system.* - some properties and methods are not self-documented (the helpstrings contain "TODO" instead of meaningful text) - the need to pass strings for filter categories instead of constants is clumsy and error-prone, so we anticipate modifying the interface to take constants instead of strings - a number of properties and methods accept invalid values without reporting an error Interface changes: ================== Apart from the new functionality, the most notable change is the elimina- tion of indexed properties in order to support .NET properly. In general, indexed properties have been replaced by a method whose name begins with Obtain. For example, the indexed property DeviceName became the method ObtainDeviceName. A full list of interface changes follows. Obsolete properties ------------------- CapWnd - always returns 0. The capture window is no longer directly accessible under DirectShow. DriverSuppliesPalettes - always returns True, cannot be set to False. Under DirectShow, drivers always supply palettes. HasDlgVideoDisplay - always returns False. The need for a video display dialog is obsolete under DirectShow. HasOverlay - always returns True. The need for configurable hardware overlay is obsolete under DirectShow. Overlay - always returns True, cannot be set to False. Yield - always returns False, cannot be set to True. DirectShow is inherently multithreaded. Indexed properties which became methods --------------------------------------- DeviceName -> ObtainDeviceName DeviceVersion -> ObtainDeviceVersion New properties -------------- AudioCompressorIndex AudioDeviceIndex FTPMode HasTVTuner HasVideoKeyFrameRate HasVideoQuality IsConnected MonitorAudio NumAudioCompressors NumAudioDevices NumVideoColorFormats NumVideoCompressors NumVideoInputs NumVideoResolutions PreviewFullScreen PreviewHeight PreviewWidth TVChannel TVChannelMax TVChannelMin TVCountryCode TVFormat TVInputType VideoColorFormatIndex VideoCompressorIndex VideoDeviceIndex VideoFlip VideoInputIndex VideoKeyFrameRate VideoQuality VideoResolutionIndex Obsolete methods ---------------- ObtainDeviceVersion (was the indexed property DeviceVersion) - yes, this is a new, obsolete method. ;-) Under DirectShow, there is no way to readily obtain device version information, so this method now simply returns an empty string. ShowVideoDisplayDlg - as noted above, the HasVideoDisplayDlg property is obsolete. This method does nothing now. New methods ----------- FindFilterIndex HasFilterPropertyPage HasVideoProperty LoadProfile ObtainAudioCompressorName ObtainAudioDeviceName ObtainAudioProcFilterCategory ObtainAudioProcFilterIndex ObtainCategoryName ObtainDeviceName (was the indexed property DeviceName) ObtainDeviceVersion (was the indexed property DeviceVersion) ObtainFilterName ObtainNumFilters ObtainVideoColorFormatName ObtainVideoCompressorName ObtainVideoDeviceName (same functionality as ObtainDeviceName) ObtainVideoInputName ObtainVideoProcFilterCategory ObtainVideoProcFilterIndex ObtainVideoProperty ObtainVideoPropertyDefault ObtainVideoPropertyDelta ObtainVideoPropertyMax ObtainVideoPropertyMin ObtainVideoResolutionName SaveProfile SetAudioProcFilter SetVideoProcFilter SetVideoProperty ShowFilterPropertyPage New events ---------- DeviceWarning Packaging changes: ================== CapturePRO 3 is now entirely self-contained: there is no need for an external PIC DLL and SSMs as in the previous version.