Osprey User Guide
AVStream Driver Version 4.0
3701 W. Plano Parkway, Suite 300
Plano, TX 75075-7840 USA
© 2007 ViewCast Corporation. No part of this specification may be reproduced, transcribed, transmitted or stored in a retrieval system in any part or by any means without the express written consent of ViewCast Corporation. ViewCast Corporation reserves the right to change any products herein at any time and without notice. ViewCast Corporation makes no representations or warranties regarding the content of this document, and assumes no responsibility for any errors contained herein.
Underwriters Laboratories Inc. has not tested the performance or reliability of the security or signaling aspects of this product. UL has only tested for fire, shock and casualty hazards as outlined in UL’s Standard for Safety UL 60950-1. UL Certification does not cover the performance or reliability of the security or signaling aspects of this product. UL MAKES NO REPRESENTATIONS, WARRANTIES OR CERTIFICATIONS WHATSOEVER REGARDING THE PERFORMANCE OR RELIABILITY OF ANY SECURITY OR SIGNALING RELATED FUNCTIONS OF THIS PRODUCT.
WARNING: Connections between this device and peripherals must be made using shielded cables in order to maintain compliance with FCC radio emission limits.
WARNING: Modifications to this device not approved by ViewCast Corporation could void the authority granted to the user by the FCC to operate the device.
The Osprey Video Capture devices described in this guide, except the Osprey-300 and the Osprey-530, have been tested and found to comply with the limits for a Class B digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this device does cause harmful interference to radio or television reception the user is encouraged to try to correct the interference by one or more of the following measures:
• Reorient or relocate the receiving antenna.
• Increase the separation between the equipment and receiver.
• Connect the computer into an outlet on a circuit different from that to which the receiver is connected.
• Consult the dealer or an experienced radio/TV technician for help.
If the above measures are unsuccessful, please consult the dealer or manufacturer of your radio or television receiver, or speak with an experienced radio/TV technician.
The Osprey-300 and Osprey-530 Video Capture devices described have been found to comply with the limits for a Class A digital device, pursuant to Part 15 of the FCC Rules. These
limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment. This equipment generates,
uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instruction manual, may cause harmful interference to radio communications.
Operation of this equipment in a residential area is likely to cause harmful interference in which case the user will be required to correct the interference at his own expense.
NOTE: This reminder is provided to call to the CATV installer’s attention Section 820-40 of the NEC, which provides guidelines for proper grounding and, in particular, specifies
that the cable ground shall be connected to the grounding system of the building, as close to the point of cable entry as practical.
Shielded Cables: Connections between this device and peripherals must be made using shielded cables in order to maintain compliance with FCC radio emission limits.
Modifications: Modifications to this device not approved by ViewCast Corporation could void the authority granted to the user by the FCC to operate the device.
Note to CATV Installer: This reminder is provided to call to the CATV installer’s attention Section 820-40 of the NEC, which provides guidelines for proper grounding
and, in particular, specifies that the cable ground shall be connected to the grounding system of the building, as close to the point of cable entry as practical.
Product Disposal Information:
Dispose of this product in accordance with local and national disposal regulations (if any), including those governing the recovery and recycling of waste electrical
and electronic equipement (WEEE).
RoHS Compliant: ViewCast Corporation is committed to compliance with the European directive on the Restriction of the Use of Certain Hazardous Substances in Electrical and Electronic Equipment, Directive 2002/95/EC, the RoHS directive.
For current RoHS statement, see http://www.viewcast.com.
Osprey® and Simulstream® are registered trademarks of ViewCast Corporation. Microsoft®, Windows® XP, NetMeeting®, NetShow®, and Video for Windows® are trademarks or
registered trademarks of Microsoft Corporation. Any other product names, trademarks, trade names, service marks, or service names owned or registered by any other company
and mentioned herein are the property of their respective companies.
Getting Started with Your Osprey Video Capture Card
Please note that the following system requirements relate to your Osprey Capture card only. The video capture or encoding applications you use will likely require a much more powerful system than that which is listed below. Please consult your software documentation for applicable system requirements.
Minimum System Requirements:
• Direct Mode: 600 MHz Intel® Pentium® 3 processor or equivalent
• PostProcessing Mode and SimulStream: 2 GHz Intel® Pentium® 4 processor or equivalent, 3 GHz recommended
• Microsoft® Windows® XP Professional or Home Edition, Windows Server® 2003
• Up to 7.5 MB of available hard disk space
• 256 MB of RAM, 512 MB recommended
• One available PCI slot
In all cases, the most efficient and complete installation method is to run the setup.exe program on the product CD or in the web package that you downloaded. The setup program automates the Plug and Play steps required to install the drivers and ensures that they are performed correctly. It also installs the bundled applets and User’s Guide. If you have multiple Osprey capture cards in the system it configures all of the boards at the same time.
This is the method that we recommend if you are installing an Osprey card for the first time on a system, and the Osprey software has not yet been installed. After the install is run, as soon as an Osprey card is installed in the PC, it is detected and its drivers are started automatically.
If you are updating Osprey software, you should uninstall the software and reboot your computer before installing the update.
Installing the Osprey AVStream Driver
Insert the Osprey Software CD into your CDRom drive. If you have autoplay enabled, the main menu for the Osprey software CD will automatically appear. (Autoplay should be enabled by default. If the main menu does not automatically appear, see “Manually Accessing the CD Menu”)
In the CD main menu, select your Osprey card from the list.
The “Osprey AVStream – InstallShield Wizard” will appear. This Installation Wizard will guide you through the following installation process:
1. ”Welcome” window: Click “Next.”
2. License Agreement window: Click the radio button next to “I accept the terms in the license agreement” and click “next.”
3. Customer Information window: Enter your name and the name of your organization (if any), choose whether you want to install the software for all users, and click “Next.”
4. Video Standard window: Select a default video standard for the AVStream driver and click “Next.”
For more information on video standards, see “Video Standards and Sizes” on page 29 of this guide.
5. Setup Type window: Select “Complete” or “Custom” installation and click “Next.” If you select “Custom” installation, please see “Custom Installing the AVStream Software” on the following page for more information.
6. Ready to Install the Program: Click “Install.”
7. Installing Osprey AVStream: This window will show the progress of the installation. If, during the installation, a warning window appears regarding Windows Logo Testing, click “Continue Anyway” to proceed with the installation.
8. InstallShield Wizard Completed: Click “Finish.”
Custom Installing the AVStream Software
If, during step 5 of the installation process, you choose a “Custom” installation, you will see the following window:
This window will allow you to choose individual components you want to install. Click on each components to see the amount of hard drive space it will require. You can also change the location on your hard drive in which the components will install. This installation option is recommended for advanced users only.
Installing Your Osprey Video Capture Card
When you install your Osprey Video Capture Card, please keep in mind that all computer cards are sensitive to electrostatic discharge.
Slight discharges from your clothing or even from the normal work environment can adversely affect these cards. By following these simple guidelines, however, you can minimize the chance of damaging your Osprey card.
• Handle cards only by the non-conducting edges.
• Do not touch the card components or any other metal parts.
• Wear a grounding strap while handling the cards (especially when located in a high static area).
• Provide a continuous ground path by leaving the power cord plugged into a grounded power outlet.
• Ensure that the workstation is powered OFF before installing any components.
• If you are not familiar with how to install a PCI bus card, refer to your system’s documentation for more complete, step-by-step instructions.
• To be used only with UL Listed computers that include instructions for user installed accessories.
To install your Osprey card…
1. Power down your computer and disconnect the power cable.
2. Remove the computer’s cover and locate an empty PCI slot.
3. Remove the cover screw from the empty PCI slot’s cover, set the screw aside.
4. Remove the slot cover.
5. Remove your Osprey Video Capture Card from its anti-static bag.
6. Insert the Osprey card into the empty PCI slot and make sure that it is seated evenly.
7. Secure the back panel of the card with the slot’s cover screw.
8. Replace the computer cover.
9. Turn the computer on.
Multiple Board Types, and Adding or Moving Boards
There are six classes of Osprey devices, as follows:
• class 1: o100, o200, o210, o220, o230
• class 2: o300
• class 3: o440
• class 4: o530, o540, o560
• class 5: o700HD and later DSP-based PCI-Express products
• class 6: o240 and related non-DSP PCI-Express products
Each of the six device classes has a separate driver. This user guide applies only to classes 1 through 4.
Therefore if you have both an Osprey-230 and an Osprey-560 in the same machine, then you have to install a separate driver for each
When you add or move boards after the AVStream 4.0.0 driver is already installed, there are two possibilities:
A: You add a board of a different class from what is already in the machine. For example, there is already an Osprey-230 in the machine with the current driver installed, and you want to add an Osprey-560.
For this case you have to obtain and install the driver install package for the new board.
B: You move a board from one slot to another, or if you add another board of the same type. For example, you might have an Osprey-230 in the machine, and want to add another Osprey-230. In this case, the following sequence will begin:
The New Hardware Wizard runs and displays the Found New Hardware window followed by the Digital Signature Not Found window.
1. Click Continue Anyway. (This window will only be displayed on drivers that have not been WHQL Certified; WHQL Certified drivers will skip this step.)
2. The Controller installing window (not shown) displays, and the text inside this window changes to “Osprey Video Capture Device, Installing …” . Then the Digital Signature Not Found window appears on top of it.
3. Click Continue Anyway. (This window will only be displayed on drivers that have not been WHQL Certifi ed; WHQL Certified drivers will skip this step) The Completing the Found New Hardware window displays.
4. Click Finish. The Digital Signature Not Found window displays.
5. This window displays once for each Osprey board you are installing. The Systems Setting Change window displays.
6. Click Finish to restart the computer.
Setting the AVStream Driver Properties
Accessing Your Osprey Video Capture Card Properties
After you have installed your Osprey Card and the AVStream driver, you will be able to access the properties for your card through most major DirectShow applications (such as Windows Media Encoder or RealProducer®). For detailed information on how to select your Osprey Card and access its Video Properties window from 3rd-party applications, please refer to the documentation for your encoding application.
The Video Capture Properties Window
The Properties are organized as tabs or pages in a dialog box entitled “Video Capture Properties.” The tabs are as follows:
• Video Proc Amp – set brightness, contrast, saturation, hue, and sharpness.
• Video Decoder – select the video standard – NTSC, PAL, SECAM.
• Input – select the video input and NTSC / PAL / SECAM video standard.
• Filters – SimulStream, processing mode, gamma, deinterlace, and detelecine.
• Device – various less frequently used controls.
• RefSize – set the reference size for cropping.
• Size and Crop – set default size, enable cropping, set the cropping rectangle.
• Logo – set up on-video logos.
• Captions – set up on-video caption rendering.
• Capture and Preview Pin Properties – the default DirectShow pin controls.
In some applications you may see additional tabs besides those listed above. The additional tabs are system-supplied, for-your-information only, and contain no controls that you can set.
Please note that these property tabs are not where you set frame size and frame rate. These are part of the “pin properties”, and are explained in Pin Properties, below.
Some controls are interactive – changes you make are immediately updated on the video. Examples are the brightness, contrast, hue, saturation, and sharpness controls, the graphical gamma control; and the graphical sizing and positioning controls for logos. The OK, Cancel, and Apply buttons have no effect on these controls. It is also important to note that the OK and Apply buttons commit only the changes on the currently displayed page.
Per-device Controls, Per-pin Controls, and Global Controls
Some controls operate on the device as a whole, while other controls operate on individual filters and pins. Specifically, controls on the following tabs are per-device. A change to any of the following controls affects all pins and filters on the device.:
• Video Proc Amp
• Video Decoder
Controls on the following tabs are per-filter and per-pin. Changes here affect only the filter or pin specified:
For more information on filters and pins, please see “Overview of Filters, Pins, and Properties” in Chapter 3 of this guide.
At the top of these three tabs is a control group named Pin Select.
The three buttons in this group determine whether changes you make will select both the capture and preview pin associated with the filter, or just the pin – preview or capture – that you have selected.
When the “Both” radio button is selected, changes you make to the setup apply to both the capture and preview pins.
If you like, however, you can have different setups for the two pins.
For example, you could enable a feature on the capture pin but not on the preview pin. When you select the “Capture” radio button, the current logo settings for the capture pin are loaded, and changes you make apply only to the capture pin, not to the preview pin. The “Preview” button works the same way.
Please note that the Osprey SwiftCap capture application greys out the Pin Select choices and forces the “Both” selection. This application expects settings for Capture and Preview to be locked together. Some other Osprey applications may do this, by intention, as well.
The DirectShow Pin Properties that applications may display for Capture and Preview pins are always per-pin.
Some of the controls on the Filters tab and the Device tab are global to all Osprey-2XX, -300, -440, or -530/540/560 devices. Global controls are noted as such in their descriptions. The rationale is either that the control is logically global to all devices or that it is a rarely used, less important control, such that users will prefer the convenience of setting the control just once for all devices.
The groupings of Osprey board models to driver binaries are as follows (“o100”, etc., are short for Osprey-100, etc.).
• o200avs – o100, o200, o210, o220, o230
• o300avs – o300
• o440avs – o440
• o540avs – o530, o540, o560
If a control or setting is described as “global”, it affects all devices on the system within the group to which it belongs. That is a global change made in an Osprey-230 property page will affect an Osprey-210 in the system, but not an Osprey-560 in it.
The Video Proc Amp Tab
Use the slider controls to set Brightness, Contrast, Hue, Saturation, and Sharpness. If preview or capture-to-screen video is running
when you access this page, you can see your adjustments interactively.
Hue: The Hue adjustment functions for NTSC video only and will be disabled when PAL, SECAM, or Osprey-530/540/560 digital video is selected.
Sharpness: This slider has six positions corresponding to six hardware filter settings. Generally, the positions to the left result in smoother video, the positions to the right result in sharper video.
Since each step engages a different combination of discrete filters, the control may be non-linear in its action. That is, some steps may result in slight differences while other steps may result in large differences. The specific filters engaged by each step may differ from input to input. This is especially true on the Osprey-530/540/560 when switching between analog and digital inputs. So, if you use different inputs on the Osprey-530/540/560 you may want to adjust each input individually. If the video source is capable of being paused, the effects of different sharpness settings are most easily seen by pausing the video.
Please note that because this is a DirectShow standard dialog, this dialog includes features that are not implemented on the Osprey cards and are therefore greyed out. The Osprey driver does not implement White Balance and Backlight Comp controls, and the Auto checkboxes do not function because the driver does not implement automatic setting of the Proc Amp adjustments. The Osprey driver does have a Gamma control, but it is located on the Filters property page.
For all of the Video Proc Amp controls the driver maintains one set of settings per Osprey device. It does not maintain individual settings
for each input or type of input.
Changes made on this page apply to all video preview and capture pins on the currently selected device.
When you change the video standard or video input you will not see changes in the slider controls – such as the Hue button becoming disabled – until the driver properties dialog is closed and re-entered.
When a digital video (SDI or DV) input is selected, the Hue adjustment does not function and will be disabled.
When a digital video input is selected and the checkbox “Bypass Color Correction” on the Input tab is checked, all four of the Brightness, Contrast, Hue, and Saturation sliders are disabled.
When a digital input (SDI or DV (1394)) is selected, the analog controls are greyed and three controls relevant to digital inputs are enabled.
On the Osprey-530/540/560 the driver cannot decode Closed Captions when brightness or contrast are set at extreme values.
This will only be a problem when they are set to such extremes that normal video will not be viewable.
The Video Decoder Tab
The VideoDecoder Tab is a DirectShow standard control for setting the NTSC/PAL/SECAM video standard. Note that these controls are also on the Input Tab. Most users will find the Input Tab more convenient to use.
Changes apply to all video preview and capture pins on the currently selected device. If you have multiple Osprey cards, set the input individually for each of them.
Changes made with this control take effect immediately – the Apply button really has no function on this tab. If video is running and a standard is selected that does not match the incoming signal, the video is likely to freeze or glitch until the signal matches again.
The Input Tab
All controls on the Input tab apply to all filters and pins on the currently selected device. If you have multiple Osprey cards, set the input individually for each of them.
Changes take effect when you click the Apply or OK button.
Video Standard Group
The Video Standard control group is a copy of the controls on the Video Decoder tab.
The North American standard is NTSC. The Japanese standard is NTSC-Japan. The five PAL standards, B, D, G, H, and I are very similar, and are treated the same way by the Osprey driver. The driver also supports SECAM video.
Input Format Group: Analog Inputs
On the Osprey-2X0, -300, and -440 analog cards, and for the Osprey-530/540/560 when an analog input (composite or svideo) is selected, the following controls provide additional adjustments.
B&W composite camera:
This checkbox improves the clarity of video from monochrome sources. This checkbox is only enabled when a composite input line is selected; otherwise it is greyed and the control has no effect.
When a composite input line is selected, and a monochrome device is attached, this checkbox should be checked – the result will be a sharper image, as shown in the “notch kill” item of the image pair below. If a device that has color capability is used, this checkbox should be unchecked, or else the image will be textured and unstable. Note: this control is only for true monochrome devices, without color capability. For example if you are looking at a DVD of a black and white film, this checkbox should not be checked because a DVD player has color capability. If this control is checked with a color source, the image will appear shimmering and unstable.
Reverse field order
This control might be useful if you are capturing video from a digital camera, and routing through the Osprey card’s analog composite or s-video input. The normal field pairing order for NTSC cameras is Odd-Even. However, some progressive video cameras and video footage that originated on film may have a different field dominance that requires pairing of even/odd fields into frames. If you notice that there are problems with interlaced video such as “comb” effects where alternate lines are reversed, the Reverse Field Order setting might clear up the problem.
This control affects capture of video from a digital camera, routed usually through the Osprey card’s DV input (540 and 560 only). In normal video, including many digital cameras, field 1 containing lines 1, 3, 5… of the video is transmitted in its entirety followed by field 2 containing lines 2, 4, 6…. The capture card interleaves the two fields together, and the progressive scan setting should be turned off. A digital camera, however, may transfer data in progressive mode, meaning that the data is transferred as a single field of lines 1, 2, 3, 4, 5…. You will know that you need to use the Progressive Scan setting if the video displays as two separate half-height fields, one on top of the other.
SDI 486-line mode
This control is important and will be needed with many NTSC SDI setups. The NTSC standard provides 485 lines of video. The lines appear to a video capture devices as interleaved from two fields, with 243 lines from field 1 and 242 lines from field 2.
SDI sources may add a 486th line, which will be line 283 at the top of the above list, before line 21. This reverses the apparent field order as seen by the Osprey-530/540/560, and alters the lines on which captioning data will appear.
Check the SDI 486-line control:
1. If you do not see closed captions with CC1 enabled, or see spurious incorrect captions.
2. If you do see CC1 captions correctly when the CC3 caption channel is selected.
3. If no XDS data can be decoded from a source that is known to have XDS data.
4. If, using a broadcast source, on the RefSize page, having selected “Start Video at Lines 23/286”, you see a single line of ancillary data (line 285) at the top of the screen.
This control is mainly for use with SDI sources but it is enabled with DV sources as well. Therefore, if you are using a 486-line SDI source along with a 485- or 480-line DV source, you will have to manually change this line each time you switch between these inputs. 486-line mode is automatically inhibited for the analog inputs – composite and svideo – so you do not have to switch it off when you select one of these inputs.
Bypass Color Correction
When a digital video input is selected (SDI or DV), a checkbox entitled “Bypass Color Correction” is enabled. When this box is checked, default values for Brightness, Contrast, and Saturation are used, and the user-accessible controls on the Video Proc Amp tab are disabled. The Video Proc Amp controls become enabled or disabled only when the driver’s properties dialog is exited and re-entered.
The Filters Tab
Use this control group to enable SimulStream or SimulStream evaluation mode, and specify how many filters will be exposed.
For more background about Devices, Filters, Pins and their relation to SimulStream, please refer to “Overview of Filters, Pins, and Properties” in Chapter 3 of this guide.
NOTE – users of versions of the Osprey AVStream driver prior to 4.0.0 will find that the method of representing and managing multiple video capture and preview pins is greatly revised for 4.0.0. We recommend that you review the following material even if you are thoroughly familiar with 3.X.X SimulStream.
SimulStream is a purchased software option. It makes a single hardware device appear as several separate devices capturing the same input stream. Each stream can have different size, color format, frame rate, crop, logo, and captioning. You can have multiple video capture streams in a single application, or multiple applications each with one or more capture streams.
For details about purchasing and installing SimulStream, refer to http://www.viewcast.com/pages.asp?page=osprey-simul_stream.
The base AVStream driver includes an evaluation version for you to try out for free.
When SimulStream is installed the controls in this group affect the fully licensed SimulStream mode, as opposed to the free evaluation mode. When SimulStream is not installed, they control evaluation mode. Evaluation mode works the same as full SimulStream except that an evaluation logo is displayed on the video. If you have set up a custom logo, the evaluation logo preempts it as long as evaluation mode is turned on.
From a practical point of view, Filters have two interrelated purposes:
1. They allow applications to enumerate and list DirectShow video capture and preview pins or streams (each with different settings) as named entries in their video device select list. You can set up the driver to show 1 to 10 fi lters per device. Each fi lter has one preview pin and one capture pin.
Standard applications can access a particular fi lter without any custom programming specialized for Osprey devices.
2. Each fi lter has independent settings for cropping, default output size, logos, and captions, that can be stored between sessions. Compared to the previous “pin-based” method, there are no requirements for a particular startup order, in order to associate settings with instantiations.
If you are familiar with GraphEdit, the best way to visualize SimulStream filters is to construct a multifilter graph with GraphEdit, and apply different crop, logo, and caption settings to each filter.
The Enable Checkbox
The checkbox at the top of the group turns on SimulStream for the currently selected device.
If you have a full SimulStream license installed, this checkbox controls full SimulStream. If you have a SimulStream license installed but have not turned on SimulStream, the text line at the top of the control group will say that SimulStream is “installed”. If you do have SimulStream turned on, the text will say that SimulStream is “enabled”.
If you do not have a purchased SimulStream license, this checkbox controls SimulStream evaluation mode. If the Enable checkbox is unchecked, the text line at the top of the control group will say that SimulStream evaluation mode is “installed”. If you check the checkbox, the text will say that SimulStream evaluation mode is “enabled”.
When you change the SimulStream Enable status and click Apply or OK, a message box comes up asking to restart the system. It is strongly recommended that you do so. If you do not, SimulStream may partly work, but the filters may be incorrectly named and their pins may be incorrect.
When SimulStream (or SimulStream evaluation mode) is enabled, the driver always works in “Postprocessing Mode”, as described below in the Mode control group. The Mode control will be forced to Postprocessing Mode, and the “Direct Mode” control will be disabled.
Show N filters per device.
With this control you can set up the driver to expose 1 to 10 filters per device for enumeration and selection by applications. If, for example 4 filters per device is chosen, device lists in applications will show four entries for the current device. For device 1, they are designated as 1.1, 1.2, 1.3, and 1.4.
This is a global setting, affecting all Osprey-2XX, -300, -440, or -530/540/560 devices as a group.
When you apply this change, a message box comes up asking you to restart the system – it is important that you do so. The number of filters you have requested will not display or work correctly until the system is restarted.
Note – while it is possible to expose and enumerate up to 10 filters per device, the practical number of working filters will be less than this. The practical number of filters depends on the capability of the system, the types of filtering turned on in the driver, the types of scaling and color format conversions requested in the driver, and the type of processing being done by the downstream application.
When video is being directly rendered to the screen, the video format and type of renderer used can make a major difference in system performance and in the number of streams that are possible.
If multiple capture devices are in the system, the number of filters is the total across all the devices; in addition, some times of processing such as deinterlacing and gamma correction that are performed once per device may in this case occur multiple times. So, in summary, a high-end, multicore or multiprocessor system can support 5, 6, or more concurrent filters on one device if the processing per filter is light; but only 2 or 3 if the processing load inside or outside of the driver is particular heavy.
Allow multiple instances of each filter
This control enables you to run multiple instances on one device of applications that do not have device select controls.
It is recommended that you leave this turned off unless you have a specific need for it. Turning it on will affect some of the above description. Specifically, crop, logo, and caption settings cannot be kept separately for applications sharing a filter, and may interfere with each other in a confusing way. The most recent crop, logo, or caption setting will be the one that is saved – it will overwrite settings that might have previously been saved from another application.
This is a global setting, affecting all Osprey-2XX, -300, -400, or -530/540/560 devices as a group.
When you apply this change, a message box comes up asking to restart the system – this change will not work correctly until you do so.
The Mode group selects the two main functional modes of the driver – Maximize Video Quality and Maximize Video Throughput(EaseStream). For essential background on these operating modes, refer to Overview: Direct Mode and PostProcessing Mode in Chapter 3 of this document. Please see Chapter 3 for an EaseStream overview.
Deinterlace / inverse telecine and gamma correction are applied to all filters on the device and must have the same settings for all filters.
Crop, logo, and caption settings can be different for each pin of each filter, and the driver saves settings between sessions separately for each filter.
Video size, color format, and frame rate can also be different for each pin, but it is the responsibility of the application to save these settings.
The deinterlace group has four radio buttons:
• Off – Perform no deinterlacing of any kind.
• Motion Adaptive – Apply motion adaptive deinterlacing to all video.
• Inverse Telecine – Apply inverse telecine deinterlacing to all telecine video. Perform no deinterlacing of video that is not telecine. Available for NTSC video only.
• Auto – Apply inverse telecine deinterlacing to all telecine video. Apply motion adaptive deinterlacing to all video that is not telecine. Switch dynamically between the two modes as the content changes. Available for NTSC video only.
Deinterlace settings are applied and stored per-device and are applied to all filters and pins associated with a device.
Background – telecine and inverse telecine:
Telecine video is NTSC video that was originally created on film at 24 frames per second. In the telecine conversion process certain fields are repeated in a regular, recurring sequence. If a telecined sequence is viewed directly on a progressive screen, interlacing artifacts will be visible.
The process called Inverse Telecine is the reverse of Telecine – it drops the redundant fields and reassembles the video in a 24 fps progressive format. Interlacing artifacts are 100% removed. If the video is viewed at 24 fps, you will see the exact timing and sequencing that was on the original film. If the video is viewed at 30 fps, every 5th frame will be repeated; however, there will be no deinterlacing artifacts.
Telecine and inverse telecine only apply to NTSC video. They are not used for PAL and SECAM video. The Auto and Inverse Telecine buttons will be disabled when PAL or SECAM is selected as the video standard.
Background – motion adaptive deinterlace:
Motion adaptive deinterlace is an algorithm for deinterlacing pure video (non-telecine) content. It detects which portions of the image are still, and which portions are in motion, and applies different processing to each.
The Currently Using Group
These indicators show which algorithm is currently being used.
These are NOT control buttons – they are read-only indicators.
They are mainly useful in Auto Mode, to indicate which algorithm – Inverse Telecine or Motion Adaptive – is currently being applied.
They are also useful in Inverse Telecine mode to show whether telecine content is present and the Inverse Telecine algorithm is being applied.
The mode currently in use is marked by a green arrow. A mode that is possible under current control settings but not currently in use is marked by a dark grey arrow. A mode that is not available with the current control settings is marked by a pale outline arrow.
With inverse telecine enabled, when telecine content is detected, the five Cine Phase dots show whether the 3:2 pulldown sequence is shifting. If it is shifting, the green marker will shift. This will happen in mixed telecine/video content, and also in content that was converted to telecine and then post-edited in the video domain.
Whenever a shift happens, there will be a few frames that are not deinterlaced. If these shifts are frequent, you may have to switch to Motion Adaptive deinterlacing for consistent quality.
When the telecine detector locks the first time in a streaming session, the leftmost Cine Phase button will be green. If the telecine sequence is perfectly coherent, the phase will never shift. Once it does shift, the absolute phase of the Cine Phase display (which of buttons 1 through 5 is green) is not significant – the only significant fact is that phase shifts are occurring. When the sequence relocks, all phase button are equally correct.
The Tweek… Dialog:
Use the tweek dialog to adjust the parameters that control motion adaptive deinterlacing.
Note: When the driver is using the Inverse Telecine algorithm, either in Telecine mode or Auto mode, the Tweek settings have no effect at all, and Test Mode is inoperative.
Test Mode: When the Test Mode box is checked, the motion adaptive algorithm enters a test mode that displays motion pixels as bright green dots. The dots will mainly be along edges that are in motion, but if the motion threshold is set too high there may also be a random distribution of green dots caused by pixel jitter and instability of the video signal. The extensiveness of the green areas will vary according to the settings of the other tweek controls. Test mode is always automatically exited when you exit the Tweek dialog.
Motion Threshold: The Motion Threshold slider and edit box adjust the threshold of difference from spatially and temporally related pixels that is judged to be “motion”. If you enter Test Mode and move the slider to the right, the number of pixels that are considered in motion will be greatly reduced. As you move the slider to the left, the number of motion pixels will greatly increase until nearly the entire screen is considered in motion. The recommended default is 16.
Sharp and Smooth Motion: When the Sharp Motion radio button is selected, detail in motion areas will be sharper, but at the expense of somewhat jagged diagonal edges.
When the Smooth Motion radio button is selected, there will be more loss of detail in motion areas, but edges will be smoother.
Since the eye does not see detail clearly in areas of motion anyway – whereas edge artifacts are always highly intrusive – the Smooth algorithm should be preferred for most applications. The Smooth algorithm uses a bit more CPU.
Both algorithms treat still areas (areas that are not green in Test Mode) the same way, and there should be no loss of detail in still areas.
In Test Mode, with the Sharp algorithm green speckles will be on alternate lines only, and with the Smooth algorithm they will be on all lines.
1. If your video format results in exact 2:1 or 4:1 vertical scaling for a particular pin, then all the video will come from one field. This will be the case for uncropped NTSC CIF (320×240) or QCIF (160×120). It may be the case for special cases of cropped video as well.
In the PostProcessing sequence as currently implemented, the “sharp” motion adaptive deinterlacing algorithm has no effect on single-fi eld streams, since it alters only the fi eld that these streams do not use. The “smooth” algorithm operates on both fi elds and may have a detectable blurring effect on areas of motion. (“Sharp and “smooth” are set in the Tweeks… subdialog.)
Inverse telecine if enabled does not affect the individual fields for a one-field pin; however, if the pin’s frame rate is 24, the driver will detect and remove the frames that are repeats. If you are streaming multiple pins, and the exact single-fi eld special scaling case holds true for one pin but not another, different processing will be applied to the two pins.
2. When Auto mode is selected, some kinds of content will cause the driver to frequently switch between Inverse Telecine and Motion Adaptive processing. Content such as title sequences and commercials is often telecine, but cuts between scenes generally break the telecine sequence, forcing the driver to resynchronize. It takes it a number of frames to lock on to the new sequence. The driver will drop back to the Motion Adaptive algorithm as soon as it becomes aware that telecine sync has been lost. However, it may take it several frames to discover that this has happened; these frames will not be correctly deinterlaced.
You should decide whether to use Auto, Inverse Telecine, or Motion Adaptive mode depending on the type of content you expect.
If the content is consistently telecine, then either Auto or Inverse Telecine is recommended for perfect recovery of the original progressive format.
If the content is telecine with post-detelecine video-based editing, Auto mode will result in the best overall quality – but there may be several frames that are not deinterlaced every time the pulldown phase sequence has to be relocked.
If the content format is a rapidly changing mix of telecine and video, or is all video, or is of unknown type, the Motion Adaptive setting will give the most consistent results. The quality of telecine sequences will not be the best possible, but there will be no instances of frames not deinterlaced at all due to telecine re-locking.
This control adjusts the gamma of the incoming video. “Gamma” refers to the response curve of video cameras and CRTs. When video is captured at a camera, the response of the camera is deliberately nonlinear – low lumen values are boosted, and high lumen values are compressed. This is done for two reasons: (1) It increases the effective bandwidth in the low lumen range, where it is needed, at the expense of the high lumen range, where it is less needed; (2) it matches the response characteristics of TV sets and monitors.
The calibration specified in video standards matches the requirements of cameras and TV sets in broadcast use, but generally does not match the needs of computer-based applications or the response curves of computer monitors. So a correction inverse to the original bias is often needed, and you may want to tune for the characteristics of a particular monitor.
When the gamma correction filters is disabled, either by unchecking the Gamma Correction checkbox or by setting the gamma correction value to exactly 1.00, the software-based gamma filter works in passthrough mode, with no effect on the video and with no processing bandwidth used. When gamma correction is enabled, the factor applied is as shown in text box and in the graphic. If you are running preview video while adjusting the filter, you will see the effects of your adjustments interactively.
There are four ways to adjust the gamma correction value:
1. By directly entering text in the numeric text box.
2. By clicking the [+] and [-] buttons.
3. By dragging the mouse with the left button down between the upper left and lower right.
4. By clicking the button marked “2.20” (NTSC) or “2.80” (PAL/SECAM). These values are the inverses of the gamma bias that was applied at the video source according to the video standard, so that the resulting video is gamma-neutral.
The graphic, in addition to showing the transfer function as a red curve, shows the visual effect via the two greyscale bands on the adjustment square. The lower third of the square shows a nonvarying linear adjustment range. The upper two thirds shows the greyscale mapping of the current setting. When the setting is 1.00, the two portions are identical.
Gamma correction is enabled only when Postprocessing Mode is selected.
Gamma correction applies to all filters and all output pins on each device. The gamma correction can be different for different physical devices.
The Device Tab
These controls are less often used items.
Unless specifically noted, changes made on this page apply to all filters and all video preview and capture pins on the currently selected device. Unless noted, different settings may be set and stored for different devices.
• PCI Compatibility Mode
• Processor Assignment
• Device Info…
This control is relevant only on machines with two or more processors, and with two or more Osprey devices of a particular class(Osprey-2XX, -300, -440, -530/540/560) installed. On single-processor machines, this control is greyed.
Normally, when a machine has multiple processors and multiple Osprey devices, best performance is achieved by letting the Windows dispatcher assign devices to processors dynamically. The processing for a device will generally end up on the first processor to become idle, and load balancing between processors will occur naturally.
On a few machines, however, it has been noticed that Windows will run all Osprey devices on one processor, resulting in unbalanced loading and reduced performance.
The upper button in the control group sets the usual, default case whereby Windows if free to assign any device to any processor.
The lower button is for those few cases where the default setup does not work right. It causes each Osprey device to be hardwired to a specific processor – device 0 to processor 0, device 1 to processor
1. The assignment is round-robin, so if there are four Ospreys on a two-processor machine, device 2 will be assigned to processor 0, and device 3 to processor 1.
Changes made to this control will take effect when you restart the machine.
If you have mixed classes of Osprey devices – for example an Osprey-230 in the same machine as an Osprey-560, overriding the default of this control is not recommended. The two device types run under different drivers, and both drivers will consider their device to be “device 0”, and both will assign it to processor 0.
PCI Compatibility Mode
Some PCI bridges present compatibility problems for the Osprey hardware, especially systems using the 430FX chipset. The symptom will be dropping of a significant amount of audio and/or video data.
Use the “Normal” setting unless you are seeing this symptom, but if you are seeing it, try setting this control to “430FX”, or, possibly, to “VIA/SYS”. The change will take effect as soon as you click “Apply” or “OK”.
This button display useful information about the capture card and the driver, including
• The DirectShow name of the device.
• The device and filter number.
• The PCI bus and slot numbers of the device.
• The device type code.
• The serial number of the device.
• On Windows XP x64, whether the application is 32-bit or 64-bit.
• The versions of the kernel driver and user mode DLL (AX).
• The versions of the interfaces between the kernel driver and user mode DLL..
• The file name of the kernel driver binary.
“Extras” are features of the AVStream driver that are new, not fully defined, or subject to change. Extras may also include workarounds to apparent DirectShow issues that are expected to be resolved fairly soon. Extras should be expected to change more frequently than other aspects of the driver. The current Extras are the following:
• Timecode Video Marking: Refer to the Vertical Interval Timecode section on page 31 of this guide for more information.
• Closed Caption Timestamping: This control is a workaround to what we currently believe to be a problem in DirectShow with capture of CC to AVI files. If you attempt to capture a CC character pair stream along with a video stream to an AVI file with “Normal” timestamping, the file will become extremely large and the capture will fail within a few seconds. “AVI-Compatible” mode allows capture of CC to AVI. Unfortunately, the problems with timestamping mean that time synchronization between the video and CC streams depends on their physical interleaving in the file, so that time synchronization will be quite poor; we do not have a workaround for this at this time. For all applications other than capture to AVI, this control should be set to “Normal”. WME9 among others requires the “Normal” setting if CC is used.
Vbi Pin (Osprey-530/540/560 only): The Osprey-530/540/560 do not provide full Vertical Blanking Interval (VBI) support, and do not normally expose a VBI Pin. Windows Media Encoder 9, however, has a Closed Captioning scripting capability that requires a workaround: Although this application connects to the driver’s Closed Caption Pin for delivery of actual Closed Caption data, it looks for a VBI Pin in its capability enumeration phase. This control directs the driver to expose a logically correct but non-functioning VBI pin so that the WME9 scripting capability can be used. We recommend hiding the VBI Pin for other applications, since no valid VBI data will be delivered. Changes to this setting only take effect when the you restart the device either with the system’s Device Manager, or by rebooting the system.
The RefSize Tab
The RefSize tab controls features related to the reference size, format, and proportions of the video. These controls are not commonly used. Most users can set up this page once and never refer to it again. Note that this page does not provide everyday control of the final output size of your video. Control final output size either from your application, from the Crop tab, or from the Pin Properties dialog described in the next section.
Changes made on this page apply to all video preview and capture pins on the currently selected device.
• Horizontal Format
• 525-Line (NTSC) Vertical Format
• Reference Size for Crop and Logo Placement
• Horizontal Delay
• Source Width (Osprey-530/540/560 only)
Use the Square Pixels setting for video that will be viewed via a computer monitor. This setting results in a square aspect ratio sampling of the source video. This results in a source image of 640×480 for 525-line standards and 768×576 for 625-line standards.
Use the CCIR-601 setting if the captured video will be later viewed on a dedicated video monitor. This setting results in a CCIR-601 aspect ratio sampling of the source video. It results in a video input horizontal size of 720 pixels for both 525-line and 625-line standards. This sizing is standard for dedicated monitors but results in video that appears horizontally stretched(525-line) or squeezed (625-line) on a computer monitor.
It is more efficient to set the horizontal mode to match the size of the output. For example, if your target video size is 640×480, using Square Pixel sizing in PostProcessing Mode will avoid an unnecessary software scaling step in the driver.
On some systems, for reasons external to this driver, 640×480 video will render a lot faster than 720×480 video – that is, the speed difference will be a lot more than the 9:8 ratio of numbers of pixels.
Osprey-530/540/560 note: This control is implemented only for 525-line standards. When a 625-line standard (PAL or SECAM) is selected, CCIR-601 720-pixel sampling is automatically selected, and the control is greyed.
525-Line (NTSC) Vertical Format
This control is only meaningful for NTSC users. It has no effect for PAL and SECAM 625-line video standards.
Select 480-line video for all normal applications. Select 485-line video for specialized applications.
When 480-line video is selected, you can select which of three video lines should be the top line of displayed or captured video. Lines 21 and 284 are used for Closed Caption in films and broadcast video.
Lines 22 and 285 are sometimes used for ancillary data in broadcast video. If these lines are used for data they will appear as moving bands or streaks across the top lines. Therefore, the most generally useful start lines are 23 / 286. For cameras and some packaged content, however, all video lines starting with 21 / 284 can be part of the displayed video.
Reference Size for Crop and Logo Placement
This part of the dialog is read-only because you do not set it directly – rather, it shows the results of more fundamental settings made elsewhere in the dialog.
The settings shown by the 525-line / 625-line buttons reflects the video standard selected in the Input or Video Decoder tab. NTSC formats result in 525-line, 29.97 frame per second video. PAL (other than –M) and SECAM formats result in 625-line, 25 frame per second video.
The Height and Width boxes show the size of the incoming video based on all the settings you have made.
The Horizontal Delay control moves the video horizontally in the capture or preview frame. Video devices differ in their timing characteristics, so some devices may need different adjustments from other devices. Adjust this control if you are seeing a black line to the left or right of the video. Use the left and right arrow buttons to move the video to the left or right. Click  to restore the default zero setting. The allowed range is -15 to 15. With uncropped video, the video will shift only on every second increment 0, 2, 4….
Source Width (Osprey-530/540/560 only)
The Source Width control can be used to trim the black left and right edges of an image. This control is only available for NTSC video, and only when the Horizontal Format is set to Square Pixels such that the reference size is 640×480.
The suggested procedure is as follows:
1. With video preview running, click  to display the entire image, which will usually include black left and right edges. Changes will appear interactively.
2. Use the Horizontal Delay control immediately above this control to center the image so that the black edges are of equal width.
3. Click  to trim the image to the nominal borderless width.
4. Click [+] and [-] to adjust the trimmed size so that the black edges are completely removed but no active video is lost. The allowed range is 688 to 720.
It is possible to obtain the same result using the cropping control(Size and Crop Tab) but there are some differences.
1. The Source Width control affects all pins and all filters on the device, whereas the crop control would have to be set separately for all SimulStream filters.
2. In Postprocessing Mode this operation is often more efficient in terms of processing than a crop operation. The crop and scale are done in hardware, so if you are using the resultant 640×480 image directly without further cropping there is no scale/crop processing cost incurred.
The Size and Crop Tab
This tab has two functions.
• It sets the default output size, whether or not cropping is enabled.
• It enables and disables cropping, and sets the cropping rectangle.
The default output size is the video size that appears in the DirectShow pin properties dialog as the “default” choice. It is a pathway for setting a custom or nonstandard video size in applications that do not have a custom video sizing controls built into them.
“Cropping” means removal of unwanted video around the edges of the incoming image. For example, if the incoming video is letterboxed, with an aspect ratio wider than 4:3, you can crop away the black slivers at the top and bottom of the image and capture just the active portion.
Changes made on this page apply to all video preview and capture pins on the currently selected device.
• Pin Select
• Reference Size
• Enable Cropping
• Default Size
When the “Both” radio button is selected, changes you make to the crop setup apply to both the capture and preview pins. This is the default setting and is what most users will want.
If you like, however, you can have different setups for the two pins.
For example, you could enable cropping on the capture pin but not on the preview pin. When you select the “Capture” radio button, the current crop settings for the capture pin are loaded, and changes you make apply only to the capture pin, not to the preview pin. The “Preview” button works analogously.
Note: The Osprey SwiftCap capture application greys out the Pin Select choices and forces the “Both” selection. This application expects the Size and Crop settings for Capture and Preview to be locked together. Some other Osprey applications may do this, by intention, as well.
The reference size information is always read-only on this dialog tab.
It is determined by settings made on other tabs – specifically, the Input tab, where a 525-line or 625-line standard is selected, and the RefSize tab, where Square Pixel or CCIR proportioning is selected.
The read-only text box describes which of these options is currently governing the reference size.
The reference width and height represent the full uncropped size of the incoming video. Your crop settings are interpreted relative to this reference size. For example, if you are capturing 525-line video, with a reference size of 640×480, and your crop rectangle is (0, 0, 640, 480), then your video is effectively uncropped. But if you are capturing 625-line video, with a reference size of 768×576, the same(0, 0, 640, 480) crop specification will truncate the right and bottom edges of the video.
Granularity and Alignment
Osprey products impose restrictions on the possible width and/or height of the video, referred to as “granularity” restrictions. For example, the I420 capture format requires that the capture width be a multiple of 16 and the capture height be a multiple of 2. When video is cropped they also impose a requirement for alignment of the left side of the cropped video field. The specific requirements for the 4.0.0 driver are changed from the 3.X.X driver versions. They are as follows:
Granularities of Supported Color Formats
The Granularity controls show you the granularity restrictions for the selected video format, and assist you in choosing crop and output sizes that observe those restrictions. Since alignment is the same for all formats, there is no control for it.
Since the preview and capture pins may be set to different color formats, they may have different granularities. When the Crop tab is opened, the two drop boxes titled Capture and Preview are initialized to the current or most recently used format for the selected pin.
If your Pin Select setting is “Capture”, only the Capture granularity box will be enabled; similarly for Preview. The two small read-only edit boxes to the right of the group show the horizontal and vertical granularities for the selected color format for the selected pin type.
If your Pin Select setting is “Both”, both the Capture and Preview drop boxes are enabled, and the two boxes to the right of the group show the worst-case granularity that works for both the Capture and Preview color formats. For example, if the Capture color format is I420 and the Preview color format is YUY2, the resultant granularity is I420’s more stringent 16×2 requirement.
The granularity and alignment settings affect values you subsequently enter for crop width, crop height, and default output width and height – they will be adjusted to these granularities.
Adjustments are made when you click “Recalc”, “Apply”, or “OK”.
You can change the video format in the drop box, so that granularities are set for a different format. Note that this does not automatically cause the pin to have this format – you still have to select that format using the Pin Properties dialog or via your application. It just ensures that the sizes you select will work correctly when you do select this color format in the application.
If you set up your crops with a less restrictive granularity (for example, YUY2) and then capture with a more restricted granularity(for example, I420), the driver may automatically adjust the video crop and/or output size without notifying you. Or, the capture may fail. You may also find that in the Pin Properties dialog the default size you wanted is not listed – because it is not a legal size for this format.
If you select “[none]” as the color format(s), the minimum granularity and alignment adjustments are applied to your crop and size data.
If you select “[any]” as the video format, the coarsest granularity required by any of the available formats is applied to your crop and size data. In practice, “[any]” is the same as YVU9, that is, 16×4.
You are guaranteed that your crop and output sizes will never be adjusted, regardless of what video format you select now or in the future.
If you uncheck the Enable Cropping checkbox, your video will not be cropped regardless of any crop settings you might previously have made. The edit boxes showing the edges, height, and width of your crop will be read-only and will show settings for full-frame, uncropped video.
If you check the Enable Cropping checkbox, your video will be cropped to the indicated boundaries. Previously stored crop settings will be recovered. The six edit-boxes are enabled. The Top and Left boxes set the top left corner of the cropping rectangle. The Right and Bottom boxes set the bottom right. The Width and Height boxes set the size of the rectangle.
The Recalc Button
The Recalc button recalculates the whichever of the six crop edit boxes you have not filled in. For example, if you set Top, Left, Width, and Height, Recalc will calculate Right and Bottom. If you set Top, Left, Right, and Bottom, Recalc will calculate Width and Height.
Whichever of the vertical group was least recently touched, is the item that will be recalculated; similarly with the horizontal group. If you have only changed one box of the group, you can force the order of recalculation by clicking one of the other two boxes. For example:
If you have changed Left, and you want to preserve Width (but alter Right), then click on Width before Recalc. If you have changed Left, and want to preserve Right (but alter Width), then click on Right before Recalc.
If your specification will result in a crop rectangle that is too large or too small, Recalc will adjust it appropriately. If it can’t set up an allowed size by changing just the third most recently clicked setting, then it will try to change the second most recently clicked setting instead or as well. If it has to it will change your most recently changed setting.
Recalc will also factor in granularity and positioning requirements as required.
In the Default Output Size group, Recalc will change the default output size if Auto Size is checked. If Auto Size is not checked, Recalc will leave the output size alone.
1. Note that the crop width and height are subject to the granularity requirements of the selected video format, as explained in the previous section. For example, if your video format is I420 and you try to set a crop width of 360, it will get adjusted down to 352.
2. If you enable cropping, key in some custom settings, and then disable cropping, an uncropped specifi cation will be displayed and your settings will disappear from view.
However, the driver does remember your custom settings, and if you enable cropping again, they will reappear.
3. Versions 4.0.0 and later of the Osprey AVStream driver can upscale cropped video, up to the reference size.
4. Cropping rectangles are frame-based rather than fi eldbased.
Thus if a crop rectangle is set up defi ning a 320×240 area, then a capture of video sized at 320×240 will result in video being captured from two fi elds. You may therefore see interlacing artifacts in the captured video, unless a deinterlacing fi lter is applied. This may be initially confusing since most users typically think of 320×240 video capture only coming from a single fi eld and thus would not have interlaced artifacts. However, in this case, the source video is only 320×240 in size (i.e. the crop rectangle) and thus any captured video that is greater than the fi eld height within the crop rectangle (equal to ½ cropped ROI height) will result in a scaled capture of multiple fi elds. Also, the driver will use both fi elds whenever they are needed to interpolatively scale the output with best possible accuracy.
The standard DirectShow Pin Properties dialog allows you to select the height and width of captured video from a dropdown list. The dropdown list has a particular range of choices that may or may not fit your needs. The dropdown list includes one default size that is provided by the capture driver. The Default Size control allows you to set up what default size will be shown.
If you check the Auto Size checkbox, your default video size will be automatically sized to your crop settings. The three radio buttons, 1X Crop, 1/2X Crop, and 1/4X Crop, determine whether the output size is scaled down from the crop size.
• Example 1: If you are running standard 640×480 NTSC video, and the Enable Cropping checkbox is not checked, your crop size is 640×480. With Auto Size checked, and the 1X Crop radio button selected, your default size will be 640×480; with 1/2X Crop, 320×240; and with 1/4X Crop, 160×120.
• Example 2: If you have enabled cropping with size 320×240(one quarter of the full video area), the default Auto Sizes are as follows: 1X, 320×240; 1/2X, 160×120; 1/4X, 80×60.
If you leave Auto Size unchecked the default size radio buttons are disabled and the height and width edit boxes are enabled. You can set any default size with the following two restrictions:
• Since the driver does not upscale video, the default size must be smaller than the crop size. For example, if the crop size is 320×240, you cannot set default size 400×300.
• Sizes are subject to the granularity requirements of the selected video format, as explained in the Granularity section above. For example, if your video format is I420 and you try to set a default width of 360, it will get adjusted down to 352 as soon as you click on another control.
Note that Pin Properties dialog default entry does not appear in the default VFW/DirectShow mapper dialog. Thus, unless a VFW application, like Virtual Dub, specifically allows for custom resolutions, the VFW app will only be able to select from the options the VFW/DirectShow mapper lists.
The Logo Tab
The logo property superimposes a graphic over captured video using the logo property controls.
Logos have the following characteristics:
• Any RGB-24 bitmap in .bmp file format can be used.
• A selectable key color can be specified; all parts of the logo graphic with that color are not drawn on the video.
• A transparency control can be used to blend the logo graphic with the background video.
• The logo can be interactively positioned and scaled.
• The logo appears on both captured and previewed video. If the capture and preview video are different sizes, the logo is scaled to look the same on the preview video.
The logo property controls work best when you are already running preview video. With preview video running, you can view your changes interactively. (If your application displays capture video in real time, capture video can be used instead.)
The logo property is organized as three sub-pages – File, Color, and Position. The Pin Select control group and Enable Logo are common to all three. For other controls, click the File, Color, or Position radio button to bring up the right sub-page.
Logo Pin Select
When the “Both” radio button is selected, changes you make to the logo setup apply to both the capture and preview pins.
If you like, however, you can have different setups for the two pins.
For example, you could enable the logo on the capture pin but not on the preview pin, and thereby save some CPU time. When you select the “Capture” radio button, the current logo settings for the capture pin are loaded, and changes you make apply only to the capture pin, not to the preview pin. The “Preview” button works analogously.
Note to SimulStream users: The Pin Select control group is different when SimulStream is enabled. Refer to the SimulStream section of this guide for a description.
Another note: The Osprey SwiftCap capture application greys out the Pin Select choices and forces the “Both” selection. This application expects the Logo settings for Capture and Preview to be locked together. Some other Osprey applications may do this, by intention, as well. However, several other applications, such as Windows Media Encoder, do not grey out the Pin Select choices, and you have the options to choose “Capture,” “Preview,” or “Both.”
Please see the screenshot below.
Logo File and Color
The Enable Logo checkbox, which is repeated on both sub-pages, enables or disables logos. If you disable logos, all your other logo settings are retained for when you re-enable logos again.
The [Browse…] button brings up a standard file select dialog. Logo files must be:
• In .bmp format with a .bmp filename extension.
• In RGB-24 format.
If you have a graphic that is in another format, edit it with a drawing or photo edit program such as Windows Paint, and save it as RGB-24.
You can control the key color and the transparency effect. If preview video is running, you will see your changes interactively.
A “key color” is a color that disappears from the graphic so that the underlying video shows through unchanged.
If the Enable Key Color checkbox is unchecked, all colors are displayed.
If the checkbox is checked, key coloring is activated. The five radio buttons are activated. You can select one of four standard colors – dark gray, medium gray, cyan, or magenta – or a custom color. It you select Other, for a custom color, the three edit boxes – Red, Green, Blue – are activated, and you can enter any color value into these boxes.
Keycolors to identify transparent portions of logos can be exact or inexact. The Tolerance control determines this. If Tolerance is 0, then all keycolors have to exactly match the Red / Green / Blue values shown in the key color control group. If Tolerance is nonzero, then the Red / Green / Blue values can deviate from the keycolor by the tolerance value and still be treated as being equal to the keycolor.
For example, it Tolerance is set to 5, and the keycolor is set to grey(192, 192, 192), then pixels in the bitmap with value (187, 187, 187) will also be transparent.
The degree of transparency of the logo is variable through 256 steps.
If the setting is 255, the logo will be opaque. If the setting is 0, the logo will be completely transparent. If you have set a keycolor, the weighting or transparency value is applied only to pixels that do not match the keycolor and hence are always completely transparent.
You can set the weighting either with the slider or by editing the number in the edit box.
Note that the SimulStream Eval logo is a special case – it is restricted to the range 128…255 so that it cannot be made completely transparent.
Logo Position and Size
The Logo Position and Size sub-page lets you position and scale the logo. It is strongly recommended that you have preview video running when you use these controls.
The large indented rectangular area at the top of this sub-page represents the video area where the logo can be positioned. The smaller rectangle represents the logo. To position the logo, click on the logo rectangle and drag it to the new position.
The four “Nudge” buttons, L, R, U, and D, move the logo left, right, up, or down exactly one pixel at a time on the output video. Since the positioning rectangle may be scaled down from the full video size, the Nudge buttons allow more accurate positioning of the logo.
The slide control at the bottom right of this sub-page controls the scaling of the logo. The [1X Scale] button returns the size to the original size of the .bmp graphic. The quality of a scaled image will not be as good as the quality of the 1X image. We recommend that wherever possible for production work you prepare artwork of the exact size at which it will be used.
Notes on Logos:
• Because the logo properties tab is used to set up a logo interactively on live video, its behavior is different from the behavior of the other tabs. The driver updates the controls on the logo tab immediately, without waiting for you to click [Apply]. You will see that [Apply] enabled only right after you select a different pin spec. As soon as you make any change to any logo control, [Apply] becomes disabled and stays that way until you change to another pin spec.
• If you set up a logo with video set to one size, then resize the video, the logo is not scaled correspondingly. This may not be desirable, since you may want the logo to expand to the same scale as the video window. Click the [1X Scale] button to restore the logo to its unscaled size or import a logo prescaled to the new desired size to ensure the best image quality.
The Captions Tab
Osprey-530/540/560 note: With these products the driver cannot decode captions when video brilllghtness or contrast are set at extreme values. This will only be a problem when they are set to such extremes that normal video will not be viewable.
CC Pin Select
When the “Both” radio button is selected, changes you make to the captioning setup apply to both the capture and preview pins. This is the default setting.
If you like, however, you can have different setups for the two pins.
For example, you could enable cropping on the capture pin but not on the preview pin. When you select the “Capture” radio button, the current captioning settings for the capture pin are loaded, and changes you make apply only to the capture pin, not to the preview pin. The “Preview” button works analogously.
Note: The Osprey SwiftCap capture application greys out the Pin Select choices and forces the “Both” selection. This application expects the Size and Crop settings for Capture and Preview to be locked together. Some other Osprey applications may do this, by intention, as well.
Render NTSC Closed Captions on Video
The 4.0.0 driver can internally render closed captions on video when NTSC video is selected on the input. There is a control to select which channel to render (although CC 1 is the only channel that is commonly used).
Note that this control only affects rendering on video performed internally by the driver. The AVStream 4.0.0 driver has two additional ways of delivering captions.
First, it exposes a DirectShow-standard CC pin. This pin can be used directly by applications such as Windows Media Encoder’s scripting facility.
Second, the driver has a proprietary Closed Caption API for use by C++ developers. It delivers raw captioning data from any CC or Text channel. It also delivers line-interpreted data from these channels, suitable for a scripting display or for capture to an ASCII file. Is also delivers XDS – “Vchip” and other ancillary data – in raw form. The applet named CCChannels.exe that is included with the driver release demos these capabilities.
The control group “Render Logical White As” maps white captions to a color other than white. This is a proprietary extension to the Closed Captioning standard. When logical white is mapped to, for example, red, the CC standard captioning red also works; however, it is not possible to distinguish “logical white” red captions from “standard colored” red captions. Since standard colored captions are so little used, this characteristic has little practical effect.
This group controls whether the closed caption character pairs emitted by the DirectShow CC pin are from field 1 or field 2 of the video. The DirectShow specification is that CC on a CC pin is always from field 1; however, this extension allows application developers to access field 2 data such as XDS data (including vchip) via a DShow standard pin.
Capture and Preview Pin Properties
This dialog is the default DirectShow way for obtaining a user’s settings for the output format of captured video.
Changes made in this dialog apply to the currently selected pin only.
The settings for the capture and preview pins are independent; in applications like GraphEdit or AMCap, both must be set before both pins are used.
Access to the Pin Properties dialogs is application-specific. For example, in the AMCap capture application, access is by two entries in the Options menu, Video Capture Pin… and Video Preview Pin….
In GraphEdit, right click on the pin you wish to set the properties for.
Many applications do not use these dialogs; they instead have their own built-in ways of setting these parameters.
The three active fields of the dialog set the Color Space or pixel format of captured video; Output Size of the video, and Frame Rate.
The recommended order for setting these parameters is: First, Color Space; second, Output Size; third, Frame Rate. If you set the frame rate before the other two, it may be lost so that you have to reset it.
The Output Size drop box displays a selection of standard size settings plus one additional setting designated as “default” that DirectShow obtains from the capture driver. You can obtain specialized video sizes by a two-step process: First, go to the Filter Properties Crop tab described above and set the Default Size to a custom value. Then, enter the Pin Properties dialog and select the default entry, which will now be set to your custom value.
For more information about the supported color formats, refer to Video Driver Topics, Color Formats.
The area of the dialog marked Compression is not relevant for the Osprey AVStream driver.
The Video Standard setting is read-only in this dialog. To set the video standard, go to the Video Decoder tab of the filter property pages.
AVStream Driver Reference Information
Overview of Filters, Pins, and Properties
In DirectShow the words “filter” and “pin”, as well as “driver” and “device”, are frequently used. The following diagram shows their relationship as they apply to Osprey hardware and drivers.
At the bottom this diagram are one or more physical Osprey hardware devices. All Osprey devices of a given type (such as Osprey-230 or Osprey-560) are controlled by a single Osprey binary, the Osprey AVStream Driver. For each physical device the AVStream Driver creates one logical Video Device and one logical Audio Device.
On top of each Osprey logical Video Device, one or more Video Filters is created. If the SimulStream option is not installed, there is a single Video Filter for each Video Device. If SimulStream is installed, there can be multiple Video Filters for each Video Device
The distinction between “Device” and “Filter” is important mainly to SimulStream users. For non-SimulStream users, Device and Filter effectively mean about the same thing. For SimulStream users, each SimulStream Filter acts as a “virtual device” that can be accessed by name and can deliver a separate video stream with its own independent control settings.
When SimulStream is enabled, some functions and capabilities are device-level, and others are filter-level. Examples of devicelevel functions are input select, and the controls for brightness, contrast, hue, saturation, and sharpness. These are closely tied to the underlying hardware of the device, which inherently allows only one input to be selected at a time, and one set of hardware control settings to be applied. Examples of filter-level functions are crop, logo, and caption settings, which can be different for each video filter, and in fact for each pin of each filter. Some other capabilities such as deinterlace and software gamma correction could logically be either device-level or filter-level, but are treated as device-level
for practical reasons.
Each Video Filter has one Capture Pin and one Preview Pin. A “pin” is the source or destination of a video or audio stream. A video capture pin is a general purpose pin used for capture to a file, an encoder, an on-screen renderer, or any other destination. A video preview pin is mainly intended for on-screen rendering. Each Osprey Video Filter also has a Closed Caption pin and a Vertical Blanking Interval (VBI) pin for capture of specialized ancillary data.
On top of each Osprey logical Audio Device, one Audio Filter is created, with one or more pins capable of sourcing one or more audio streams. There is not much practical distinction between an Audio Device and an Audio Filter in either the SimulStream or non-SimulStream cases.
Both devices, filters, and pins may have associated “Properties”.
“Properties” are control parameters that can be read from or written to the component. Some Property Pages are standard Windows DirectShow pages. For example, the Property Page for an individual pin is a standard DirectShow page. The “Video Proc Amp” and “Video Decoder” Pages are also DirectShow-standard. The rest are proprietary to the Osprey driver.
As a user, you interact with Property though visual “Property Sheets”, “Property Pages”, or “Property Tabs” that are part of a tabbed dialog. As a programmer, you can set properties directly from within the code of your application, using either the standard DirectShow API or the custom Osprey extension API that is available from ViewCast Corp in an SDK.
Overview of Direct Mode and PostProcessing Mode
Maximize Video Quality
The 4.0.0 driver has two distinct operating modes. Direct Mode is a simple, low overhead mode for basic capture. PostProcessing Mode enables a number of filters, transforms, and renderers within the driver, and supports the SimulStream option.
The purpose of Direct Mode is to capture and/or preview video with very low CPU overhead. It is meant for low capability machines, and for other cases where it is imperative for the driver to use as little CPU as possible. Scaling, cropping, and color conversion are done in hardware, incurring no processing overhead – but at the cost of reduced flexibility.
The drawing shows a graph of Direct Mode processing; the drawing is mainly interesting as a comparison point for the PostProcessing Mode drawing in the next section.
In Direct Mode, each device has one video capture pin, and one video preview pin. Video can be cropped and scaled, and the crop and scale specifications can be different for two pins.
In Direct Mode, the driver does not apply deinterlacing, gamma correction, logos, or on-video captioning.
There is no SimulStream in Direct Mode; if SimulStream is turned on, the Direct Mode control is deselected and disabled.
In direct mode the driver is somewhat restricted in the combinations of capture and preview video that it can produce at the same time.
If the capture pin alone is used or the preview pin alone is used, the driver can produce video in any size and rate.
If both the capture and preview pins are used, the limitations to video size and rate are as follows: The capture stream is preemptive over the preview stream, in accordance with Microsoft recommendations for video capture drivers. That is, if (1) there are both a preview and a capture pin; (2) the capture pin frame rate is 29.97 frames per second (25.0 PAL/SECAM); and (3) the source video of either or both pins is interlaced, using both video fields, then there will be NO preview video – the preview window will be blank.
If the above conditions hold except that if the capture pin frame rate is less than 29.97, then the preview rate will be 29.97 minus the capture rate. In other words, the preview pin will obtain a video frame only in time slots when the capture pin does not require one.
The driver never copies video from one pin to another in Direct Mode.
On the Osprey-2X0, -300, and -440, Direct Mode supports Closed Captioning delivered to the DirectShow CC pin, as well as to the new Osprey-proprietary CC streaming interface demo’ed by the CCChannels applet supplied with the driver. The Osprey-530/540/560 implements Closed Captioning differently, and captioning of all types requires Post Processing Mode. Direct rendering of captions on video within the driver requires Post Processing Mode for all Osprey boards.
The drawing shows a possible graph of video data flow within the driver in PostProcessing Mode. This particular graph assumes that SimulStream is activated so that more than two video pins are possible. There are four video output pins, represented by the pale yellow round rectangles:
• The upper pin produces scaled and/or cropped I420 video, with a logo (bug) and Closed Captions rendered on the video.
• The second pin produces scaled and/or cropped YUY2 video with a logo but no captioning. In this particular graph, the upper two pins are scaled and cropping identically, so a single scaling operation can service both pins.
• The third pin has a different scale/crop specification, so its video runs through a separate scaler/cropper. The video is captioned and converted to Rgb15.
• The lower pin produces unscaled, uncropped D1 YUY2 video with no logo or captioning.
The video routed to all pins is in this example deinterlaced and gamma-corrected. Deinterlace or inverse telecine if used are always applied globally to all pins, as is gamma correction. Scaling, cropping, logoing, captioning, and color format conversion are performed separately for each pin.
Compared to Direct Mode, Postprocessing Mode adds the following capabilities:
1. With SimulStream disabled, there is still a maximum of one capture pin and one preview pin on the device at a time.
However, there are no restrictions on combinations of video size and rate, color formats, or crop settings. The driver will color convert and copy video as required to deliver up to 25 or 29.97 frames per second in any format to the two pins.
2. With SimulStream enabled, there can be multiple capture pins and multiple preview pins. Each capture and preview pin pair is placed on a separate fi lter. The maximum number of each type of pin is the same as the maximum number of fi lters you have elected to expose in the SimulStream control group. Any pin can produce video at any size, rate, color format, and crop setting. Of course, there will be practical limits imposed by the bandwidth of the machine.
The EaseStream™ feature is a proprietary postprocessing technique ViewCast has added to the AVS driver that allows for greater data throughput on the PC bus.
The user has the option to choose between Maximize Video Quality or Maximize Video Throughput (EaseStream).
In the Video Capture Properties Dialog box, the Filter tab has a section for the Postprocessing Mode.
• If you choose Maximize Video Quality, EaseStream is disabled.
• If you choose Maximize Video Throughput (EaseStream) Postprocessing, this allows for more data throughput, which simultaneously allows for higher resolution capture on more channels.
3. The following post processing fi lters can be applied, with or without SimulStream enabled:
– motion adaptive deinterlacing and inverse telecine
– gamma correction
– on-video caption rendering
Some of these filters operate globally on all filters and pins of a devices, and some operate on a per-filter or per-pin basis:
• The Video Proc Amp controls – brightness, contrast, hue, saturation, and sharpness – are applied globally in hardware to the incoming video.
• The basic reference size – CCIR-601 or square pixel – is established in hardware. Horizontal delay and Osprey-530/540/560 720/704 width select are also performed in hardware.
• Deinterlace / inverse telecine and gamma correction are applied to all filters and pins on the device and have the same settings for all filters and pins. (Adaptive deinterlacing does not affect quality of single field 2:1 or 4:1 exact-scaled video, so long as the “sharp” algorithm is used. Inverse telecine does not affect single field exact-scaled video.)
• Crop, logo, and caption settings can be different for each pin of each filter, and the driver maintains separate settings for each filter and pin.
• Video size, color format, and frame rate can also be different for each pin. It is the responsibility of the application to maintain these settings.
Efficient Video Rendering
The following information is primarily useful to developers, but may also be helpful for those who want to fine-tune existing applications.
If you are seeing poor rendering performance, in terms of either excessive CPU utilization or jerky, stuttering video, read this section.
There are at least four basic ways to render video from the capture driver onto the screen. They vary greatly in their efficiency, and applications do not always make the best choice of renderer.
In these descriptions it is assumed that the AVStream driver’s Preview Pin is being used. The results would be the same if the Capture Pin were used instead.
Preview Pin to Video Renderer
“Video Renderer” is the oldest and simplest DirectShow renderer.
It does not use DirectDraw in the rendering process, which makes it substantially slower than VMR7 described below. It is the default rendering pathway that will be chosen when an application says “Render” without specifying a preferred pathway. For this reason, many applications deliver unnecessarily slow rendering performance.
Video Renderer works best when your output format is RGB rather then YUV, with the RGB format matched to your screen depth. On most modern systems that means RGB32 is the preferred format. If a YUV format is used, an extra filter, “AVI Decompressor” will be inserted into the graph to convert the YUV to RGB. The driver can do this conversion faster internally.
Preview Pin to Overlay Mixer to Video Renderer
Compared to a direct connection of Preview Pin to Video Renderer, the combination of Overlay Mixer plus Video Renderer provides performance that is …different. It is hard to be more specific than that without reference to specific machines; refer to the data tables below.
This is the only pathway that renders closed captioning correctly when a DShow CC or VBI pin is used rather than the driver’s internal rendering. For CC rendering, the output of the Line 21 filter connects to an input of the Overlay Mixer.
The best video format to use with Overlay Mixer is YUY2.
Preview Pin to VMR7
VMR7 is short for “Video Mixing Renderer 7”. VMR7 is a newer renderer that is generally much faster than the old Video Renderer.
When the driver is running in Direct Mode, VMR7 uses an efficient DirectDraw configuration to render with almost no CPU overhead, especially when YUY2 video is used. When the driver is running in PostProcessing Mode, DirectDraw is not used but it is still the fastest renderer.
Unfortunately, VMR7 is not the default video renderer in building a filtergraph – an application must explicitly ask for VMR7 in its graph in order for it to be used. This causes many simpler applications to render video much less efficiently than they might.
VMR7 works best with YUY2 video and there is usually little reason to use any other format. It will, however, work fairly well with the RGB format – usually RGB32 – that matches the current screen depth.
We recommend letting DirectShow choose the video format. It will generally make the correct choice. In particular, on some (usually older) systems, if two video frames are to be rendered with VMR7 at the same time, only one can be YUY2; other(s) will be RGB, with a conversion filter inserted into the graph if necessary.
We do not provide an RGB24 option on the preview pin for use with 24-bit screens because on at least some display adapters the rendering of RGB24 to VMR7 is incorrect.
Note that VMR7 cannot be used when closed captions are to be rendered from the driver’s DShow-standard CC or VBI pin – use the Overlay Mixer to Video Renderer pathway instead. If the driver’s internal rendering is used, the VMR7 will work and is recommended.
Preview Pin to VMR9
Video Mixing Renderer 9 is the newest video rendering method and the one on which Microsoft supposedly will base its future development. The intent is to combine the functionality of the Overlay Mixer plus Video Renderer in one module that takes advantage of the latest developments in DirectShow. We are finding that at its present stage of development, with our hardware, VMR9 does not achieve the very high efficiency of YUY2-to-VMR7. Also, although VMR9 is supposed to function as an overlay mixer for rendering captioning from the driver’s DShow CC or VBI pin, we have
never seen it function correctly.
Some Data Points
The following measurements are CPU percent on two machines – a fairly old P4, and a newer dual Opteron 244. The video size is 640×480. The screen depth is 32 bits. The following abbreviations are used:
• YUY2 = the Osprey driver’s preview pin in YUY2 format
• RGB15 = the Osprey driver’s preview pin in RGB15 format
• RGB32 = the Osprey driver’s preview pin in RGB32 format
• VR = old Video Renderer
• VMR7 = Video Mixing Renderer 7
• VMR9 = Video Mixing Renderer 9
• AVI = AVI Decompressor
• OVL = Overlay Mixer
The PostProc results are shown in two modes: with all post processing filters turned off, and with the adaptive deinterlace filter turned on.
Generally these results show the following:
1. The great desirability of newer machines for video processing. This has to do with system architecture more than raw CPU speed.
2. VMR7 is generally fastest. If you don’t need the driver’s PostProcessing, then Direct Mode with VMR7 is especially fast.
3. Results for specifi c pathways can be inconsistent across different machines. For example, on the P4, YUV to VR is faster than RGB to VR; on the Opteron, RGB is faster.
In evaluating these benchmarks, bear in mind that all of them involve video rendering to the screen. Depending on the exact pathway, video rendering can result in CPU utilization that is a lot higher than for other capture scenarios. Specifically, writes to display adapter memory that are performed by the CPU rather than with direct memory access (DMA) operations may be inordinately slow. If you are streaming video or capturing to file you will not see numbers that are this high. If you are encoding video, you may see high CPU utilization, but much or most of it will be from the encoder rather than the driver.
Dual Opteron 244, 1.8 GHz, 3GB, NVIDIA GeForce 6600 PCIe x16
PostProc w/o Deilace
PostProc w/ Deilace
RGB15 -> VR
RGB32 -> VR
YUY2 -> AVI -> VR
YUY2 -> OVL -> VR
RGB32 -> VMR7
YUY2 -> VMR7
YUY2 -> VMR9
P4, 2.0 GHz, 512MB, Rage Fury Pro/Xpert 2000
PostProc w/o Deilace
PostProc w/ Deilace
RGB15 -> VR
RGB32 -> VR
YUY2 -> AVI -> VR
YUY2 -> OVL -> VR
RGB32 -> VMR7
YUY2 -> VMR7
YUY2 -> VMR9
Video Standards and Sizes
Video Standard refers to whether the video signal format is NTSC, PAL, or SECAM. Depending on the exact product version you have, some or all of the following standards will be available:
* NTSC-M – North America
* NTSC-J – Japan
* PAL-B, D, G, H, I – many countries in Europe and elsewhere.
B, D, G, H, and I refer to five nearly identical subformats.
Full-sized NTSC-M and NTSC-J have 525 lines total, 480 lines visible, per frame and a display rate of 59.94 fields per second, or 29.97 interlaced frames per second. Although capture-to-PC applications normally use only 480 video lines, the full NTSC frame actually contains 485 video lines, and the AVStream driver provides a control to capture all 485 lines. The control is located on the RefSize property tab.
Full-sized PAL and SECAM have 625 lines total, 576 lines visible, per frame and a display rate of 50 fields per second, or 25 interlaced frames per second.
The standard frame sizes are different for NTSC and PAL. For example, the half-frame size in pixels is 360×240 for NTSC, and 360×288 for PAL. The driver automatically adjusts the reference size and default size for the video standard you are using.
Note that the Osprey-300 always uses CCIR-601 horizontal proportioning, which is based on a 720-pixel full line width.
The Color Format is the arrangement of data bits representing the colors of each pixel. For example, in the RGB555 format, each pixel of data is stored as 5 bits of red, 5 bits of green, and 5 bits of blue color information.
Video delivered by the Osprey board to the system is in uncompressed format. It is possible to compress the video at a subsequent stage of processing. However, this dialog field refers specifically to the uncompressed raw video that the board delivers to the system.
The Osprey AVStream driver supports the following capture pin formats.
* YUY2 and UYVY – Each pixel is represented with a total of 2 bytes (16 bits) of data. The data is encoded as separate data for luminance (intensity) and chrominance (color). This mode is mainly used as an input to software compressors.
See YUV Format Details below.
* YUV12 planar – Also known as I420. This is a complex format in which there are in the aggregate 12 bits of data per pixel. Each pixel has 8 bits of luminance data. Each group of 4 adjacent pixels arranged in a 2×2 square shares two bytes of chrominance data. See YUV Format Details.
* YVU9 planar – Similar to YUV12 planar, except that there are in the aggregate 9 bits of data per pixel, and each byte pair of chrominance data is shared by 16 adjacent pixels arranged in a 4×4 square. See YUV Format Details.
* RGB32 – Each pixel has four bytes (32 bits) of data – one each for red, green, and blue, plus one byte that is unused.
The pixel has 256 shades of each of the three colors, for a total of 16.7 million colors.
* RGB24 – Each pixel has three bytes (24 bits) of data – one each for red, green, and blue. This is another “true color” mode with 16.7 million colors.
* RGB555 – Each pixel has two bytes (16 bits) of data. There are 5 bits each of red, green, and blue data; the sixteenth bit is unused. This is a “high color” mode, also known as “5:5:5.”
* RGB8 (Greyscale) – The Osprey AVStream driver uses the RGB8 format for greyscale video. RGB8 is a palletized format. Each pixel is represented by one byte, which indexes one of 256 colors in a color palette specified by the driver. The Osprey driver sets the color palette to greyscale entries, and captures “Y8” luminance-only data.
YUV Format Details
YUY2, UYVY, YVU9, and YUV12 are YUV formats. In these formats, each pixel is defined by an intensity or luminance component, Y, and two color or chrominance components, U and V. Since the human eye is less sensitive to color information than to intensity information, many video formats save storage space by having one luminance byte per pixel while sharing the chrominance byte among two or more pixels. YUV is also very similar to the color encoding used for analog color television broadcast signals.
YUY2 mode, sometimes referred to as 4:2:2 packed mode, consists of a single array of mixed Y, U, and V data. Each pixel has one Y(intensity) byte. Each pixel shares its U and V bytes with one of the pixels horizontally next to it.
YUY2 uses the same number of aggregate bytes per pixel as RGB15, which is two. However, YUY2 is more efficient than RGB15 because it stores relatively more of the intensity information to which that the human eye is most sensitive.
UYVY mode is very similar to YUY2 except that the bytes are swapped as follows:
YVU9 and YVU12 are “planar” modes – the Y, U, and V components are in three separate arrays. It is easiest to explain the format with an example: Let’s say you have a 320×240 YVU9 format. The buffer has 320×240 bytes of Y data, followed by 80×60 bytes of V data, followed by 80×60 bytes of U data. So each U and each V byte together contain the color information for a 4×4 block of pixels.
Similarly, a 320×240 YUV12 format has a 320×240 Y array, followed by a 160×120 U array, and then a 160×120 V array.
Note that in the I420 format used by Osprey, the order of the U and V arrays is reversed from the order in the YVU9 format.
Closed Captioning (CC)
The Osprey AVStream driver supports NTSC closed captions in three separate ways.
1. Through standard DirectShow CC and VBI pin.
2. By rendering captions directly onto video on the capture or preview pin. The captioned video can be streamed, written to fi le, or rendered directly.
3. Through an Osprey custom property.
On products other than the Osprey-530/540/560, the driver also provides PAL/SECAM captions as well as teletext data in raw form via the VBI pin (not through the CC pin). Refer to the next section on Vertical Blanking Interval (VBI) Capture for more information. The rest of this section is specific for NTSC captioning only.
Captioning via CC or VBI Pins
The driver supports the standard DirectShow CC and VBI pins (on the Osprey-530/540/560, the CC pin only; on the other products, both pin types). The CC character pair data can be streamed to applications such as Windows Media Encoder 9, or rendered directly to the screen using the DShow Overlay Mixer filter. The 4.0.0 driver can be set to output CC field 2 character pairs on the CC pin, instead of the standard CC field 1 data. XDS (vchip) data is embedded in the field 2 stream.
The GraphEdit filtergraph shown here displays CC on rendered onto preview video. The Line 21 Decoder downstream of the Osprey-530/540/560 capture filter interprets the CC pairs and renders an overlay of the characters. The Overlay Mixer combines the CC overlay with the preview video, which is then rendered onscreen. It is also possible to capture the character pair stream as a standard stream of an avi file, (although there will be problems with timestamping and synchronization); or, to directly manipulate the CC stream in a standard way with a custom application.
Our testing with the current version of DirectX 9 indicates that closed captions do not render properly with the VMR9 renderer in place of the Overlay Mixer / Video Renderer combination. Therefore, the default Video Renderer in combination with Overlay Mixer should be used.
When SimulStream is not installed, the driver supports two CC pin instances. One could be associated with the video capture stream, the other with the preview stream. In practice, a DirectShow Smart Tee Filter can be inserted into the graph to make any number of VBI pins. When SimulStream is installed, you can have two CC pin instances per SimulStream filter.
There are three user-accessible controls built into the driver that affect Closed Captioning.
1. On the RefSize property page, in the control group shown below, 480-line video must be selected and the radio button to start video at either “Lines 23/286” or “Lines 22/285” must be selected.
2. On the Captions property page, most of the controls relate to the driver’s internal direct rendering on video. The following control selects fi eld 1 or fi eld 2 as the fi eld to be streamed through the CC pin. This control is per-fi lter; both available pins on the fi lter are set the same way. For SimulStream users, the pins on different fi lters can have different settings.
3. On the Device -> Extras… property page, you have the choice to set with “Normal” or “AVI-Compatible” timestamping of Closed Caption samples.
This control is a workaround to what an apparent problem in DirectShow – if you attempt to capture a CC character pair stream to an AVI file with “Normal” timestamping, the file will become extremely large and the capture will fail within a few seconds. The “AVI-Compatible” mode allows capture of CC to AVI. Unfortunately, the problems with timestamping mean that time synchronization between the video and CC streams depends on their physical interleaving in the file, so that time synchronization will be poor.
If the AVI file is set up to be “non-interleaved”, synchronization is not very good. If the AVI file is set up to be “interleaved”, synchronization is very poor.
For all applications other than capture to AVI, this control should be set to “Normal”. WME9 among others requires the “Normal” setting if CC is used.
Windows Media Player will not play back an AVI file with an embedded CC stream. The following GraphEdit filtergraph will playback an AVI file containing a video stream plus a CC stream, with the CC rendered on the video:
Direct CC Rendering on Video
The driver can render closed captions directly onto capture or preview video. The captioned video can be encoded, written to file, or rendered directly to the screen. The driver has to be in PostProcessing Mode.
CC Streaming Interface
The driver supports an Osprey custom property which provides the closed caption character stream for use by custom applications.
The Osprey filter named CCLineInterp.ax, supplied with the driver package, provides user-mode support for this captioning mode. The Osprey sample applet named CCChannels.exe, also supplied with the driver package, demos a CC line interpreter and XDS (vchip) extraction and display. Refer to the description of CCChannels.exe in chapter 5. Refer to the documentation for the Osprey AVStream SDK, version 4.0.0, for a description of this interface for developers.
Both the filter and the applet are provided in source code form in the SDK.
Vertical Interval Timecode (VITC)
Vertical Interval Timecode (VITC) data is embedded in the Vertical Blanking Intervals (VBIs) of some video content. Timecodes mark each frame with an hour / minute / second / framenumber marking that can be use for frame-precise editing.
The illustration below shows a VITC timecode waveform.
The current Osprey VITC implementation is preliminary in nature.
The features and method of implementation are subject to change.
We invite comments on the timecode-related capabilities that you need for your application.
Osprey’s approach to VITC is to invisibly watermark the video bits of each outgoing video frame with its timestamp data. The illustration shows a timecode extracted from a watermarked frame and rendered as text on the video. Four elements are used to produce it:
• The device extracts timecode data from the vertical blanking interval (VBI) waveform.
• The driver watermarks timecode into the video preview or capture pin’s output data.
• A custom filter decodes the watermark from the video and renders it.
• A GraphEdit graph combines the required filters. The filtergraph is as follows:
The Osprey Timecode Filter resides in the module TCOverlay.ax and is installed and registered as part of the standard driver installation.
The source code for this filter is included in the Osprey AVStream SDK.
The Osprey Timecode Filter also exposes to applications a custom property and callback function that allows it to return the VITC data for each frame along with the frame’s timestamp to the application.
Since use of this capability requires custom programming it will not be further discussed here. Refer instead to the Osprey AVStream SDK Users’ Guide. A sample SDK applet named TCApp illustrates the interface.
Timecode stamping must be enabled in the driver before it can be used, and the field and line number correctly set. The Osprey-530/540/560, unlike the Osprey-100 and 200 series devices, does not implement an autosearch function to find the VITC line.
To access the controls, go to the Device property tab and click the Extras… button.
It is recommended that timecode marking be disabled when not in use, especially the auto search feature – on a slow machine it uses several percent of CPU bandwidth – especially if timecodes are not present.
Note that VITC and LTC – Longitudinal Timecode – are two distinct encoding systems, and this driver supports only VITC.
A suggested reference on timecode is Timecode: a user’s guide – 3rd ed., John Ratcliff, Focal Press, 1999.
Vertical Blanking Interval (VBI) Capture
The Osprey-530/540/560 does not support VBI raw capture. It only supports decoded capture of the two special streams, Closed Caption(CC) and vertical interval timecode (VITC). If your application requires VBI capture for WST teletext decoding or other purposes, and you are using analog inputs, you can use an Osprey-100 or 200 series device instead.
The Osprey AVStream driver provides DirectShow-compatible VBI pins. VBI data includes Vertical Interval Timecode (VITC) in both the NTSC and PAL worlds. In NTSC, line 21 Closed Captioning, although it is strictly speaking part of the video interval rather than true VBI data, is commonly treated as VBI data. In PAL, World Standard Teletext (WST) is encoded in the VBI data region.
The illustration above shows an NTSC CC waveform. This illustration is made using the VbiGraph sample app that is included with the driver and also available in source form in the Osprey AVStream SDK.
The driver delivers VBI data as raw waveforms, which are then decoded by external DirectShow filters. DirectShow provides three filters under the classification “WDM Streaming VBI Codecs” that will decode data from VBI pins:
• CC Decoder
• NABTS/FEC VBI Codec
• WST Codec
With the Osprey AVStream driver, either the CC pin or the VBI pin can be used to obtain closed caption data. If the VBI pin is used, an extra filter is required to turn the raw waveform into CC character pairs. The filtergraph below shows NTSC CC using the VBI pin; the graph in the CC section above shows CC from the CC pin; in the graph below, a CC Decoder filter must be inserted into the graph.
For PAL/SECAM, the following graph will display teletext and CC. (In this graph, to view CCs you have to select the CC page – probably page 801 – in the WST Decoder properties.)
When SimulStream is not installed, the driver supports two VBI pin instances. In practice, a DirectShow Smart Tee Filter can be inserted into the graph to make any number of VBI pins. When SimulStream is installed, any number of VBI pins are allowed.
The Audio Driver
Setup and control for audio are much simpler than for video. The basic steps are covered in the following topics:
The audio source is set using the Osprey mixer driver interface. Most applications, including the Windows Media Encoder applications, interface to the mixer driver directly and expose the look and feel specific to that application. However, the default Windows interface to the mixer driver can also be used. There are two simple methods for getting to the mixer source and volume control dialog box.
1. The easiest method for accessing this interface is to right click the speaker symbol on your taskbar (typically on the bottom right-hand side of your screen). Then select the Open Volume Controls option. (There is a checkbox in Control Panel -> Sounds and Audio Devices to make this icon appear.)
2. If you do not see the speaker symbol, click the Start button on the Start Menu, select Start -> All Programs -> Accessories -> Entertainment -> Volume Control.
Either of these two methods brings up the audio mixer interface for the audio playback device, as shown below.
To get to the Osprey audio capture (recording) device, select Properties under Recording Control’s Options menu. This pops up the Properties dialog. Click on the Mixer device list at the top to see the list of audio input and output devices, including one or more Osprey cards. When you have chosen the device, click OK, and you will be returned to the Recording Control display.
The Osprey device is not a mixer in that it does not allow for mixing the various audio sources. Therefore, when one audio input is selected, any other input previously selected becomes unselected.
The Select checkbox at the bottom of each source sets which source is actually being used.
Osprey cards have hardware gain control. To control hardware gain use the volume slider in the mixer applet. The unity gain setting is when the volume slider is all the way up (in default driver settings).
The quick-access volume control (left click on the speaker symbol) on the task bar controls recording volume and playback volume.
To change record levels, go to Options, then Properties, and select Recording.
The Audio Properties Page
Many applications, including Windows Media Encoder, display the illustrated property dialog for setting audio source and volume level.
This is a general-purpose DirectShow property page that our driver has to support but which is not quite intuitive in its operation.
To select the audio source using this dialog, select the desired input in the “Pin Line:” selection box, then check “Enable”. This will also deselect whichever input had been previously selected.
The confusing part comes up when you select any input other than the first on the list, which happens to be “Unbalanced”. Let’s say you select “XLR Balanced”. When you close and reopen the dialog it will show “Unbalanced” in the selection box. It will look like the selection has been lost, but then you will notice that the “Enable” box is not checked. If you again select “XLR Balanced”, the “Enable” box will automatically show up as checked.
With the Osprey-530/540/560, which has multiple audio inputs, further confusion arises if you forget which input you had selected in the previous session and for some reason you want to discover this rather than just select an input for the new session. The only way to do that is to try all the inputs listed in the select box until you find the one for which “Enable” is checked.
This property page makes more sense if you understand that it is designed to allow mixing of audio inputs for devices that support that. Osprey audio capture filters do not support mixing of inputs – you have to select one stereo input at time – so the DirectShow design is not very convenient in our case.
The Osprey hardware supports sampling of analog audio at 32, 44.1 and 48 kHz in 16-bit PCM format. Captured audio data is downsampled and reformatted if necessary by Microsoft system audio components, allowing an application to capture audio data in 8-bit and 16-bit mono or stereo formats at any of the following data rates:
• 8 kHz
• 11.025 kHz
• 16 kHz
• 22.05 kHz
• 32 kHz
• 44.1 kHz
• 48 kHz
Osprey cards provides audio capture only, not audio playback.
Continue to play back captured audio using your system soundcard.
The AudioConfig applet is included as part of the Osprey AVStream driver package. It is also provided in source form in the Osprey AVStream SDK. It provides supplementary controls that are not available via the standard system properties.
AudioConfig’s controls are devicespecific and apply only to Osprey audio capture devices. Use the Device menu list at the top of the applet’s window to select which device you are controlling.
Preferred Audio Sample Rate
The audio sample rate is the rate at which the hardware samples the incoming audio, which may differ from the sample rate delivered to the client application.
The choice are to allow “Any Supported Rate”, or to force the sampling rate to be 32 kHz, 44.1 kHz, or 48 kHz. If “Any Supported Rate” is selected, all three rates, 32, 44.1, and 48 kHz, are available for selection by the Microsoft kmixer driver. Kmixer, however, does not necessarily select the optimum hardware rate for a given software rate. It may specify a 44.1 kHz hardware rate when a supplying 16 kHz software rate to the application, for example. In this case it would be better to set the Preferred Audio Sample Rate 32 kHz, so that downsampling is exactly 2:1.
When the audio input is SDI, the only sample rate that the Osprey hardware supports is 48 kHz. The driver will override your setting here.
When the audio input is DV1394, you have to use this control to match your audio sample rate to the actual rate of the incoming data. The two most common formats are 48 kHz/16-bit, and 32 kHz/12-bit. You may have to listen to a captured sample of your audio to determine whether the sample rate is set correctly – if the pitch is incorrect, try the other setting.
Mono Source Mode
• If set to Use Left Channel, then left channel audio data is copied to the right channel.
• If set to Use Right Channel, then right channel audio data is copied to the left channel.
• If set to Average Left and Right, no copying is done.
The Microsoft kmixer component always averages both channels when converting to mono. If a signal is present on, say, the left channel only, the Average mode will average the left channel with the silent right channel, effectively halving the signal amplitude.
Setting this control to Left will result in only left channel data in the mono capture, with no amplitude drop.
This control sets the hardware Input Reference level and softwarebased Boost factor. The settings are separate for each input of each device, and are applied to whichever input is selected in the current application or in the system mixer. The settings displayed do NOT automatically update when you change inputs in the application or mixer click the “update” button to refresh the settings.
As the screenshot above shows, the Audio Level control is different depending on which input is selected.
The Input Reference level is meaningful only on the analog unbalanced and balanced inputs, and is calibrated differently for each When a digital input is selected this control is disabled. This is a hardware gain control with the default level chosen such that the expected amplitude of a full volume input signal will have adequate headroom without clipping. If you do experience clipping, or are working with very low-level signals, you can adjust this level. On this control, a higher reference level results in lower gain, so the quietest setting is at the top of the scale. Click the “Dflt” button to restore the default value.
The Boost setting is a software gain adjustment that applies to both analog and digital inputs. Boost can be set individually for each input. It supplements the system mixer volume controls by providing a very wide adjustment range. You can use it to calibrate or normalize input levels across multiple inputs; or to accommodate microphones or other non-line inputs that have nonstandard signal levels. Again, there is a “Dflt” button to restore the default value.
CCChannels displays closed caption and XDS (vchip) data.
Check the CC1 box to open a window displaying captions as lines of text. There will be a line break between pop-on captions. There will not be line breaks between successive lines of rollup captions. CC2, CC3, CC4 and the Text channels are not often used.
Check the Raw 1 or Raw 2 box to view the raw uninterpreted character pairs from field 1 or field 2 respectively.
Check the XDS box to view interpreted field 2 XDS data. The fields at the left of the display show the category of the messages. The text in brackets at the right shows the data of the messages.
Saving to file: In order to get text saved to file, you have to check the Write file box before opening the streams. The text files will be named cc1.txt, text1.txt, f1raw.txt, and xds.txt and so forth, and the files will be placed in the directory where CCChannels.exe is located.
If a file already exists it will be appended to always.
How to test XDS: If a channel supports XDS at all, there will always be content advisory information that is readily understandable.
There will be other fields that may or may not make much sense. The main test is whether the XDS interpreted text is grouped into wellformed lines with messages that appear that they could make sense to whoever they are meant for.
CCChannels is a demo app for the underlying filter CCLineInterp.
ax. CCLineInterp uses the Osprey-proprietary CC streaming interface new to the 4.0.0 driver to obtain a stream of CC character pairs (or two streams, one from each field). CCLineInterp interprets the CC stream in any of three ways:
1. It can pass through the raw CC stream from Field 1 and/or Field 2.
2. It can split off any of the eight CC or Text channels and interpret it into ASCII lines of plain text. It can return multiple channels at once, and the driver can support multiple instances of the fi lter running in multiple process spaces.
3. It can extract XDS data from Field 2 and return it as XDS packets. CCLineInterp splits out the individual packets but does not decode them in any way.
CCChannels provides a thin encapsulation of the raw and CC line streams from CCLineInterp. It mainly just prepends the timestamp returned with each line of interpreted text. CCChannels provides a more extended interpretation of most of the XDS packet types, as in the xds.txt window in the illustration. If the “Write file” checkbox is checked before a stream is opened, the text as shown will be save to file.
CCLineInterp.ax is ready to use as-is if the interpretation format suits your application. Otherwise you may want to modify the CC interpreter. The source file CCChannel.cpp contains a complete line-oriented interpreter. It preserves horizontal text placement. It discards vertical text placement, and text modifiers including colors, italics, and underlines. It translates non-ascii special characters into approximate ascii equivalents where possible. It delimits pop-on captions (movie-style, as opposed to news-style) with an extra blank line between each pop-on.
For more detailed information on the US Closed Captioning standard, refer either to the standards document (CEA-608) or The Closed Captioning Handbook by Gary D Robson, Elsevier / Focal Press, 2004. Compared to the standards document, the book is more accessible, cheaper, and contains all the required technical information if you are willing to read between the lines a bit to get it.
CropApp allows you to set up crops visually and interactively. Its functionality is similar to the driver’s Size and Crop property page, but it has the added dimension of graphical placement of the cropping rectangle on live video. It has about the same functionality as SwiftCap’s crop setup dialog.
The functions of the controls on the left hand side of the video are as follows:
• If multiple Osprey devices are in the system, you can select the device of interest from the dropdown list at the top of the control groups. Click “Device Properties…” to access controls that are not explicitly addressed by CropApp.
• All operations affect both the Capture and Preview pin on the device. The driver’s Size and Crop property page is capable of setting the Capture and Preview pins differently.
If SimulStream is enabled, CropApp is hardwired to set up pin pair 0 only – to set up other pins you will have to go to the driver’s Size and Crop property page.
• The Reference Image group shows the video height and width that are the reference size for cropping operations.
For example, if the reference size is 720×480 and the cropping spec is 720×480, then the video is effectively uncropped. This group also states the basis for this reference size – that is, whether the video standard is NTSC (720×480) or PAL/SECAM (720×576).
• The Cropping Parameters group is where the current cropping parameters are shown. When the Enable button is Off, the entire video field is shown, with the crop as an overlayed rectangle. You can modify the crop in three ways:
• By editing the X, Y, Width, and Height boxes.
• With the two sets of arrows adjacent to these boxes.
• By dragging the center, edges, or corners of the crop rectangle on the video.
When the Enable button is On, only the crop field is shown, and the crop settings are not editable.
CropApp will not let you set crops that are smaller than a minimum width and/or height. The minimum size in the 4.0.0 driver is 48 wide
by 36 high.
• The Default Output Size group sets a default size that applications may choose. Use the slider to set the approximate size you want, and then if necessary use the [<] and [>] buttons to fine tune the setting.
The sizes available in CropApp will always retain a 1:1 height:width proportion. If you want to stretch the video to other proportions, use the driver’s Size and Crop property page, or SwiftCap’s crop dialog.
Not all applications use the driver’s default output size or present it as a choice; you may have to manually enter the settings calculated by CropApp into the application.
The Granularity group allows you to determine the allowed sizing increments for the selected video format. For example, if you select YVU9 in the drop list, you will see that the video widths allowed in this format are modulo-16, that is, 320, 336, 352, etc., and the video heights allowed are modulo-4 – 240, 244, 248, etc. All editing of the crop size will snap to the nearest allowed size.
The left and top of the crop have to be placed on even pixel boundaries – for example, in YVU9 the width must be 320, 336, etc, and the left side must be 0, 2, 4, etc.
Selecting a format here causes CropApp to use that format for its own rendering, but it does not cause that same color format to be selected in your application. In only ensures that your crop size will work with that color format when it is used.
We are finding that the default I420 codec will not render many output sizes, so when I420 granularity is selected, CropApp will observe the I420 granularity rule but render the video as YUY2.
Since you may see this problem in other applications, CropApp puts up a reminder message when it encounters this situation.
If you exit CropApp with the crop Enabled, that is, the center checkbox checked, the crop parameters will be set in the driver for any other application to use. If you exit CropApp with the crop disabled, the crop parameters will be set for other applications to use, but cropping will not be enabled until it is turned on as a separate step.
CropApp requires that the filter OverlayRect.ax be present on the system. The driver setup program installs this filter.
LogoApp allows you to interactively position and resize a logo on live video. The functionality is similar to that of the driver’s Logo property page, but you can place and size the logo by dragging its center, sides, or corners directly on live video.
The control bar across the top allows you to Enable/Disable logo display and select the 24-bit .BMP logo file. You can size and place the logo graphically on the video, or you can directly edit the top/left/height/width boxes. Use the Size 1X button to snap the logo to its original size. The Colors… button brings up a dialog to enable color keying, select the key color, and set the transparency of the logo.
The Size menu allows you to select full or half-size video. The Device menu displays a list of enabled devices and provides access to the selected device’s property pages. LogoApp sets the same logo spec for both the Capture and Preview pin. If SimulStream is enabled, LogoApp will set only Pin Pair 0. To set up other pin instances, or to set the capture and preview pins differently, use the driver’s Logo property page.
VbiGraph is a demo of DirectShow VBI streaming. VbiGraph is provided with all driver packages except the one for the Osprey-530/540/560 – which does not have a functional VBI pin. The current version of VbiGraph only works with the first video capture device enumerated. It will detect whether 525- or 625-line video is currently playing and configure itself accordingly. The controls let you display any VBI line from either video field.
Refer to the VBI section of the Video Driver Topics chapter for more information about VBI.
SwiftCap is a video capture application that is included with the Osprey AVStream package. It is included in source form in the Osprey AVStream SDK. SwiftCap is useful for general purpose capture and viewing of video, as well as for testing the installation. The following instructions take you through some basic scenarios for using this application.
Click the Preview button for a quick basic test of your video setup, or for basic video viewing. If you do not see motion video right away, make sure
• The correct device is selected
• An input to that device with a live video feed is selected
• The right NTSC, PAL, or SECAM video standard is set.
The descriptions below include instructions to correct these items if necessary.
The steps below will also show how to adjust the size of the video display.
SwiftCap has many possible scenarios and pathways. The following steps illustrate a few of the most useful possibilities.
1.Click the “Tools” button to open the capture settings dialog:
2. Set up the dialog as shown below. The numbers and circles show the suggested order of setup.
a. First decide whether you want to capture video only, audio only, or both; unselected controls will be disabled – the following assumes you have selected “Both”.
b. Select your video device and source. Select “No Compression”.
c. In the Video Format group, uncheck “Use Driver’s Default”.
d. Select the video standard, color format, frame rate, and video size you want to se.
e. Select your audio device and source. Select “No Compression”.
f. In the Audio Format group, check “Use Default” for this experiment.
3. Next, click the Destination button to open the Capture Destination dialog:
4. In the Destination dialog, set the items marked in red.
a. In the video section, select “Renderer”.
b. Select “VMR7 Renderer”. Note that there is a discussion of renderers in the Video Capture Topics chapter.
c. In the audio section, select “Renderer”.
d. Select your sound card as the rendering device.
5. Click the Capture or Start button.
An “Active Movie” video window will open on your screen, and your will hear audio from the capture source, until you click Stop.
A Capture-to-File Scenario
1. No changes are mandatory from the previous setup the Capture Settings dialog. However, you may want to select a video and/or audio compressor to obtain a much more compact capture fi le.
2. In the Capture Destination dialog, make changes as shown below.
a. In the video section, click the AVI File button.
b. Do the same in the audio section.
c. Select an AVI fi le. Click the >> button on the right to browse for a fi le.
d. Select Audio as the AVI Master, and Capture as the Interleaving Mode. If you are capturing video only or audio only, these settings are not used and the controls are greyed.
3. Click Start, then Stop after a few seconds. The Capture Results dialog shows capture statistics, including bytes captured, number of seconds of capture, and number of frames captured and dropped. It also has a Play button.
Click this to play back the AVI fi le with your default media player.
The crop settings obtained in SwiftCap are compatible with the settings obtainable from the driver property pages. Once set up in SwiftCap, they can be applied to other applications as well.
The menu item Settings -> Crop Settings… brings up the following dialog:
a. Click Enable Crop to enable or disable cropping. There is also a direct menu item Settings -> Crop Enable to turn cropping on using the current crop, or to turn cropping off.
b. Drag the edges or corners of the cropping rectangle to resize it, or drag its center to move it.
c. The top / bottom / left / right edit boxes give a readout of the current crop boundaries. You can also edit these boxes directly to obtain a precise size or position.
d. The output size, which is the fi nal size of the captured video, can be 1X, 1/2X, or 1/4X the crop size. There is also an entry in this drop box by which you can set a custom size.
e. The sizing grid sets the granularity of your crop width settings. For example, if you are capturing in YVU9 format, crop width must divide evenly by 16 and crop height must divide evenly by
4. Setting the sizing grid to 16×4 ensures that your crop settings will be correct for the capture format. The text line below the drop list shows which color formats your selected granularity applies to.
f. Click Refresh to update the image from the video source.
g. Save As… and Load… allow you to save multiple crop specifi cations for future reference.
Note that there are minimum values for crop size and output size;
SwiftCap will reject smaller values. Also, you cannot specify an
output size that is larger than the crop size.
Other Features of SwiftCap
1. Logo setup: SwiftCap has the menu item Settings -> Logo Settings… . This selection directly accesses the driver’s logo property page; for details, refer to the driver properties description. There is also a Settings -> Logo Enable control to directly turn the logo on or off.
2. Accessing driver properties: Click the circuit board icon on the toolbar.
NOTE: If you use the driver’s “Size and Crop” or “Logo” property pages, you will not have the option of saving different settings for capture and preview. The Pin Select radio buttons will be greyed out and forced to the “Both” position.
3. CPU meter: Turn on via the menu item View -> CPU Meter.
4. Load and save confi guration: These two buttons enable you to save SwiftCap settings for future use.
Limitations and Peculiarities of SwiftCap
The current version of SwiftCap does not capture or display closed captions.
If you select RGB8 greyscale as your color format, SwiftCap captures in greyscale, but continues to preview in color. Also, if you capture to the VMR7 Renderer or VMR9 Renderer, you will get color video; you will only see greyscale video with the “Video Renderer” selection.
SwiftCap does not support Video for Windows devices.
Osprey Hardware Specifications
Operating Temperature Range 0º to 40º C
Non-operating Temperature Range -40º to +75º C (RH)
Operating Humidity Range Between 5% and 80% (non-condensing) @ 40º C
Non-operating Humidity Range 95% RH (non-condensing); gradient 30% per hour
Operating Altitude Range 0 to 3,048 meters (10,000 feet)
Non-operating Altitude Range 0 to 15,240 meters (50,000 feet)
Digital Video on the Osprey-300
The Osprey-300 IEEE 1394 inputs connect to standard Microsoft drivers rather than to the Osprey AVStream driver. Osprey customers who are familiar with the Osprey-500/540/560 should understand that the DV implementation is completely different. On the Osprey-500/540/560 cards, the DV connector and capture hardware sit behind the Osprey audio and video capture devices and are controlled by the Osprey driver. On the Osprey-300, the DV is an entirely independent device.
If you look at the Windows XP Device Manager after installing an Osprey-300 you will see something like this. Under the category “IEEE 1394 Bus host controllers” there will be an entry for the Texas Instruments controller on the Osprey-300. This device is automatically activated whenever the card is plugged into the system. If you plug a DVCam into the Osprey card, an entry for it will appear under the “Imaging devices” heading. Both the 1394 controller and any devices plugged into it are logically distinct from the Osprey-300 analog audio and video devices shown under Sound, video and game controllers.
In theory you should be able to connect any 1394 device to the card, not just a digital video (DV) source. In this chapter, however, we focus on using the 1394 connector with DV devices such as camcorders.
Most major multimedia applications will recognize DV devices and work with them fully. For example, we have verified that Windows Media Encoder 9 supports a DVCam attached to an Osprey-300.
With major applications the DV connection should “just work” and the information here is for background and reference only.
Specifics of Osprey-300 DV Capture
The DirectShow filter used for DV capture is called the “Microsoft DV Camera and VCR”. This filter can capture video only, or audio and video together. In this respect it is different from the Osprey analog capture driver, which has logically distinct modules for audio and video capture.
Unlike the Osprey analog driver, which captures video into many user-selectable sizes and formats, the DV capture filter delivers just one format for each video standard.
For 525-line (NTSC) video, the video size is 720×480 and the video rate is 29.97 frames per second.
For 625-line (PAL/SECAM) video, the video size is 720×576 and the video rate is 25 frames per second.
The video format is always a compressed format designated with the four-character identifier “dvsd” (case-sensitive, and lower case). In this format, one NTSC video frame is 120,000 bytes, and one PAL/SECAM video frame is 144,000 bytes. By comparison, one uncompressed YUY2 NTSC frame, requiring 2 bytes per pixel, is 691,200 bytes, and one uncompressed YUY2 half-sized frame (360×240) is 172,800 bytes; that is to say, the half-sized YUY2 frame is significantly larger than the full-sized dvsd frame.
The dvsd format comes in two flavors – video-only, and audio + video interleaved. The audio + video data rate is slightly higher than the 120,000 or 144,000 bytes per frame quoted above – for NTSC it is about 129,000 bytes per frame, or about 3,866,130 bytes per second.
The dvsd format can be captured directly to AVI files. There are two subformats – Type 1 and Type 2. The Type 1 format stores the audio + video data as a single stream. The Type 2 format stores the audio and video data as two separate streams. The Type 1 format is more compact and efficient but is not backward-compatible with Video for Windows. Osprey’s SwiftCap application, as described below, currently supports only the Type 1 format. With other suitable applications the Osprey-300 DV connector can capture in either format.
Several additional DirectShow filters support the DV capture module.
The most important is the DV Video Decoder. This filter accepts dvsd video-only streams as input. As output it delivers an uncompressed YUY2 stream at full, half, 1/4, or 1/8 size. This filter is always used when rendering video. When capturing video without compression, it is normally not used, but could be useful for capturing quartersized or 1/8-sized video, at some savings in data rate. (Note that the full- and half-size options would increase the data rate to no purpose.) When video is captured with compression, a DV Video Decoder will be placed in front of the compressor, to deliver the YUY2 input that the compressor uses.
The other specialized DV filter commonly used in capture is the DV splitter, which accepts a dvsd audio + video interleaved stream as input, and outputs dvsd video-only on one pin, and standard uncompressed audio on the other.
Following the how-to description of SwiftCap, there are some sample DirectShow graphs that show some of the ways these components can be connected together.
This section provides specific information about how the bundled capture application SwiftCap supports DV capture on the Osprey-300. Note that this manual also contains a more complete general reference section on SwiftCap that is oriented towards its support of the Osprey analog driver.
Note – only more recent versions of SwiftCap work with DV devices.
The “Help -> About SwiftCap” message should show a version number 22.214.171.124 or later, and be copyrighted 2004 or later. The SwiftCap version supplied with the Osprey-300 driver package is 126.96.36.199.
The main features of SwiftCap’s DV support are highlighted in the following figure:
If a device such as a DV camcorder is connected to the Osprey-300, it will appear in the video device list as a “Microsoft DV Camera and VCR”. The Capture Settings dialog will appear as shown only when a DV device is selected; for analog SwiftCap devices the dialog is set up differently.
Note that even though a DVCam is an audio + video device, DirectShow classifies and enumerates it as a video device only.
SwiftCap adheres to this logic by displaying a DVCam as a video device choice, but not as an audio device choice. If you want to capture both audio and video from a DVCam, you should select “Video” in the Capture group at the right. If you want to capture DV video, and audio from another analog source, select “Capture Both” and uncheck “Capture DV Audio” (You can even work to capture both DV audio and analog audio at the same time).
If you select “Preview DV Audio”, SwiftCap will preview audio both in preview-only mode and when capture is happening. (SwiftCap does not preview audio with analog capture devices.) This capability could be useful when capturing audio from a remote or recorded source – but you will want to turn it off for capture from a live source, to avoid feedback.
Two checkboxes in the Video group, “Capture DV Audio” and “Preview DV Audio,” control DV audio.
The video Size control affects size of previewed video only, not captured video. As previously explained, dvsd video from the DV Video Capture Filter is always full sized and in CCIR-601 format, that is, 720×480 NTSC or 720×576 PAL/SECAM. While a DV Video Decoder Filter could be used to downsize the video, SwiftCap does not currently support this. SwiftCap also does not support compression of DV video at this time.
As you can see, the rest of the Video Format controls are greyed and read-only. The video format from a DVCam is always “dvsd”, as described above. SwiftCap will determine for you whether the camera is NTSC and 30 frames per second, or PAL and 25 frames per second. The aspect ratio from DVCams is always CCIR-601, meaning that the pixel width is 720.
This section contains more technical information that may give some users helpful insight into DV capture and rendering operations. The illustrations are DirectShow graphs as displayed by GraphEdit.
For still more advanced information, refer to the DirectX 9 SDK documentation available from Microsoft.
This graph shows the simplest possible video-only DV capture graph.
This is the simplest possible audio + video DV capture graph. The difference is that the DV Capture Filter’s A/V Out pin is used, which delivers an interleaved A/V stream rather than a pure video stream. The AVI file will be “Type 1” – that is, the audio + video will be structured as a single stream; this format is efficient but is DirectShow-only, not backwards-compatible to Video for Windows.
This is the simplest possible audio + video “Type 2” graph. The AVI file, now Video for Windows compatible, is now structured as an “auds” stream plus a “vids” stream. The DV Splitter Filter splits the interleaved A/V stream in to a dvsd video stream plus a PCM audio stream.
This graph shows basic video-only rendering. The DV Video Decoder converts the “dvsd” DV video stream to the YUY2 format required by the video renderer. The Smart Tee allows a capture stream to be connected as well as the preview stream. It is optional in this particular graph; however, the normal graph-building process usually inserts a SmartTee automatically.
This graph renders both audio and video. The Capture Filter’s DV A/V Out pin is used instead of the video-only pin. A DV Splitter is added to the graph to split the interleaved A/V stream into separate audio and video. The audio stream is standard PCM audio which can be directly rendered by a standard rendering filter. The video stream is in dvsd format and as before is converted to YUY2 by the DV Video Decoder before rendering.
This graph combines video capture with video preview rendering.
Here the Smart Tee becomes mandatory to split the single video stream into two.
Audio and video, capture with preview. This is the most complex graph that SwiftCap currently supports. It is a combination of elements described in the previous graphs.
This graph (which SwiftCap currently does not support) shows an A/V capture-only configuration to which a DV Video Decoder Filter has been added. The properties page also shown (at left) belongs to the DV Video Decoder and can be accessed directly from GraphEdit and some other applications. This graph captures the video stream in YUY2 format. As explained previously, the dvsd native DV format is a compressed format, whereas YUY2 is not. A YUY2 stream at 720×480 is much larger than the dvsd version, and the YUY2 stream at 360×240 is somewhat larger; you would probably want to use this graph only for 1/4 or 1/8 size capture.
This graph shows audio + video capture with the Microsoft Video 1 compressor. The compressor requires YUY2 as its input format and so the DV Video Decoder precedes it. A compressed graph of this kind substantially compresses the AVI data, at the expense of CPU time and video quality.
Setting AVStream Driver Properties in Video for Windows Applications
Video for Windows applications control the driver’s most important functions via compatibility mode dialog boxes. You cannot access the complete Osprey AVStream Filter Properties directly from these older applications. The compatibility mode dialogs do not have all the controls that are accessible from DirectShow applications. We therefore recommend that, before first use of a Video for Windows application, you set up and check out the driver using AMCap or a similar DirectShow application. The Swiftcap application screenshots are shown.
Selecting the Capture Device
If you have multiple DirectShow video capture devices on the system, selecting the capture device may be a two-step process. The details will differ slightly with different applications.
Pull down the Options menu, select from the list of devices at the bottom. The Osprey AVStream device will be listed as “Microsoft WDM Image Capture”.
Pull down the Options menu again, and select Video Source…
You will see the following dialog. Select the Capture Source tab.
Select the device from the drop list, and click Apply or OK.
With Osprey Swiftcap:
Pull down the Settings menu, select Capture Settings and select your desired Osprey card under Device.
Selecting the Video Source and Standard
In the same Video Source dialog, select the Video Source tab. The upper drop list shows the list of inputs for the card. The lower drop list shows the supported video formats. Select these two items and click Apply or OK.
Pull down the Video Capture Device menu and select the Video Inputs and Video Standards.
Brightness, Contrast, Hue, and Saturation
In the Video Source dialog, select Device Settings. If you have preview or overlay video already running, you can see the effects of the four sliders interactively. For PAL video, keep Hue at its default value.
The Video Format dialog is separate from the dialog pages shown previously. Access it from a menu entry or button titled Video Format… or Format…, depending on the application. Select from a list of standard resolutions and video formats and click Apply or OK to save the selections.
Video for Windows Issues
The mapper from Video for Windows applications to DirectShow drivers presents several problems that are beyond the control of driver implementers. The following comments are derived from tests with VidCap32, but should apply by and large for other Video for Windows applications as well.
1. “Overlay” video (in DirectShow this is called “preview” video) always runs when VidCap32 is loaded – even if overlay video is turned off.
2. There is no way to set the size of overlay video from the application. It is sized to the default size that is set for the DirectShow preview pin by a DirectShow application such as AMCap or GraphEdit. The size setting in the Video Format dialog shown above has no effect on the size of overlay video.
If overlay video is sized to 640×480 because that is the DirectShow default setting, and the capture video is sized by VidCap32 to 160×120, then overlay will be captured at 640×480 and scaled down 4:1 in software to the 160×120 size of the VidCap32 overlay window – wasting substantial system bandwidth in the process.
On the other hand, if overlay video is sized to 160×120 because that is the DirectShow default setting, and the capture video is sized by VidCap32 to 640×480, then overlay will be captured at 160×120 and scaled up 1:4 in software to the 640×480 size of the VidCap32 overlay window – resulting in a very grainy image with 4×4 cells.
3. With VidCap32, video capture runs all the time, even when no video is being previewed or captured. The reason is perhaps so that the mapper can support Video for Windows “preview”, which is derived from the DirectShow capture stream. In short,
4. A Video for Windows application running over a DirectShow driver may consume 25 to 50 percent of system bandwidth even when it is doing nothing.
5. If you are going to extensively use a Video for Windows application with a DirectShow driver, make sure that the DirectShow preview pin’s default size is correctly set. As explained, you have to use a native DirectShow application to do this. Open the driver’s fi lter dialog, go to the Crop tab, and set Default Size there. Most often, you would want to set the preview pin to the capture size you plan to use. But if you aren’t going to use Video for Windows overlay, or are not concerned about its quality, then set the preview pin to a very small size such as 160×120.
Blue/Green/Magenta Video Screen
The currently selected video input is not receiving an active video signal. Different inputs may provide a different symptom when a video source is not supplied:
• DV inputs will display Magenta (Osprey-540/560 only).
• SDI inputs will display Green.
• Composite and s-video inputs on digital class cards will display black with a green line.
• Composite and s-video inputs on multimedia class cards will display blue.
To solve this problem, check the following:
• Check that the camera, VCR, or other video source is powered and that its output is connected to the Osprey card’s input.
• Check that the correct video input is selected in the Control Dialog’s Source page.
Scrambled Video Image
You may have set the wrong video signal format for the signal input you are using. For example, you may have told the driver to look for NTSC-M video but are using a PAL-BDGHI video source. Make sure you know what signal format your video source is generating. Go into the Video Standard field of the Control Dialog’s Source page, and click the button for that signal format.
Poor Video Quality at Large Frame Sizes
Large frame sizes with the deep pixel depth (24- or 32-bit), or complex format (YVU9 or YUV12 planar), impose heavy demands on the PCI bus’s data transfer capacity. Our experience is that some systems cannot handle these formats at full frame sizes.
Systems vary in their data transfer limits. The characteristics of the PCI bridge are often more important than processor speed.
This problem should only arise if you have multiple Osprey cards or 1 or more Osprey-440 operating concurrently. Typical usage of a single Osprey card would not cause this kind of problem.
If you are having problems, we recommend that you:
• Use a smaller frame size (480×320 or less).
• Use a shallower color format (RGB15 or RGB24 instead of RGB32).
• Try a YUV format instead of an RGB format, and a packed format instead of a planar format.
• If you have a choice of PCs for video capture, try using another system with a different system board chipset.
Multiple Horizontal Lines Across Video Image
If there are multiple, regularly spaced, horizontal lines across your video image and your source material is copyrighted and copyprotected, you are seeing Macrovision™ copy protection.
The lines can vary in color from yellow to blue to green. These lines are not present in every frame of video. There may also be a black band at the top of the frame.
The Osprey-530/540/560 cards cannot eliminate these video artifacts.
These artifacts will only be present when you are using a copyprotected source, such as a high-quality DVD for testing a card.
There are other brands of copy-protection besides Macrovision.
Some of these employ similar methods (resulting in the above) and others do not. This is a good example of Macrovision effects but you should find a good way if possible to briefly note that there are other forms of copy protection and that they may have different effects on the picture.
No Closed Captions on DV or PAL Video
The Osprey-530/540/560 is capable of decoding closed captions on NTSC video inputs. This feature is supported on SDI and analog video sources – the composite and S-video inputs, and digital SDI, only. It is not supported on the DV input on 540/560 cards.
Cannot Play Back Recorded Audio
If you have a sound card installed, you should be able to hear audio when you play back recorded audio.
• Verify that the volume control for your playback device is not muted.
• Verify that the selected playback device is your sound card, and not the Osprey-540/560 Placeholder device. The Placeholder device exists in order to handle the situation where there is an Osprey-540/560 present without a sound card. Some Windows applications cannot use a recording device unless a playback device is also installed. The Placeholder device cannot play back recorded audio. You can use the same method to select playback device that you use when selecting the audio source.
DV Audio Is Too Slow/Low-Pitched or Fast/High-Pitched
When the audio input is on 540/560 cards DV1394, you have to use the AudioConfig applet’s Preferred Audio Sample Rate control to match your audio sample rate to the actual rate of the incoming data. The two most common formats are 48 kHz / 16-bit, and 32 kHz / 12-bit. You may have to listen to a sample of your captured audio to determine whether the sample rate is set correctly – if the pitch is incorrect, try the other setting.
Audio Recording Control Comes Up With Wrong Device and Wrong Inputs
The cause of this problem may be that you currently have or have had previously, a Video for Windows audio capture driver installed in the system. The Osprey AVStream install process normally removes a previous Video for Windows driver, but if you have multiple Osprey cards installed you do have the option of running the Video for Windows driver on some cards and the AVStream driver on others.
Unfortunately the Recording Control does not work smoothly in this situation. The Video for Windows device will always try to act like it is the selected device even if it is not. You have to manually enter Recording Control’s Options -> Properties dialog to select your device.
If you no longer have need for the Video for Windows driver, you can uninstall it using instructions obtainable from Osprey technical support. If you are comfortable using RegEdit to edit your registry, you can instead go to the following location HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32 and delete all REG_SZ entries named “mixer” or “mixer1” .. “mixer9” that have the name of an Osprey mixer as their data. These names will be o2ca_mix.dll, o5ca_mix.dll, or o540_mix.dll.