← Back to Patent Explorer
US6044408A Expired / Lapsed US ⏱️ 0.0 years remaining

Multimedia device interface for retrieving and exploiting software and hardware capabilities

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1996-04-25
•
Granted: 2000-03-28
•
Expires: 2016-04-25
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a multimedia API, a method for returning hardware and software capabilities. Multimedia APIs for media devices such as a display device, a sound device and a 3D accelerator each include a function to return the hardware and software capabilities of a particular media device. The hardware capabilities refer to capabilities of a media device such as a display controller, sound device or 3D graphics accelerator, while the software capabilities refer to capabilities of an emulation layer used to emulate functions of a media device. In processing API requests, the multimedia API optimizes the performance of the request by identifying the requested capabilities and determining whether these capabilities are available hardware capabilities. If so, the API instructs the media device to perform the function and passes it the relevant parameters for the request. If not, the API tries to emulate the requested capabilities using the emulation layer.

Inventors

  • 👤 G. Eric Engstrom
  • 👤 Craig G. Eisler

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 16:03
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/10; G06F13/105

Claims Analysis

Total Claims: 17
Claim 1
Independent Claim 192 words
In a media device application programming interface implemented in a computer for allowing application programs executing in a host CPU in the computer to access a media device or software emulators executing in the host CPU in a computer, a method for optimizing an API request from an application program, the method comprising: querying the media device for available hardware capabilities; querying the software emulators for available software emulator capabilities; storing the available hardware device and software emulator capabilities; receiving an API request from an application program executing in the host CPU in the computer; identifying a requested capability required to process the API request; determining whether the requested capability corresponds to one of the available hardware capabilities, and if so, instructing the media device to process the API request; and determining whether the requested capability corresponds to one of the available software emulator capabilities when the hardware capabilities are insufficient to process the API request, and if so, instructing the corresponding software emulator to process the API request; and if neither a hardware nor a software capability is available to process the API request, returning an error to the application program.
Claim 2
Dependent Claim 192 words
In a media device application programming interface implemented in a computer for allowing application programs executing in a host CPU in the computer to access a media device or software emulators executing in the host CPU in a computer, a method for optimizing an API request from an application program, the method comprising: querying the media device for available hardware capabilities; querying the software emulators for available software emulator capabilities; storing the available hardware device and software emulator capabilities; receiving an API request from an application program executing in the host CPU in the computer; identifying a requested capability required to process the API request; determining whether the requested capability corresponds to one of the available hardware capabilities, and if so, instructing the media device to process the API request; and determining whether the requested capability corresponds to one of the available software emulator capabilities when the hardware capabilities are insufficient to process the API request, and if so, instructing the corresponding software emulator to process the API request; and if neither a hardware nor a software capability is available to process the API request, returning an error to the application program.
Claim 3
Dependent Claim 25 words
The method of claim 1 further including: finding the intersection between the hardware and software capabilities; storing the intersection of the hardware and software capabilities.
Claim 4
Dependent Claim 88 words
The method of claim 1 wherein the media device is a display controller, the API request is a bit block transfer function call; wherein the step of querying the media device includes querying a device driver of the display controller for bit block transfer capabilities of the display controller; and wherein the step of instructing the media device to process the API request comprises instructing the display controller to perform a bit block transfer of a source image in video memory to a destination image in video memory.
Claim 5
Dependent Claim 128 words
The method of claim 1 wherein the media device is a display controller, and wherein the step of querying the media device includes querying a device driver of the display controller for capabilities of the display controller to support overlays, to support color space conversion, and to support mirroring, rotation, shrinking or stretching of an image stored in video memory; storing a list of the capabilities of the display controller; and in response to an API request that requires support for overlays, color space conversions, or mirroring, rotation, shrinking, or stretching of an image, determining whether the required support for the API request is listed in the list of capabilities, and if so, carrying out the API request using only memory and processing resources of the display controller.
Claim 6
Dependent Claim 154 words
The method of claim 1 wherein the media device is a display controller and the media device API includes a display controller API; wherein the display controller API includes a create surface function to create instances of surface objects representing regions of pixel memory in either main memory of the computer or video memory, a create palette function to create instances of palette objects representing color tables, a function to return capabilities of a specified instance of a surface object, and a function to return the capabilities of a specified instance of a palette object; and wherein the method further includes: when an application program invokes the function to return the capabilities of a specified instance of a surface object, returning the capabilities of the specified surface object, including a type of surface that the surface object represents and whether the surface resides in the video memory or the main memory on the computer.
Claim 7
Dependent Claim 57 words
The method of claim 1 wherein the media device is a sound device for playing digital sound data and the step of querying the media device includes querying a device driver of the sound device for sound format or formats supported by the sound device, sound mixing capabilities of the sound device, and available sound device memory.
Claim 8
Dependent Claim 74 words
The method of claim 6 further including: storing a list of sound mixing capabilities supported by the sound device; in response to an API request from an application program that requires mixing of sound data, determining whether a capability required to mix the sound data is in the list of sound mixing capabilities, and if so, optimizing the API request by instructing the sound device to mix the sound data instead of the computer.
Claim 9
Dependent Claim 127 words
The method of claim 1 wherein the media device is a sound device for playing digital sound data and the media device API includes a sound device API; wherein the sound device API includes a create sound buffer function to create instances of sound buffer objects representing regions of audio memory, and a function to return capabilities of a specified instance of a sound buffer object; and when an application program invokes the function to return the capabilities of a specified instance of a sound buffer object, returning the capabilities of the specified sound buffer object, including a type of sound buffer that the sound buffer object represents and whether the sound buffer resides in memory on the sound device or in main memory of the computer.
Claim 10
Dependent Claim 77 words
The method of claim 1 wherein the media device is a 3D accelerator and the step of querying the media device includes querying a device driver of the 3D accelerator for capabilities of the 3D accelerator to perform lighting, shading, or transformation operations; and in response to an API request that requires 3D accelerator capabilities, determining whether the 3D accelerator has the required capabilities, and if so, instructing the 3D accelerator to carry out the API request.
Claim 11
Dependent Claim 56 words
The method of claim 1 further including: reporting a capability of the media device that requires software preparation; and in response to receiving an API request that requires both software preparation and capabilities of the media device, instructing a software emulator to prepare the API request, and instructing the media device to complete the API request.
Claim 12
Dependent Claim 258 words
In a display device application programming interface (API) implemented in a multitasking computer for allowing application programs executing in a host CPU in the computer to access a display controller coupled to the computer or software emulators executing in the host CPU in a computer, a method for optimizing an API request from an application program, the method comprising: querying the display controller for available hardware capabilities; querying the software emulators for available software emulator capabilities; storing the available display controller and software emulator capabilities, including free and total video memory and two or more of the following capabilities: capabilities to perform bit block transfers, to overlay an image unto another image, to support pixel formats, to perform color space conversion, and to perform mirroring, rotation, stretching or shrinking of an image; receiving an API request from the application program that requires one or more of the capabilities of the display controller or the software emulators; identifying a requested capability required to process the API request; determining whether the requested capability corresponds to one of the available display controller capabilities, and if so, instructing the display controller to process the API request; and determining whether the requested capability corresponds to one of the software emulator capabilities when the hardware capabilities are insufficient to process the API request, and if so, instructing the corresponding software emulator executing in the host CPU to process the API request; and if neither a hardware nor a software capability is available to process the API request, returning an error to the application program.
Claim 13
Dependent Claim 258 words
In a display device application programming interface (API) implemented in a multitasking computer for allowing application programs executing in a host CPU in the computer to access a display controller coupled to the computer or software emulators executing in the host CPU in a computer, a method for optimizing an API request from an application program, the method comprising: querying the display controller for available hardware capabilities; querying the software emulators for available software emulator capabilities; storing the available display controller and software emulator capabilities, including free and total video memory and two or more of the following capabilities: capabilities to perform bit block transfers, to overlay an image unto another image, to support pixel formats, to perform color space conversion, and to perform mirroring, rotation, stretching or shrinking of an image; receiving an API request from the application program that requires one or more of the capabilities of the display controller or the software emulators; identifying a requested capability required to process the API request; determining whether the requested capability corresponds to one of the available display controller capabilities, and if so, instructing the display controller to process the API request; and determining whether the requested capability corresponds to one of the software emulator capabilities when the hardware capabilities are insufficient to process the API request, and if so, instructing the corresponding software emulator executing in the host CPU to process the API request; and if neither a hardware nor a software capability is available to process the API request, returning an error to the application program.
Claim 14
Dependent Claim 231 words
In a sound device application programming interface (API) implemented in a multitasking computer for allowing application programs executing in a host CPU of the computer to access a sound device coupled to the computer or software emulators executing in the host CPU of the computer for mixing digital sound data, a method for optimizing an API request from an application program, the method comprising: querying the sound device for available hardware capabilities; querying the software emulators for available software emulator capabilities; storing the available sound device and software emulator capabilities, including free and total audio memory and capabilities to perform sound mixing operations; receiving an API request from the application program that requires one or more of the capabilities of the sound device or the software emulators; identifying a requested capability required to process the API request; determining whether the requested capability corresponds to one of the available sound device capabilities, and if so, instructing the sound device to process the API request; and determining whether the requested capability corresponds to one of the software capabilities when the sound device capabilities are insufficient to process the API request, and if so, instructing the corresponding software emulator executing in the host CPU to process the API request; and if neither a sound device nor a software emulator capability is available to process the API request, returning an error to the application program.
Claim 15
Dependent Claim 231 words
In a sound device application programming interface (API) implemented in a multitasking computer for allowing application programs executing in a host CPU of the computer to access a sound device coupled to the computer or software emulators executing in the host CPU of the computer for mixing digital sound data, a method for optimizing an API request from an application program, the method comprising: querying the sound device for available hardware capabilities; querying the software emulators for available software emulator capabilities; storing the available sound device and software emulator capabilities, including free and total audio memory and capabilities to perform sound mixing operations; receiving an API request from the application program that requires one or more of the capabilities of the sound device or the software emulators; identifying a requested capability required to process the API request; determining whether the requested capability corresponds to one of the available sound device capabilities, and if so, instructing the sound device to process the API request; and determining whether the requested capability corresponds to one of the software capabilities when the sound device capabilities are insufficient to process the API request, and if so, instructing the corresponding software emulator executing in the host CPU to process the API request; and if neither a sound device nor a software emulator capability is available to process the API request, returning an error to the application program.
Claim 16
Dependent Claim 202 words
A computer readable medium on which is stored an application programming interface (API) to be executed on a host CPU for optimizing an API request from an application program to be executed on the host CPU, said API comprising instructions, which when executed by the host CPU of a computer, perform the steps of: querying the media device for available hardware capabilities; querying the software emulators executing in the host CPU for available software emulator capabilities; storing the available hardware device and software emulator capabilities; receiving an API request from an application program executing in the host CPU of the computer; identifying a requested capability required to process the API request; determining whether the requested capability corresponds to one of the available hardware capabilities, and if so, instructing the media device to process the API request; and determining whether the requested capability corresponds to one of the software emulator capabilities when there are insufficient hardware capabilities to process the API request, and if so, instructing the corresponding software emulator executing in the host CPU to process the API request; and if neither a hardware nor a software capability is available to process the API request, returning an error to the application program.
Claim 17
Dependent Claim 202 words
A computer readable medium on which is stored an application programming interface (API) to be executed on a host CPU for optimizing an API request from an application program to be executed on the host CPU, said API comprising instructions, which when executed by the host CPU of a computer, perform the steps of: querying the media device for available hardware capabilities; querying the software emulators executing in the host CPU for available software emulator capabilities; storing the available hardware device and software emulator capabilities; receiving an API request from an application program executing in the host CPU of the computer; identifying a requested capability required to process the API request; determining whether the requested capability corresponds to one of the available hardware capabilities, and if so, instructing the media device to process the API request; and determining whether the requested capability corresponds to one of the software emulator capabilities when there are insufficient hardware capabilities to process the API request, and if so, instructing the corresponding software emulator executing in the host CPU to process the API request; and if neither a hardware nor a software capability is available to process the API request, returning an error to the application program.

References Cited (Backward Citations)

US4835532A Cited
US5140687A Cited
US5249266A Cited
US5394523A Cited
US5390138A Cited
US5455599A Cited
US5748468A Cited
US5634070A Cited
US5796984A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-03-28 2003-09-27 2004-03-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-03-28 2007-09-27 2008-03-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-03-28 2011-09-27 2012-03-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag