Drivers Aja Video Port Devices



Types of Drivers. Windows device drivers generally come in 2 flavors: Virtual Device Drivers (VXD) and Windows Driver Model (WDM). VxD style drivers are older, and are less compatible, while WDM drivers are supposed to be fully code-compatible all the way back to Windows 98. Use Device Manager to remove the VGA video adapter, and then restart the computer. Windows Plug and Play locates the OEM video adapter and reinstalls the OEM drivers automatically. A device driver is a computer program that operates or controls a particular type of device that is attached to a computer. Source SDK drivers make a direct connection between a particular capture card’s SDK and the Wirecast SDK. It enables a fully optimized workflow with minimal middle-man services. AJA U-TAP HDMI Simple USB 3.0 Powered HDMI Capture. Magewell USB Capture HDMI Gen2 - USB 3.0 HD Video Capture Dongle Model 32060 (Replaces XI100DUSB HDMI) Magewell USB Capture SDI USB 3.0 HD Video Capture Dongle Model XI100DUSB SDI. AJA T-TAP Portable Video Output. AJA Hi5-Plus 3G-SDI to HDMI Mini Converter.

Capture devices enable a computer to accept HDMI or SDI input from sources such as camcorders and D-SLRs.

The HDMI port on most computers is output-only and will not accept video input. USB cables that come packaged with cameras are generally intended for file transfer and most cameras do not allow for live video monitoring via USB.

Capture devices can be external devices that deliver HDMI or SDI sources into the computer over Thunderbolt or USB, or internal cards installed into an available PCI slot on a desktop PC that allow HDMI or SDI sources to be connected to the computer directly.

Support for Capture Cards

Drivers Aja Video Port Devices

If you need help with using the Capture card in Wirecast, we ask that you contact the manufacturer as the 1st point of support. It’s possible that you need certain drivers or recommended settings to make it work with Wirecast, and they can best assist you with this.

  • Elgato Support (Windows only)

You may also able to find other users who found success with specific capture cards on the Wirecast Support Forum. Note: Telestream Support is unable to officially support any of the following capture cards. We will make every effort to assist you, but you may be asked to use the above resources.

Drivers

Devices listed below provide information on their supported driver and the interface required to connect to a computer running Wirecast.

A device driver is a computer program that operates or controls a particular type of device that is attached to a computer.

  • Source SDK drivers make a direct connection between a particular capture card’s SDK and the Wirecast SDK. It enables a fully optimized workflow with minimal middle-man services. Blackmagic and Magewell integration is maintained by Telestream, AJA integration is maintained by AJA.
  • UVC/DS/AVF drivers utilize operating system “traffic directors” and “service negotiators” to negotiate and manage connections. This adds to potential for issues to occur and potentially introduce inefficiencies. Devices using these drivers should work with Wirecast unless there are problems with the manufacturer’s driver. UVC devices use the universal driver found within both Mac and Windows operating systems. DirectShow (Windows) and AV Foundation (Mac) drivers make connections to the multimedia framework their particular operating system uses to handle video-related tasks.
ManufacturerCapture DeviceSourceSDKUVC/DS/AvfInterface
AJAIo 4KThunderbolt 2
Io 4K +Thunderbolt 3
Io ExpressThunderbolt 2
Io XTThunderbolt 2
KONA 1PCIe
KONA 3GPCIe
KONA 4PCIe
KONA HDMIPCIe
KONA IPPCIe
KONA LHe PlusPCIe
KONA LHiPCIe
U-TapUSB 3
AverMediaDarkCrystal 110 (CD110)PCIe
DarkCrystal 750 (CD750)USB 3
Live Gamer HD (C985)PCIe
Live Gamer HD 2 (LGHD2)PCIe
Blackmagic DesignDeckLink 4K Extreme 12GPCIe
DeckLink Duo 2PCIe
DeckLink Mini RecorderPCIe
DeckLink Quad 2PCIe
DeckLink Quad HDMI RecorderPCIe
DeckLink SDI 4KPCIe
DeckLink Studio 4KPCIe
Intensity Pro 4KPCIe
Intensity Shuttle ThunderboltThunderbolt 2
UltraStudio 4KThunderbolt 2
UltraStudio 4K ExtremePCIe, Thunderbolt 2
UltraStudio 4K Extreme 3PCIe, Thunderbolt 3
UltraStudio 4K MiniThunderbolt 3
UltraStudio HD MiniThunderbolt 3
UltraStudio Mini RecorderThunderbolt 2
Web PresenterUSB 2
Bluefish444Epoch 4K NeutronPCIe
Epoch 4K Supernova S+PCIe
ElgatoGame Capture HD60
Windows only
USB 2
GameCapture HD60 S
Windows only
USB 3
Game Capture HD60 Pro
Windows only
PCIe
EpiphanAV.io HDUSB 3
AV.io SDIUSB 3
DVI2PCI-EPCIe
DVI2USB 3.0USB 3
SDI2USB 3.0USB 3
InogeniDVI to USB 3.0USB 3
HDMI to USB 3.0USB 3
SDI to USB 3.0USB 3
Share 1USB 3
Share 2USB 3
Share 2UUSB 3
VGA to USB 3.0USB 3
MagewellPro Capture AIOPCIe
Pro Capture Dual DVIPCIe
Pro Capture Dual HDMIPCIe
Pro Capture Dual SDIPCIe
Pro Capture DVIPCIe
Pro Capture HDMIPCIe
Pro Capture Mini HDMIPCIe
Pro Capture Mini SDIPCIe
Pro Capture Quad HDMIPCIe
Pro Capture Quad SDIPCIe
Pro Capture SDIPCIe
USB Capture HDMIUSB 3 / USB 2
USB Capture HDMI PlusUSB 3 / USB 2
USB Capture SDI PlusUSB 3 / USB 2
USB Capture DVI PlusUSB 3 / USB 2
USB Capture SDIUSB 3 / USB 2
Osprey260ePCIe
460ePCIe
811ePCIe
815ePCIe
816ePCIe
820ePCIe
821ePCIe
825ePCIe
827ePCIe
840ePCIe
845ePCIe
USB 3 Video CaptureUSB 3

Telestream is continually testing and qualifying new devices. Once verified, they will be added to this “Capture Card Support” list. Devices not listed may work with Wirecast, but if they are not officially qualified, our technical Support Staff may not have the information necessary to troubleshoot. In these cases, please refer to the Wirecast Support Forum.

< Windows Programming

Types of Drivers[edit]

Drivers Aja Video Port Devices Gigabit

Windows device drivers generally come in 2 flavors: Virtual Device Drivers (VXD) and Windows Driver Model (WDM). VxD style drivers are older, and are less compatible, while WDM drivers are supposed to be fully code-compatible all the way back to Windows 98.

Driver History[edit]

In the old days of DOS, the computer was free land where anything goes. To that end, developers wrote their own hardware drivers, conforming to no specific specification or interface, using real-mode assembly code. With the advent of Windows 3.0, the operating system began to take a more hands-on approach to application management, by creating and maintaining a variety of virtual machines, to execute different programs in different processor contexts. Drivers could no longer exist as non-conformist real-mode DOS drivers, but instead had to mitigate access between multiple programs, running more or less in parallel with each other. Windows 3.0 changed the 'real devices' into managed resources known as 'virtual devices', and replaced the real-mode drivers with new virtual device drivers (VDD).

The Windows NT product line existed as a separate entity from the 'regular' windows brand. These two operating systems were completely different in almost every imaginable way, except perhaps that the shells looked similar. Windows NT was a fully-managed operating system, and unauthorized resource accesses were blocked by the NT kernel. This meant that in Windows NT, device drivers needed to interface with the computer through specific methods, while standard windows drivers (Windows 3.0, 3.1, 3.11, 95, 98, Me) could access hardware directly, without any sort of management. The drivers for both systems at this point, were generally written in assembly language, as well.

Realizing that the market was split between Windows and Windows NT, Microsoft saw a need to introduce a single driver model, so that device drivers could be portable between Windows and Windows NT. In addition, Microsoft knew that drivers had to be writable in a higher-level language, like C, in order to be code-compatible for different hardware systems. To meet these needs, Microsoft created the Windows Driver Model (WDM). WDM drivers are compiled using the DDK, they are written in C, and they follow exacting specifications that ensure they can be executed on any windows system. This book will attempt to focus on WDM drivers, but will include notes on writing DOS TSR drivers, and VDDs as well.

Driver Issues[edit]

Device Drivers operate in kernel mode so writing, testing, and debugging drivers can be a tricky task. Drivers should always be well tested before they are installed.

Since device drivers do not operate in user mode, the user mode libraries (kernel32.dll, user32.dll, wingdi.dll, msvcrt.dll) are not available to a device driver. Instead, a device driver must link directly to ntoskrnl.exe and hal.dll which provide Native API and executive services.

Writing a Driver[edit]

Device drivers are typically written in C, using the Driver Development Kit (DDK). There are functional and object-oriented ways to program drivers, depending on the language chosen to write in. It is generally not possible to program a driver in Visual Basic or other high-level languages.

Because drivers operate in kernel mode, there are no restrictions on the actions that a driver may take. A driver may read and write to protected areas of memory, it may access I/O ports directly, and can generally do all sorts of very powerful things. This power makes drivers exceptionally capable of crashing an otherwise stable system.

The Windows platform DDK comes with header files, library files, and a command-line compiler that can be used to write device drivers in C or C++. There is no graphical interface to the DDK compiler.

Device Driver Stack[edit]

Windows implements device drivers in a highly-modular fashion, and it is important that we discuss some vocabulary before we continue the discussion of driver programming any further. The drivers necessary for any particular device are arranged in a driver stack, and are connected together internally by a singly-linked list, that starts at the bottom of the stack (the root driver), and terminates at the highest level driver. Each driver must contain at least 2 modules, a root driver, and a function driver. This combination, with some optional additions, constitute the whole of what people generally call a complete 'device driver'. Function Drivers will be the most common type of driver to be written, and will be of a primary focus in this wikibook.

Microsoft realized that certain classes of devices all behave similarly, and it would be a gigantic waste of time for every hardware manufacturer to have to write the entire driver code from scratch. To this end, Windows allows for a type of driver known as a class driver. Class drivers are themselves not complete function drivers, but class drivers can be dynamically linked to a regular function driver, and can simplify the development process quite a bit. It is possible to write your own class driver, but 3rd party programmers generally don't worry about it. In general, Microsoft will supply the class drivers, and driver developers will tap into those class drivers. This ensures that class drivers are fully Microsoft tested and certified, and that they are very versatile.

Another classification of driver is the filter driver. There are two general types of filter driver, an upper filter driver, and a lower filter driver. Upper filter drivers exist in the stack above the function driver, and--as their name implies--they filter the incoming I/O requests. Lower filter drivers are placed in the stack between the function driver and the root driver. Filter drivers are generally implemented as bug fixes, or as quick hack extensions for preexisting drivers.

Drivers Aja Video Port Devices Download

Here is a general diagram of a driver stack:

Buses and Physical Devices[edit]

For simplification, let us use the term 'bus' to refer to any place on your computer where information can travel from one place to another. This is a very broad definition, and rightfully so: the term 'bus' needs to account for everything from USB, Serial ports, PCI cards, Video outputs, etc. Each bus is controlled by its own root driver. There is a USB root driver, a PCI root driver, and so on.

Drivers Aja Video Port Devices Vga

Let's now consider a mythical construct known as the root bus, a structure that all other buses connect into. A root bus object doesn't actually physically exist in your computer, but it is handy to think about it. Plus, the root bus has its own driver. The root bus driver object is responsible for keeping track of the devices connected on any bus in your entire computer, and ensuring that the data gets to where it is all going.

PnP[edit]

Plug-n-Play (PnP) is a technology that allows for the hardware on the computer to be changed dynamically, and the PnP software will automatically detect changes, and allocate important system resources. PnP gets its own root driver, that communicates closely with the Root bus driver, to keep track of the devices in your system.

Device Namespace, and Named Devices[edit]

'Arbitrary Context'[edit]

Drivers execute in the context of whatever thread was running when windows accessed the driver. To this end, we say that drivers execute in an 'arbitrary context'. Therefore, it is not good practice for a driver programmer to make any assumptions about the state of the processor at the entry point to a driver. There are a few issues that arise with this, so we will discuss them here.

Floating Point Arithmetic[edit]

Drivers that want to use MMX or floating point arithmetic may find they are in for some undue difficulty. Because a driver may be entered in any context, at any time, the floating point unit may contain partial results and unhandled exceptions from the user mode program that was interrupted to call the driver. It is not enough to simply save the context and then to restore it, because any unhandled exceptions may become 'unhandleable', and raise a system error or a bug check. There are only certain times when Microsoft recommends using floating point arithmetic, and we will discuss them later.

External Links[edit]

  • Understanding the Windows Driver Model - An introduction to the basic concepts needed for WDM programming
  • WDM I/O Concepts - Understanding the I/O concepts needed for WDM programming
  • Kernel-Mode Driver Framework 1.11 - the .ISO download includes the Driver Development Kit (DDK)

Drivers Aja Video Port Devices Online

Retrieved from 'https://en.wikibooks.org/w/index.php?title=Windows_Programming/Device_Driver_Introduction&oldid=3744218'




Comments are closed.