Method and system for capturing and encoding full-screen video graphics
First Claim
1. A method for encoding video graphics of a computer system including a monitor, the video graphics being displayed on the monitor by a plurality of graphical application programming interface (API) routines executed in response to a plurality of graphical API function calls, the method comprising the steps of:
- hooking the plurality of graphical API function routines;
determining that one of the plurality of graphical API routines has been called in response to one of the plurality of graphical API function calls and diverting the one graphical API function call to an encoding subroutine; and
storing the graphical API function call in a record.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for encoding video graphics of displayed on a monitor of a computer system. Graphical API function calls are hooked so that when a graphical API routine is called the graphical API function call that called the graphical API routine will be diverted to an encoding subroutine in a screen capture program module. Under the control of the encoding subroutine, the graphical API call is unhooked. A determination is made whether any initial state parameters of the screen need to be stored and, if so, then the initial state parameters are stored in records. The graphical API function call is then called. If the graphical API function call was successfully executed and directed to the screen, then a determination is made whether any dependent objects of the graphical API function call need to be stored. If so, then these dependent objects are stored in records. The graphical API function call is then stored in a record.
-
Citations
12 Claims
-
1. A method for encoding video graphics of a computer system including a monitor, the video graphics being displayed on the monitor by a plurality of graphical application programming interface (API) routines executed in response to a plurality of graphical API function calls, the method comprising the steps of:
-
hooking the plurality of graphical API function routines;
determining that one of the plurality of graphical API routines has been called in response to one of the plurality of graphical API function calls and diverting the one graphical API function call to an encoding subroutine; and
storing the graphical API function call in a record. - View Dependent Claims (2, 3, 4, 5, 6, 7)
for each graphical API function routine that needs to be hooked;
determining a memory address of the graphical API routine associated with the graphical API function call;
fixing the memory address for the graphical API routine in memory;
saving a plurality of bytes of the graphical API routine that are to be overwritten; and
overwriting the plurality of bytes of the graphical API routine.
-
-
3. A computer-readable medium having computer-executable instructions for performing the steps recited in claim 1.
-
4. The method recited in claim 1, wherein under the control of the encoding subroutine, the method further comprises the step of:
-
unhooking the one graphical API routine;
determining whether any initial state parameters need to be stored and, if so, then storing the initial state parameters;
calling the one graphical API function routine;
determining whether the one graphical API function routine was successfully executed and, if not, then restoring the hook to the one graphical API function routine;
if the one graphical API function routine was successfully executed, then determining whether the graphical API function routine was directed to the monitor and, if not, then restoring the hook to the one graphical APT function routine; and
if the graphical API function routine was directed to the monitor, then determining whether there are any dependent objects of the graphical API function routine that need to be stored and, if so, then storing the dependent objects in records.
-
-
5. The method recited in claim 4, wherein the step of determining whether the one graphical API function routine was successfully executed comprises checking the return code of the one graphical API function routine.
-
6. The method recited in claim 4, wherein the step of determining whether there ate any dependent objects of the graphical API function routine that need to be stored comprises the steps of:
-
determining whether a dependent object of the graphical API function routine is dirty; and
if so, then storing a new record for the dependent object.
-
-
7. The method recited in claim 6 further comprising the step of marking the dependent object as clean.
-
8. A method for capturing and redisplaying full-screen video graphics of a computer system, the method comprising the steps of:
-
hooking a plurality of graphical application program interface function routines;
determining that one of said plurality of graphical application program interface routines has been called in response to one of a plurality of graphical application program interface function calls;
diverting the one graphical application program interface function routine to an encoding subroutine;
unhooking the one graphical application program interface function routine under control of said encoding subroutine;
storing in one or more records of at least one initial state parameters, dependent objects of the one graphical application program interface function routine, and the one graphical application program interface function call under control of said encoding subroutine;
reading said one or more stored records with a decoding subroutine; and
displaying the stored video graphics on said monitor in accordance with said decoding subroutine. - View Dependent Claims (9, 10, 11, 12)
calling the one graphical application program interface function routine; and
determining whether the one graphical application program function routine was successfully executed, and, if not, then restoring the hook to the one graphical application program interface function routine.
-
-
10. The method of claim 8, further comprising the step of:
if the one graphical application program interface function routine was successfully executed, then determining whether the graphical application program interface function routine was directed to the monitor, and, if not, then restoring the hook to the one graphical application program interface function routine.
-
11. The method of claim 8, wherein the step of storing further comprises the step of:
if the graphical application function routine was directed to the monitor, then determining whether there are any dependent objects of the graphical application program interface function routine that need to be stored, and, if so, then storing the dependent objects in records.
-
12. The method of claim 8, wherein the step of hooking each graphical application program interface function routine of said plurality of graphical application program interface function routines comprises the steps of:
-
for each graphical application program interface function routine, determining a memory address of a respective graphical application program interface routine associated with a respective graphical application program interface function call;
fixing the memory address for the graphical application program interface routine in memory;
saving a plurality of bytes of the graphical application program interface routine that are to be overwritten; and
overwriting the plurality of bytes of the graphical application program interface routine.
-
Specification