CA2623697A1 - Methods and apparatus for metering computer-based media presentation - Google Patents
Methods and apparatus for metering computer-based media presentation Download PDFInfo
- Publication number
- CA2623697A1 CA2623697A1 CA 2623697 CA2623697A CA2623697A1 CA 2623697 A1 CA2623697 A1 CA 2623697A1 CA 2623697 CA2623697 CA 2623697 CA 2623697 A CA2623697 A CA 2623697A CA 2623697 A1 CA2623697 A1 CA 2623697A1
- Authority
- CA
- Canada
- Prior art keywords
- media presentation
- function call
- program
- directed
- operating system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/29—Arrangements for monitoring broadcast services or broadcast-related services
- H04H60/31—Arrangements for monitoring the use made of the broadcast services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/29—Arrangements for monitoring broadcast services or broadcast-related services
- H04H60/33—Arrangements for monitoring the users' behaviour or opinions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/35—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
- H04H60/38—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying broadcast time or space
- H04H60/40—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying broadcast time or space for identifying broadcast time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/542—Intercept
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/35—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
- H04H60/37—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying segments of broadcast information, e.g. scenes or extracting programme ID
- H04H60/372—Programme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/35—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
- H04H60/38—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying broadcast time or space
- H04H60/41—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying broadcast time or space for identifying broadcast space, i.e. broadcast channels, broadcast stations or broadcast areas
- H04H60/43—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying broadcast time or space for identifying broadcast space, i.e. broadcast channels, broadcast stations or broadcast areas for identifying broadcast channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/35—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
- H04H60/38—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying broadcast time or space
- H04H60/41—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying broadcast time or space for identifying broadcast space, i.e. broadcast channels, broadcast stations or broadcast areas
- H04H60/44—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying broadcast time or space for identifying broadcast space, i.e. broadcast channels, broadcast stations or broadcast areas for identifying broadcast stations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04H—BROADCAST COMMUNICATION
- H04H60/00—Arrangements for broadcast applications with a direct linking to broadcast information or broadcast space-time; Broadcast-related systems
- H04H60/35—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users
- H04H60/45—Arrangements for identifying or recognising characteristics with a direct linkage to broadcast information or to broadcast space-time, e.g. for identifying broadcast stations or for identifying users for identifying users
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Social Psychology (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Measuring Volume Flow (AREA)
Abstract
Methods and apparatus for metering the presentation of computer-based media presentation are disclosed. An example disclosed method performed by a computer that is configured to execute an operating system and a media presentation program comprises modifying the media presentation program to re-direct a function call made to the operating system by the media presentation program, and processing the re-directed function call to determine media presentation information.
Description
METHODS AND APPARATUS FOR METERING
COMPUTER-BASED MEDIA PRESENTATION
RELATED APPLICATION
[0001] This patent claims priority from U.S. Provisional Application Serial No.
60/720,391, entitled "Methods and Apparatus for Metering Computer-Based Video"
and filed on September 26, 2005, which is hereby incorporated by reference in its entirety.
FIELD OF THE DISCLOSURE
COMPUTER-BASED MEDIA PRESENTATION
RELATED APPLICATION
[0001] This patent claims priority from U.S. Provisional Application Serial No.
60/720,391, entitled "Methods and Apparatus for Metering Computer-Based Video"
and filed on September 26, 2005, which is hereby incorporated by reference in its entirety.
FIELD OF THE DISCLOSURE
[0002] This disclosure relates generally to computer-based media and, more particularly, to methods and apparatus for metering the presentation of computer-based media.
BACKGROUND
BACKGROUND
[0003] Content providers, broadcasters, studios, advertisers, publishers, etc.
are interested in measuring and/or statistically analyzing the viewing and/or exposure of portions of media to demographic groups. For example, advertisers are interested in verifying overall effectiveness, reach and/or audience demographics for particular advertisements placed in particular videos, shows, movies, audio streams, commercials, audio files, etc. Likewise, broadcasters are interested in being able to demonstrate the effectiveness, reach and/or audience demographics of media viewed via their networks and/or content delivery systems in order to, for example, establish an appropriate advertisement rate.
BRIEF DESCRIPTION OF THE DRAWINGS
are interested in measuring and/or statistically analyzing the viewing and/or exposure of portions of media to demographic groups. For example, advertisers are interested in verifying overall effectiveness, reach and/or audience demographics for particular advertisements placed in particular videos, shows, movies, audio streams, commercials, audio files, etc. Likewise, broadcasters are interested in being able to demonstrate the effectiveness, reach and/or audience demographics of media viewed via their networks and/or content delivery systems in order to, for example, establish an appropriate advertisement rate.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] FIG. 1 is a schematic illustration of an example metering system for computer-based video constructed in accordance with the teachings of the invention.
[0005] FIGS. 2A and 2B illustrate an example application prograinming interface function call re-direction.
[0006] FIG. 3 is a schematic illustration of an example manner of implementing the handler of FIG. 1.
[0007] FIG. 4 is a flowchart representative of example machine readable instructions which may be executed to implement the example meter of FIG. 1.
[0008] FIG. 5 is a flowchart representative of example machine readable instructions which may be executed to implement the example handler of FIG. 1.
[0009] FIG. 6 is a schematic illustration of an example processor platform that may execute the example machine readable instructions represented by FIGS. 4 and/or 5 to implement the example metering system of FIG. 1.
DETAILED DESCRIPTION
DETAILED DESCRIPTION
[0010] Although the example apparatus and methods described herein include, among other components, software executed on hardware, such apparatus and methods are merely illustrative and should not be considered as limiting. For example, it is contemplated that any or all of the disclosed hardware and software components could be enzbodied exclusively in dedicated hardware, exclusively in software, exclusively in firmware or in some combination of hardware, firmware, and/or software.
[0011] In addition, while the following disclosure is made with respect to an exainple personal computer (PC) based video display system, it should be understood that the disclosed apparatus is readily applicable to many other computer-based and/or electronic media display systems and/or devices such as, but not limited to, handheld computing devices (e.g., iPods, personal digital assistants (PDAs), MP3 players, multimedia players, Playstation portables (PSPs), smart phones, etc.) or cellular telepliones. Accordingly, while the following describes example apparatus, methods, and articles of manufacture, persons of ordinary skill in the art will readily appreciate that the disclosed examples are not the only way to implement such systems. For instance, a television (TV) may have an embedded, attached and/or coupled electronic device, electronic system, computing device, computing system, and/or PC configured to receive and/or decode a video signal, display a video signal, and meter viewing statistics and/or program consumption. For example, a digital video recorder attached to a TV, a TV with an integrated digital video recorder and/or digital versatile disc (DVD) player, etc.
[0012] While example apparatus and methods to meter computer-based display of video are described herein, persons of ordinary skill in the art will readily appreciate that the disclosed apparatus and methods may be used, additionally or alternatively, to meter the presentation of any of a variety of additional and/or alternative types of media including, for example, audio, audio streams, commercials, mixed audio and/ video, images, text, data file, file, etc.
[0013] In general, the example apparatus, methods, and articles of manufacture described herein may be used to determine video viewership statistics and/or prograni consumption characteristics. In the particular examples described herein, data is collected that characterizes the viewing, consumption and/or display of video from, for example, a DVD, a compact disc (CD), an Internet site and/or a hard drive, and television (TV) programs from, for example, a terrestrial broadcast, a cable broadcast, a satellite broadcast, and/or an Internet broadcast.
[0014] FIG. 1 illustrates an example system for metering the display of PC
based video constructed in accordance with the teachings of the invention to monitor and log video viewing and/or program consumption by one or more viewers of PC based video.
Although an embodiment of the system discussed herein relates to metering the viewing of TV
programs on a PC, it will be readily apparent to persons of ordinary skill in the art that the metering system of FIG. 1 can be applied to other forms of video display by a PC. For example, Internet based streaming video, DVD, CD, hard disk drive, etc.
Further, it is lcnown that TV programs may be provided to a PC via terrestrial broadcast, cable broadcast, satellite broadcast, Internet based streaining video, DVD, CD, etc.
based video constructed in accordance with the teachings of the invention to monitor and log video viewing and/or program consumption by one or more viewers of PC based video.
Although an embodiment of the system discussed herein relates to metering the viewing of TV
programs on a PC, it will be readily apparent to persons of ordinary skill in the art that the metering system of FIG. 1 can be applied to other forms of video display by a PC. For example, Internet based streaming video, DVD, CD, hard disk drive, etc.
Further, it is lcnown that TV programs may be provided to a PC via terrestrial broadcast, cable broadcast, satellite broadcast, Internet based streaining video, DVD, CD, etc.
[0015] To interact with a user (i.e., viewer of the PC based video) and to receive and display video programs, the example system of FIG. 1 includes hardware 105, an application programming interface (API) 110, and a media presentation application (e.g., a PC video application) 115 that emits any of a variety of types of media (e.g., video).
In the illustrated example of FIG. 1, the hardware 105 is implemented using any suitable well-known personal computer, computing platform, computer server, etc. capable of receiving TV
signals, receiving user inputs, and presenting (e.g., displaying signals on) a display device 105B. The hardware 105 is configured to operate (i.e., execute) any one of a variety of operating systems such as, for instance, Windows Xr, Windows NT", Mac OS X', Linux, Unix, etc.
In the illustrated example of FIG. 1, the hardware 105 is implemented using any suitable well-known personal computer, computing platform, computer server, etc. capable of receiving TV
signals, receiving user inputs, and presenting (e.g., displaying signals on) a display device 105B. The hardware 105 is configured to operate (i.e., execute) any one of a variety of operating systems such as, for instance, Windows Xr, Windows NT", Mac OS X', Linux, Unix, etc.
[0016] In the illustrated example of FIG. 1, the hardware 105 includes, among other things, circuitry to tune and receive TV signals from an antenna, satellite receiver, cable, cable set-top box, etc. (e.g., a TV tuner device contained on a peripheral component interconnect (PCI) card 105C), circuitry to receive and decode streaming video, decode video from DVD or compact disc (CD) discs, etc. Alternatively, or additionally, the hardware 105 includes a connection to a TV tuner device 105C, a DVD drive, a CD drive, etc.
The hardware 105 also includes, and/or provides a suitable comiection to, a display device 105B
(e.g., computer display, video display, terminal, television, etc.) capable of displaying TV
programs for a viewer of the PC based video. The hardware 105 further includes, and/or provides a suitable connection to, at least one input device (e.g., a keyboard, a mouse 105A, a remote control, a People Meter 105D, etc.) configured to allow the user to select a video source, select a TV station or program, control volume, identify the user, etc. The hardware 105 may optionally include a disk drive, or other suitable storage medium, for recording and replaying recorded TV programs. The People Meter 105D may, additionally or alternatively, be implemented as machine accessible instructions executing, for example, on the PC
Hardware 105. Example methods and apparatus to implement the example People Meter 105D are described in International Patent Application Serial Number which is published as International Publication No. 2005/117425, and which is hereby incorporated by reference in its entirety.
The hardware 105 also includes, and/or provides a suitable comiection to, a display device 105B
(e.g., computer display, video display, terminal, television, etc.) capable of displaying TV
programs for a viewer of the PC based video. The hardware 105 further includes, and/or provides a suitable connection to, at least one input device (e.g., a keyboard, a mouse 105A, a remote control, a People Meter 105D, etc.) configured to allow the user to select a video source, select a TV station or program, control volume, identify the user, etc. The hardware 105 may optionally include a disk drive, or other suitable storage medium, for recording and replaying recorded TV programs. The People Meter 105D may, additionally or alternatively, be implemented as machine accessible instructions executing, for example, on the PC
Hardware 105. Example methods and apparatus to implement the example People Meter 105D are described in International Patent Application Serial Number which is published as International Publication No. 2005/117425, and which is hereby incorporated by reference in its entirety.
[0017] In the example of FIG. 1, the API 110 provides an interface between the PC
based video application 115 and the hardware 105. For example, the API 110 could provide a generic interface to receive channel selections from the user via an input device without the PC based video application 115 specifically knowing the technical details, brand, etc. of the input device. By including the API 110 in the example of FIG. 1, the PC based video application 115 may be iinplemented wholly, or at least partially, without specific knowledge of the underlying devices, circuits, PCI cards, etc. comprising the hardware 105. In one embodiment, the API 110 is provided by an operating system and implements a standardized interface between software (e.g., applications) executing on the hardware 105 (e.g., executing on a processor included in the hardware 105) and other portions of the hardware 105. For exaniple, in a Windows XP based operating system a portion of the API 110 is implemented by the dynamic link library (DLL) USER32.DLL which is part of the Windows XP
based operating system, that provides functions such as DrawWindow(), DrawText(), MousePress(), KeyPress(, etc. to enable applications to display information on a display device, receive user inputs, interact with the hardware, etc. Alternatively, a portion of the API 110 may be implemented by another program, device driver, etc. executing under the operating system.
based video application 115 and the hardware 105. For example, the API 110 could provide a generic interface to receive channel selections from the user via an input device without the PC based video application 115 specifically knowing the technical details, brand, etc. of the input device. By including the API 110 in the example of FIG. 1, the PC based video application 115 may be iinplemented wholly, or at least partially, without specific knowledge of the underlying devices, circuits, PCI cards, etc. comprising the hardware 105. In one embodiment, the API 110 is provided by an operating system and implements a standardized interface between software (e.g., applications) executing on the hardware 105 (e.g., executing on a processor included in the hardware 105) and other portions of the hardware 105. For exaniple, in a Windows XP based operating system a portion of the API 110 is implemented by the dynamic link library (DLL) USER32.DLL which is part of the Windows XP
based operating system, that provides functions such as DrawWindow(), DrawText(), MousePress(), KeyPress(, etc. to enable applications to display information on a display device, receive user inputs, interact with the hardware, etc. Alternatively, a portion of the API 110 may be implemented by another program, device driver, etc. executing under the operating system.
[0018] Using any of a variety of techniques, the PC based video application 115 via the API 110 receives input signals and selections (e.g., channel selections, volume, user identification, etc.) from the user via the at least one input device, controls a TV tuning device, receives tuned TV signals from the TV tuning device, creates signals suitable for display on a display device, and sends the display signals to the display device. For example, the PC video application 115 interacts with the hardware 105 by making software API calls to functions provided by the operating system (i.e., the API 110) such as, for instance, DrawText() to display TV channel numbers, KeyPress() to receive TV channel selections, etc. The example PC video application 115 of FIG. 1 may be implemented as machine readable instructions executing on a processor associated with the hardware 105. However, the PC video application 115 may also be implemented as hardware or a combination of hardware and softwai'e.
[0019] In the example of FIG. 1, the PC based video application 115 has access via the API 110 and the hardware 105 to an electronic program guide that, for example, specifies which TV programs are available on each TV station for each time period of each day of the week. It will be understood by persons of ordinary skill in the art that the electronic program guide may, for example, be provided as part of TV signals received and decoded by the hardware 105 (e.g., a TV tuning device). Using any of a variety of techniques, the PC based video application 115 provides to the user via a display device 105 at least a portion of the electronic program guide to facilitate selection of TV programs by the user.
The PC based video application 115 may also use the electronic program guide to determine and display on the display device the name of the current TV program being viewed by the user.
The PC based video application 115 may also use the electronic program guide to determine and display on the display device the name of the current TV program being viewed by the user.
[0020] To monitor and record viewing of TV programs viewed or consumed by the user, the example system of FIG. 1 includes a handler 120 and a meter 125. The handler 120 processes (i.e., handles) all, or a subset of, the function calls, signals, instructions, values, etc.
exchanged between the PC based video application 115 and the API 110. For example, the handler 120 could process instructions sent from the PC video application 115 to a TV tuner device (e.g., the TV Tuner device 105C) specifying which TV station to receive; the handler 120 could process portions of the signals sent from the PC video application 115 to a display device (e.g., Video Display 105B) to display for the viewer the current TV
program or TV
station being viewed; the handler 120 could process signals sent by the PC
video application 115 to a disk drive (e.g., contained within the hardware 105) to open a new file into which a TV program is to be recorded, etc.
exchanged between the PC based video application 115 and the API 110. For example, the handler 120 could process instructions sent from the PC video application 115 to a TV tuner device (e.g., the TV Tuner device 105C) specifying which TV station to receive; the handler 120 could process portions of the signals sent from the PC video application 115 to a display device (e.g., Video Display 105B) to display for the viewer the current TV
program or TV
station being viewed; the handler 120 could process signals sent by the PC
video application 115 to a disk drive (e.g., contained within the hardware 105) to open a new file into which a TV program is to be recorded, etc.
[0021] In one embodiment, the handler 120 is implemented as a metering DLL 120 and uses function call re-direction to process all, or a subset of, software API calls made by the PC video application 115 to the API 110. The metering DLL 120 is programmed and loaded by the operating system such that all, or a subset of, calls made to the API 110 by the PC video application 115 are re-directed to the metering DLL 120. It will be readily apparent to persons of ordinary skill in the art that for a Windows XP based operating system this can be accomplished using standard Windows API calls, for example, VirtualAllocEx(), WriteProcessMemory(, LoadLibrary() and CreateRemoteThread(). It will also be readily apparent that the loading of the metering DLL 120 by the operating system causes the metering DLL 120 to execute its own startup routine.
[0022] The startup routine for the metering DLL 120, using well-known techniques, modifies and/or replaces at least one entry of the PC video application's 115 IMPORT
TABLE (e.g., for DrawText()) with an address pointing to a replacement function provided by the metering DLL 120. Using this technique, an example software call made to DrawText() by the PC video application 115 will instead be automatically re-directed to the metering DLL 120 to execute the replacement function provided by the metering DLL 120.
The replacement function provided by the metering DLL 120 may, in turn, make a corresponding software call to the standard DrawText() function provided by the API 110 using the address contained in the original PC video application's 115 IMPORT
TABLE.
The replacement function provided by the metering DLL 120 also passes, using standard operating system messaging techniques and/or function calls, information regarding the received re-directed API software call to the meter 125. It will be well understood that by configuring the number, type, operation, etc. of the replacement functions provided by the metering DLL 120, the standard API calls re-directed to the metering DLL 120 can be adjusted.
TABLE (e.g., for DrawText()) with an address pointing to a replacement function provided by the metering DLL 120. Using this technique, an example software call made to DrawText() by the PC video application 115 will instead be automatically re-directed to the metering DLL 120 to execute the replacement function provided by the metering DLL 120.
The replacement function provided by the metering DLL 120 may, in turn, make a corresponding software call to the standard DrawText() function provided by the API 110 using the address contained in the original PC video application's 115 IMPORT
TABLE.
The replacement function provided by the metering DLL 120 also passes, using standard operating system messaging techniques and/or function calls, information regarding the received re-directed API software call to the meter 125. It will be well understood that by configuring the number, type, operation, etc. of the replacement functions provided by the metering DLL 120, the standard API calls re-directed to the metering DLL 120 can be adjusted.
[0023] To allow proper video display in the example of FIG. 1, the handler 120 passes (i.e., forwards) re-directed function calls, signals, instructions, values, etc. to the API
110. To facilitate monitoring of TV viewing by the user, the handler 120 also passes a copy of appropriate re-directed function calls, signals, instructions, values, etc.
(e.g., video source selections, TV channel selections, display mode, user identification, etc.) to the meter 125. In the example of FIG. 1, the handler 120 only re-directs those function calls, signals, instructions, values, etc. useful for monitoring TV viewing by the user (e.g., video source, TV
channel selections, user identification, mode, volume muting, etc.). Other function calls, signals, instructions, values, etc. (e.g., volume, etc.) may be directly exchanged or configured between the PC based video application 115 and the API 110. Altei7iatively, the handler 120 could re-direct all function calls, signals, instructions, values, etc. and pass all or a portion of them to the meter 125.
110. To facilitate monitoring of TV viewing by the user, the handler 120 also passes a copy of appropriate re-directed function calls, signals, instructions, values, etc.
(e.g., video source selections, TV channel selections, display mode, user identification, etc.) to the meter 125. In the example of FIG. 1, the handler 120 only re-directs those function calls, signals, instructions, values, etc. useful for monitoring TV viewing by the user (e.g., video source, TV
channel selections, user identification, mode, volume muting, etc.). Other function calls, signals, instructions, values, etc. (e.g., volume, etc.) may be directly exchanged or configured between the PC based video application 115 and the API 110. Altei7iatively, the handler 120 could re-direct all function calls, signals, instructions, values, etc. and pass all or a portion of them to the meter 125.
[0024] FIG. 2A illustrates an example IMPORT TABLE 205 containing an entry for DrawText() that points to an address Xl corresponding to the DrawText() function provided by the API 110. FIG. 2B illustrates an example IMPORT TABLE 215 modified by the metering DLL 120 such that calls to the DrawTextO function made by the PC
based video application 115 are re-directed to the metering DLL 120 . In particular, the entry for DrawText() in the IMPORT TABLE 215 is modified with a new address Y1 corresponding to a replacement function provided by the metering DLL 120. Further, the metering uses the original address X l to call the original function in the API 110.
based video application 115 are re-directed to the metering DLL 120 . In particular, the entry for DrawText() in the IMPORT TABLE 215 is modified with a new address Y1 corresponding to a replacement function provided by the metering DLL 120. Further, the metering uses the original address X l to call the original function in the API 110.
[0025] FIG. 3 is a schematic illustration of an example manner of implementing the handler 120 of FIG. 1. To modify the IMPORT TABLE of the PC based video application 115, the example of FIG. 3 includes a modifier 305. As discussed above, the modifier 305 replaces one or more addresses in the IMPORT TABLE of the PC based video application 115 with addresses corresponding to replacement functions in the metering DLL
120. The modifier 305 also creates entries in a table 320 that allow a redirector 315 to correctly forward received re-directed API calls made by the PC based video application 115 to the API 110. To forward re-directed API calls to the API 110 and to pass re-directed API calls to the meter 125, the example handler 120 of FIG. 3 includes the redirector 315.
Because the example redirector 315 of FIG. 3 forwards re-directed API calls to the API
110, the correct and/or intended operation(s) of the exaniple PC video application 115 is not interrupted and/or impaired even while video consumption metering is occurring. The example handler 120 of FIG. 3 may be implemented by a DLL as discussed herein, as machine readable instructions executing on a processing element associated with the hardware 110, as dedicated hardware or circuitry, or as a combination of hardware and software.
120. The modifier 305 also creates entries in a table 320 that allow a redirector 315 to correctly forward received re-directed API calls made by the PC based video application 115 to the API 110. To forward re-directed API calls to the API 110 and to pass re-directed API calls to the meter 125, the example handler 120 of FIG. 3 includes the redirector 315.
Because the example redirector 315 of FIG. 3 forwards re-directed API calls to the API
110, the correct and/or intended operation(s) of the exaniple PC video application 115 is not interrupted and/or impaired even while video consumption metering is occurring. The example handler 120 of FIG. 3 may be implemented by a DLL as discussed herein, as machine readable instructions executing on a processing element associated with the hardware 110, as dedicated hardware or circuitry, or as a combination of hardware and software.
[0026] Returning to FIG. 1, the meter 125 uses information contained in function calls, signals, instructions, values, etc. re-directed to the handler 120 and provided to the meter 125 to monitor and record TV viewing by the user. For example, the meter 125 creates log entries that contain time-of-day, TV station and user identification. The log entries could also contain TV program information (e.g., name of a viewed program, name of a TV station, a channel name, etc.) if that information is displayed on the display device and if the displaying uses a technique that can be re-directed to the handler 120. In the example of FIG.
1, the meter 125 creates a log entry each time a change in TV viewing occurs (e.g., video source change, a TV station change, a volume muting, a program break, an on/off event, a change in user, etc.). The meter 125 may also create log entries periodically or aperiodically during time intervals without changes in TV viewing parameters (e.g., every 15 ininutes).
1, the meter 125 creates a log entry each time a change in TV viewing occurs (e.g., video source change, a TV station change, a volume muting, a program break, an on/off event, a change in user, etc.). The meter 125 may also create log entries periodically or aperiodically during time intervals without changes in TV viewing parameters (e.g., every 15 ininutes).
[0027] The example system of FIG. 1 periodically or aperiodically provides the recorded (i.e., logged) TV viewing information to a processing server (not shown) that combines the recorded TV viewing information with recorded TV viewing information from other TV metering systems (PC TV or otherwise) to develop meaningful viewership and/or program consumption statistics. For instance, the processing server of the illustrated example uses the combined recorded TV viewing information to determine overall TV
viewership ratings and/or raiikings for each time period of each day of the week, each TV
program, etc.
It will be understood by persons of ordinary skill in the art that the meter 125 could provide the recorded TV viewing information to the processing server using any of a variety of techniques. For instance, by periodically or aperiodically recording the information on a non-volatile storage medium (e.g., recordable compact disc (CD-R)) that can be transported (e.g., picked up, mailed, etc.) and then loaded onto the processing server; by uploading (e.g., via an Internet connection, dedicated network or public switched network accessible via the API
110 and the hardware 105) the recorded information to the processing server;
etc.
viewership ratings and/or raiikings for each time period of each day of the week, each TV
program, etc.
It will be understood by persons of ordinary skill in the art that the meter 125 could provide the recorded TV viewing information to the processing server using any of a variety of techniques. For instance, by periodically or aperiodically recording the information on a non-volatile storage medium (e.g., recordable compact disc (CD-R)) that can be transported (e.g., picked up, mailed, etc.) and then loaded onto the processing server; by uploading (e.g., via an Internet connection, dedicated network or public switched network accessible via the API
110 and the hardware 105) the recorded information to the processing server;
etc.
[0028] The meter 125 examines the API calls made by the PC video application as re-directed to the metering DLL 120 for infonnation necessary to monitor and log TV
viewing by the user. For example, the meter 125 could examine the parameters contained in a call to DrawText() to identify if the PC video application 115 is displaying a TV station number and/or TV program name on the display device. As an example, the meter 125 could examine the parameters contained in a FilcOpen() call to obtain the file name and, thus, the time and TV station information associated with a previously recorded TV
program, etc. The example meter 125 utilizes standard API calls to obtain current time-of-day or day-of-the-week information. The meter 125 can be coupled to a People Meter to allow audience members (i.e., viewer) to,identify themselves. Alternatively or additionally, the meter 125 could determine a viewer's identity based on who is logged into the operating system. As discussed above, the meter 125 creates a log of TV viewing and periodically or aperiodically provides the log to a processing server.
viewing by the user. For example, the meter 125 could examine the parameters contained in a call to DrawText() to identify if the PC video application 115 is displaying a TV station number and/or TV program name on the display device. As an example, the meter 125 could examine the parameters contained in a FilcOpen() call to obtain the file name and, thus, the time and TV station information associated with a previously recorded TV
program, etc. The example meter 125 utilizes standard API calls to obtain current time-of-day or day-of-the-week information. The meter 125 can be coupled to a People Meter to allow audience members (i.e., viewer) to,identify themselves. Alternatively or additionally, the meter 125 could determine a viewer's identity based on who is logged into the operating system. As discussed above, the meter 125 creates a log of TV viewing and periodically or aperiodically provides the log to a processing server.
[0029] In the example of FIG. 1, the meter 125, upon starlup, causes the metering DLL 120 to be loaded by the operating system (using techniques discussed above) such that at least one PC video application 115 IMPORT TABLE entry is modified. Upon normal tennination of the operation of the meter 125, the meter 125 causes the metering DLL 120 to be unloaded by the operating system such that replaced PC video application TABLE entries are restored to their original values so that future API calls are made directly to the API 110 and the PC video application 115 can continue operating.
[0030] The example meter 125 of FIG. 1 is implemented as machine readable instructions executing on a processor associated witli the hardware 110.
However, the meter 125 may also be implemented as hardware or a combination of hardware and software.
However, the meter 125 may also be implemented as hardware or a combination of hardware and software.
[0031] The methods and apparatus described in this disclosure support a PC
video application 115 that uses either standard operating system window controls or well-lcnown "skins." Skins based applications utilize standard API calls (e.g., DrawText()) to display textual information and, thus, are amenable to indirect data detection via API
function call re-direction as described herein. Further, while the examples discussed herein and in connection with FIGS. 2-4 are related to a Windows XP based operating system, it will be readily apparent to persons of ordinary skill in the art that similar techniques could be used for other operating systems (e.g., Windows NT, Windows Mr, Mac OS X, Unix, Linux, etc.).
video application 115 that uses either standard operating system window controls or well-lcnown "skins." Skins based applications utilize standard API calls (e.g., DrawText()) to display textual information and, thus, are amenable to indirect data detection via API
function call re-direction as described herein. Further, while the examples discussed herein and in connection with FIGS. 2-4 are related to a Windows XP based operating system, it will be readily apparent to persons of ordinary skill in the art that similar techniques could be used for other operating systems (e.g., Windows NT, Windows Mr, Mac OS X, Unix, Linux, etc.).
[0032] It will be readily apparent to persons of ordinary skill in the art that the metering DLL 120 could alternatively or additionally examine the parameters of re-directed API calls made by the PC video application 115 for information related to TV
viewing by the user(s) (e.g., viewer(s)) and only pass parameters of interest to the meter 125. It will also be readily apparent that the metering DLL 120 could process re-directed non-operating system based API calls made by the PC video application 115. For example, the PC
video application 115 may use customized or proprietary functions to interact with the hardware 105 (e.g., an external TV receiver device), for instance, to select a TV
station. To the extent that the metering DLL 120 can access and/or decipher any customized or proprietary functions used by the PC video application 115 to interact with the hardware 105 and/or the API 110, the methods described herein can be readily extended to re-direct such customized or proprietary functions.
viewing by the user(s) (e.g., viewer(s)) and only pass parameters of interest to the meter 125. It will also be readily apparent that the metering DLL 120 could process re-directed non-operating system based API calls made by the PC video application 115. For example, the PC
video application 115 may use customized or proprietary functions to interact with the hardware 105 (e.g., an external TV receiver device), for instance, to select a TV
station. To the extent that the metering DLL 120 can access and/or decipher any customized or proprietary functions used by the PC video application 115 to interact with the hardware 105 and/or the API 110, the methods described herein can be readily extended to re-direct such customized or proprietary functions.
[0033] FIGS. 4 and 5 illustrate flowcharts representative of example machine readable instructions that may be executed by a processor (e.g., the processor 610 of FIG. 6) to implement the example handler or metering DLL 120 and the example meter 125 of FIG.
1. The machine readable instructions of FIGS. 4 and/or 5, the example API 110, the exaniple PC video application 115, the example metering DLL 120, the example meter 125 and/or, more generally, the example metering system of FIG. 1 may be executed by a processor, a controller and/or any other suitable processing device. For example, the machine readable instructions represented in FIGS. 4 and/or 5, the exaniple API 110, the example PC video application 115, the example metering DLL 120, the exanlple meter 125 and/or, more generally, the example metering system of FIG. 1 may be embodied in coded instructions stored on a tangible medium such as a flash memory, a read-only memory (ROM) and/or a random-access memory (RAM) associated with the processor 610 shown in the example processor platform 600 and discussed below in conjunction with FIG. 6.
Alternatively, some or all of the example machine readable instructions of FIGS. 4 and/or 5, the example API
110, the example PC video application 115, the example metering DLL 120, the example meter 125 and/or the metering system of FIG. 1 may be implemented using any variety of application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), field programmable logic device(s) (FPLD(s)), discrete logic, hardware, etc.
Also, some or all of the machine readable instructions of FIGS. 4 and/or 5, the example API
110, the example PC video application 115, the example metering DLL 120, the example meter 125 and/or the metering system of FIG. 1 may be implemented manually or as any combination of any of the foregoing techniques. Further, although the example machine readable instructions of FIGS. 4 and 5 are described with reference to the flowcharts of FIG. 4 and 5, persons of ordinary skill in the art will readily appreciate that many other methods of implementing the example metering DLL 120 and the example meter 125 may be employed.
For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, sub-divided, or combined. Additionally, persons of ordinary skill in the art will readily appreciate that the example machine accessible instructions of FIGS. 4 and/or 5 may be carried out sequentially and/or carried out in parallel by, for example, separate processing threads, processors, devices, discrete logic, circuits, etc.
1. The machine readable instructions of FIGS. 4 and/or 5, the example API 110, the exaniple PC video application 115, the example metering DLL 120, the example meter 125 and/or, more generally, the example metering system of FIG. 1 may be executed by a processor, a controller and/or any other suitable processing device. For example, the machine readable instructions represented in FIGS. 4 and/or 5, the exaniple API 110, the example PC video application 115, the example metering DLL 120, the exanlple meter 125 and/or, more generally, the example metering system of FIG. 1 may be embodied in coded instructions stored on a tangible medium such as a flash memory, a read-only memory (ROM) and/or a random-access memory (RAM) associated with the processor 610 shown in the example processor platform 600 and discussed below in conjunction with FIG. 6.
Alternatively, some or all of the example machine readable instructions of FIGS. 4 and/or 5, the example API
110, the example PC video application 115, the example metering DLL 120, the example meter 125 and/or the metering system of FIG. 1 may be implemented using any variety of application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), field programmable logic device(s) (FPLD(s)), discrete logic, hardware, etc.
Also, some or all of the machine readable instructions of FIGS. 4 and/or 5, the example API
110, the example PC video application 115, the example metering DLL 120, the example meter 125 and/or the metering system of FIG. 1 may be implemented manually or as any combination of any of the foregoing techniques. Further, although the example machine readable instructions of FIGS. 4 and 5 are described with reference to the flowcharts of FIG. 4 and 5, persons of ordinary skill in the art will readily appreciate that many other methods of implementing the example metering DLL 120 and the example meter 125 may be employed.
For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, sub-divided, or combined. Additionally, persons of ordinary skill in the art will readily appreciate that the example machine accessible instructions of FIGS. 4 and/or 5 may be carried out sequentially and/or carried out in parallel by, for example, separate processing threads, processors, devices, discrete logic, circuits, etc.
[0034] The example machine readable instructions of FIG. 4 begin when the meter 125 is started. Using standard API calls (e.g., VirtualAllocEx(), WriteProcessMemoiy(), LoadLibraryo, CreateRemoteThread()), the meter 125 causes the operating system (e.g., Windows XP) to load the metering DLL 120 (block 405). The loading of the metering DLL
120 (block 405) by the operating system starts the execution of the example machine readable instructions of FIG. 5 in a processing thread separate from that executing the example machine readable instructions of FIG. 4 (i.e., the meter 125). As discussed above in connection with FIG. 1 and below in connection with FIGS. 4 and 5, the meter 125 (e.g., the machine readable instructions of FIG. 4) and the metering DLL 120 (e.g., the machine readable instructions of FIG. 5) interact to determine video and/or program viewing, display and/or consumption by a person.
120 (block 405) by the operating system starts the execution of the example machine readable instructions of FIG. 5 in a processing thread separate from that executing the example machine readable instructions of FIG. 4 (i.e., the meter 125). As discussed above in connection with FIG. 1 and below in connection with FIGS. 4 and 5, the meter 125 (e.g., the machine readable instructions of FIG. 4) and the metering DLL 120 (e.g., the machine readable instructions of FIG. 5) interact to determine video and/or program viewing, display and/or consumption by a person.
[0035] The meter 125 then waits for the metering DLL 120 to receive a new re-directed API call and to provide the parameters of the re-directed API call to the meter 125 (i.e., an event) (block 410). If a new event has not occurred (block 410), the meter 125 continues waiting (block 410). If a new event has occurred and information has been received (block 410), the meter 125 determines if the re-directed API call is an event of interest (e.g., DrawText(), or more generally, an event associated with an interaction between the PC video application 115 and the metering DLL 120) (block 415). If the re-directed API
call is not an event of interest (block 415), the meter 125 returns to block 410 to await another event.
call is not an event of interest (block 415), the meter 125 returns to block 410 to await another event.
[0036] If the re-directed API call is an event of interest (block 415), the meter 125 decodes the information re-directed to and received from the metering DLL 120 (e.g., TV
channel selection, video source, etc.) (block 420). The meter 125 then acquires time-of-day, day-of-week, user identification, etc. information (block 425), and creates a log entry based on the decoded and acquired information and data (block 430). The meter 125 then returns to block 410 to await another event.
channel selection, video source, etc.) (block 420). The meter 125 then acquires time-of-day, day-of-week, user identification, etc. information (block 425), and creates a log entry based on the decoded and acquired information and data (block 430). The meter 125 then returns to block 410 to await another event.
[0037] The example machine readable instructions of FIG. 5 begin when the metering DLL 120 is loaded by the operating system (e.g., Windows XP). As discussed above and in connection with FIGS. 2A and 2B, the metering DLL 120 modifies the IMPORT
TABLE of the PC video application 115 so that calls to API functions replaced by the metering DLL 120 are re-directed to the metering DLL 120 (block 505). The metering DLL 120 also saves the original IMPORT TABLE entries so that these original entries can be restored when the metering DLL 120 is unloaded by the operating system and so that the metering calls the proper function in the API 110 when API calls are re-directed (block 505).
TABLE of the PC video application 115 so that calls to API functions replaced by the metering DLL 120 are re-directed to the metering DLL 120 (block 505). The metering DLL 120 also saves the original IMPORT TABLE entries so that these original entries can be restored when the metering DLL 120 is unloaded by the operating system and so that the metering calls the proper function in the API 110 when API calls are re-directed (block 505).
[0038] The metering DLL 120 then waits for one of the replacement functions provided by the metering DLL 120 to be called by the PC video application 115 (i.e., an API
call re-direction has occurred) (block 510). If an API call has been re-directed to the metering DLL 120 (block 510), the metering DLL 120 calls the corresponding API
function in the API 110 (block 515). By calling the corresponding API function in the API 110, the metering DLL 120 ensures that the PC video application 115 is not interrupted, impaired and/or prevented from correctly presenting video. The metering DLL 120 then determines if the re-directed API call is an event of interest (block 520). For example, by comparing the -parameters of a DrawText() API call with a character string corresponding to a channel name, channel nuinber, or TV program name (block 520). If the re-directed API call is not an event of interest (block 520), the metering DLL 120 returns to block 510 to await another API call re-direction. If the re-directed API call is an event of interest (block 520), the metering DLL
120 pass the parameters of the re-directed API call to the meter 125 (block 525) and returns to block 510 to await another API call re-direction.
call re-direction has occurred) (block 510). If an API call has been re-directed to the metering DLL 120 (block 510), the metering DLL 120 calls the corresponding API
function in the API 110 (block 515). By calling the corresponding API function in the API 110, the metering DLL 120 ensures that the PC video application 115 is not interrupted, impaired and/or prevented from correctly presenting video. The metering DLL 120 then determines if the re-directed API call is an event of interest (block 520). For example, by comparing the -parameters of a DrawText() API call with a character string corresponding to a channel name, channel nuinber, or TV program name (block 520). If the re-directed API call is not an event of interest (block 520), the metering DLL 120 returns to block 510 to await another API call re-direction. If the re-directed API call is an event of interest (block 520), the metering DLL
120 pass the parameters of the re-directed API call to the meter 125 (block 525) and returns to block 510 to await another API call re-direction.
[0039] FIG. 6 is a schematic diagram of an example processor platform 600 capable of executing the example machine readable instructions represented in FIGS. 4 and 5, and/or implementing the example API 110, the example PC video application 115, the example metering DLL 120, the example meter 125 and/or, more generally, the metering system of FIG. 1. For example, the processor platform 600 can be implemented by one or more general purpose microprocessors, microcontrollers, etc.
[0040] The processor platform 600 of the example of FIG. 6 includes a general purpose programmable processor 610. The processor 610 executes coded instructions 627 and/or 629 present in main memory of the processor 610 (e.g., within a RAM 625 and/or a ROM 620). The processor 610 may be any type of processing unit, such as a microprocessor from the Inte1 , AMD , IBM , or SUN families of microprocessors. The processor 610 may implement, among other things, the example machine readable instructions of FIGS. 4 and 5, the example API 110, the example PC video application 115, the example metering DLL 120, the example meter 125 and/or metering system of FIG. 1.
[0041] The processor 610 is in communication with the main memory (including a read only memory (ROM) 620 and the RAM 625) via a bus 605. The RAM 625 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic DRAM, and/or any other type of RAM device. The ROM 620 may be implemented by flash memory and/or any other desired type of memory device. Access to the memory 620 and 625 is typically controlled by a memory controller (not shown).
[0042] The processor platform 600 also includes an interface circuit 630. The interface circuit 630 may be implemented by any type of well-known interface standard, such as an external memory interface, serial port, general purpose input/output, etc.
[0043] One or more input devices 635 and one or more output devices 640 are connected to the interface circuit 630. The input devices 635 and output devices 640 may be used to implement interfaces between a user and the example metering system of FIG. 1.
[0044] Of course, persons of ordinary skill in the art will recognize that the order, size, and proportions of the memory illustrated in the example systems may vary.
Additionally, although this patent discloses example systems including, among other components, software or firmware executed on hardware, it will be noted that such systems are merely illustrative and should not be considered as limiting. For exanzple, it is contemplated that any or all of these hardware and software components could be embodied exclusively in hardware, exclusively in software, exclusively in firmware or in some combination of hardware, firmware and/or software. Accordingly, persons of ordinary skill in the art will readily appreciate that the above described examples are not the only way to implement such systems.
Additionally, although this patent discloses example systems including, among other components, software or firmware executed on hardware, it will be noted that such systems are merely illustrative and should not be considered as limiting. For exanzple, it is contemplated that any or all of these hardware and software components could be embodied exclusively in hardware, exclusively in software, exclusively in firmware or in some combination of hardware, firmware and/or software. Accordingly, persons of ordinary skill in the art will readily appreciate that the above described examples are not the only way to implement such systems.
[0045] At least some of the above described example methods and/or apparatus are implemented by one or more software and/or firmware programs running on a computer processor. However, dedicated hardware implementations including, but not limited to, an ASIC, programmable logic arrays and other hardware devices can likewise be constructed to implement some or all of the example methods and/or apparatus described herein, either in whole or in part. Furthermore, alternative software implementations including, but not limited to, distributed processing or componentlobject distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the example methods and/or apparatus described herein.
[0046] It should also be noted that the example software and/or firmware implementations described herein are optionally stored on a tangible storage medium, such as: a magnetic medium (e.g., a disk or tape); a magneto-optical or optical medium such as a disk; or a solid state medium such as a memory card or other package that houses one or more read-only (non-volatile) memories, random access memories, or other re-writable (volatile) memories; or a signal containing computer instructions. A digital file attachment to e-mail or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. Accordingly, the example software and/or ftrmware described herein can be stored on a tangible storage medium or distribution medium such as those described above or equivalents and successor media.
[0047] To the extent the above specification describes example components and functions with reference to particular devices, standards and/or protocols, it is understood that the teachings of the invention are not limited to such devices, standards and/or protocols. For instance, the Windows XP, Mac OS X, Unix, Linux, etc. operating systems represent examples of the current state of the art. Such systems are periodically superseded by faster or more efficient systems having the same general purpose. Accordingly, replacement devices, standards and/or protocols having the same general functions are equivalents which are intended to be included within the scope of the accompanying claims.
[0048] Although certain example methods, apparatus and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.
Claims (49)
1. A method performed by a computer that is configured to execute an operating system and a media presentation program comprising:
modifying the media presentation program to re-direct a function call made to the operating system by the media presentation program; and processing the re-directed function call to determine media presentation information.
modifying the media presentation program to re-direct a function call made to the operating system by the media presentation program; and processing the re-directed function call to determine media presentation information.
2. A method as defined in claim 1, wherein modifying the media presentation program to re-direct the function call made to the operating system by the media presentation program comprises modifying an address associated with the function call.
3. A method as defined in claim 2, wherein the address is stored in a table entry of the media presentation program that is associated with the function call.
4. A method as defined in claim 3, wherein the table entry is an IMPORT TABLE
entry.
entry.
5. A method as defined in claim 2, wherein modifying the address associated with the function call comprises replacing the address with a second address of a function provided by a monitoring program.
6. A method as defined in claim 2, wherein the function call is associated with displaying text on a display associated with the computer.
7. A method as defined in claim 1, wherein processing the re-directed function call to determine the media presentation information comprises:
extracting a parameter from the function call; and passing the function call to the operating system.
extracting a parameter from the function call; and passing the function call to the operating system.
8. A method as defined in claim 1, further comprising processing the media presentation information to determine a media consumption statistic.
9. A method as defined in claim 1, further comprising providing the media presentation information to a processing server.
10. A method as defined in claim 1, wherein the media presentation information is at least one of a channel number, a channel name, a content name, a program name, a stream name, a file name, a time-of-day, a day-of-week, an original broadcast time, an original transmission time, a record time, or a user identification.
11. A method as defined in claim 1, wherein the function call is associated with displaying text on a display associated with the computer.
12. A method as defined in claim 1, wherein the media presentation program, when executed, emits at least one of a television program, a video, a movie, an audio file, an audio stream, text, a commercial, or an image.
13. A method as defined in claim 1, wherein the media presentation program, when executed, receives media from at least one of an antenna, a satellite receiver, a cable receiver, a digital video disc, a compact disc, or an Internet based site.
14. A method as defined in claim 1, wherein the function call is re-directed from a first function provided by the operating system to a second function provided by a monitoring program.
15. A method as defined in claim 1, further comprising configuring the computer to execute a monitoring program, the monitoring program to modify the media presentation program and process the re-directed function call.
16. A method as defined in claim 1, wherein the computer is at least one of a personal computer, a handheld computing device, a personal digital assistance, a workstation, a cellular telephone, a smart phone, a media player, a television, a digital video recorder, or a digital versatile disc player.
17. An article of manufacture storing machine readable instructions which, when executed, cause a machine to:
modify a media presentation program to cause a function call initiated by the media presentation program and directed to an operating system to be re-directed; and receive the re-directed function call and extract information regarding presentation of media from the re-directed function call.
modify a media presentation program to cause a function call initiated by the media presentation program and directed to an operating system to be re-directed; and receive the re-directed function call and extract information regarding presentation of media from the re-directed function call.
18. An article of manufacture as defined in claim 17, wherein the machine readable instructions, when executed, cause the machine to provide the extracted information to a server.
19. An article of manufacture as defined in claim 17, wherein the machine readable instructions, when executed, cause the machine to modify the media presentation program to re-direct the function call made to the operating system by the media presentation program by modifying an address associated with the function call.
20. An article of manufacture as defined in claim 19, wherein the address is stored in a table entry of the media presentation program that is associated with the function call.
21. An article of manufacture as defined in claim 19, wherein modifying the address associated with the function call comprises replacing the address with a second address of a function provided by a monitoring program.
22. An article of manufacture as defined in claim 19, wherein the function call is associated with displaying text on a display.
23. An article of manufacture as defined in claim 17, wherein the machine readable instructions, when executed, cause the machine to process the re-directed function call to determine the media presentation information by:
extracting a parameter from the function call; and passing the function call to the operating system.
extracting a parameter from the function call; and passing the function call to the operating system.
24. An article of manufacture as defined in claim 17, wherein the machine readable instructions, when executed, cause the machine to provide the media presentation information to a processing server.
25. An article of manufacture as defined in claim 17, wherein the media presentation information is at least one of a channel number, a channel name, a content name, a program name, a stream name, a file name, a time-of-day, a day-of-week, an original broadcast time, an original transmission time, a record time, or a user identification.
26. An article of manufacture as defined in claim 17, wherein the machine readable instructions, when executed, cause the machine to redirect the function call from a first function provided by the operating system to a second function provided by a monitoring program.
27. An article of manufacture as defined in claim 17, wherein the machine readable instructions, when executed, cause the machine to configure the computer to execute a monitoring program, the monitoring program to modify the media presentation program and process the re-directed function call.
28. An apparatus to meter a computer that is configured to execute an operating system and a media presentation program, the apparatus comprising:
a handler to modifying a media presentation program to re-direct a function call made to an operating system by the media presentation program; and a meter to process the re-directed function call to determine media presentation information.
a handler to modifying a media presentation program to re-direct a function call made to an operating system by the media presentation program; and a meter to process the re-directed function call to determine media presentation information.
29. An apparatus as defined in claim 28, wherein the handler comprises:
a modifier to modify the media presentation program; and a re-director to direct the re-directed function call to the meter.
a modifier to modify the media presentation program; and a re-director to direct the re-directed function call to the meter.
30. An apparatus as defined in claim 29, wherein, the re-director is configured to direct the re-directed function call to the operating system.
31. An apparatus as defined in claim 28, wherein the handler is configured to modify an address associated with the function call.
32. An apparatus as defined in claim 31, wherein the address is stored in a table entry of the media presentation program that is associated with the function call.
33. An apparatus as defined in claim 31, wherein the handler is configured to replace the address with a second address of a function provided by a monitoring program.
34. An apparatus as defined in claim 31, wherein the function call is associated with displaying text on a display associated with the computer.
35. An apparatus as defined in claim 28, wherein the meter is configured to process the re-directed function call to determine the media presentation information by:
extracting a parameter from the function call; and passing the function call to the operating system.
extracting a parameter from the function call; and passing the function call to the operating system.
36. An apparatus as defined in claim 28, wherein the meter is configured to provide the media presentation information to a processing server.
37. An apparatus as defined in claim 28, wherein the media presentation information is at least one of a channel number, a channel name, a content name, a program name, a stream name, a file name, a time-of-day, a day-of-week, an original broadcast time, an original transmission time, a record time, or a user identification.
38. An apparatus as defined in claim 28, wherein the function call is associated with displaying text on a display associated with the computer.
39. An apparatus as defined in claim 28, wherein the computer is at least one of a personal computer, a handheld computing device, a personal digital assistance, a workstation, a cellular telephone, a smart phone, a media player, a television, a digital video recorder, or a digital versatile disc player.
40. A media presentation metering system comprising:
a plurality of computers comprising:
an operating system;
a media presentation program; and a monitoring program configured to modify the media presentation program to cause a function call initiated by the media presentation program and directed to the operating system to be re-directed to the monitoring program, and to record parameters characteristic of presentation of media; and a server configured to process the recorded parameters to determine media presentation statistics.
a plurality of computers comprising:
an operating system;
a media presentation program; and a monitoring program configured to modify the media presentation program to cause a function call initiated by the media presentation program and directed to the operating system to be re-directed to the monitoring program, and to record parameters characteristic of presentation of media; and a server configured to process the recorded parameters to determine media presentation statistics.
41. A media presentation metering system as defined in claim 40, wherein the monitoring program comprises:
a handler to modifying a media presentation program to re-direct a function call made to an operating system by the media presentation program; and a meter to process the re-directed function call to determine media presentation information.
a handler to modifying a media presentation program to re-direct a function call made to an operating system by the media presentation program; and a meter to process the re-directed function call to determine media presentation information.
42. A media presentation metering system as defined in claim 41, wherein the handler comprises:
a modifier to modify the media presentation program; and a re-director to direct the re-directed function call to the meter.
a modifier to modify the media presentation program; and a re-director to direct the re-directed function call to the meter.
43. A media presentation metering system as defined in claim 42, wherein, the re-director is configured to direct the re-directed function call to the operating system.
44. A media presentation metering system as defined in claim 41, wherein the handler is configured to modify an address associated with the function call.
45. A media presentation metering system as defined in claim 40, wherein the monitoring program is configured to provide the recorded parameters to the server.
46. A media presentation metering system as defined in claim 40, wherein the function call is associated with displaying text on a display.
47. A media presentation metering system as defined in claim 40, wherein the monitoring program is configured to process the re-directed function call to determine the media presentation information by:
extracting a parameter from the function call; and passing the function call to the operating system.
extracting a parameter from the function call; and passing the function call to the operating system.
48. A media presentation metering system as defined in claim 40, wherein the recorded parameters include at least one of a channel number, a channel name, a content name, a program name, a stream name, a file name, a time-of-day, a day-of-week, an original broadcast time, an original transmission time, a record time, or a user identification.
49. A media presentation metering system as defined in claim 40, wherein at least one of the plurality of computers is at least one of a personal computer, a handheld computing device, a personal digital assistance, a workstation, a cellular telephone, a smart phone, a media player, a television, a digital video recorder, or a digital versatile disc player.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US72039105P | 2005-09-26 | 2005-09-26 | |
US60/720,391 | 2005-09-26 | ||
PCT/US2006/037395 WO2007038470A2 (en) | 2005-09-26 | 2006-09-26 | Methods and apparatus for metering computer-based media presentation |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2623697A1 true CA2623697A1 (en) | 2007-04-05 |
CA2623697C CA2623697C (en) | 2015-09-22 |
Family
ID=37900372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2623697A Active CA2623697C (en) | 2005-09-26 | 2006-09-26 | Methods and apparatus for metering computer-based media presentation |
Country Status (7)
Country | Link |
---|---|
US (1) | US9209917B2 (en) |
EP (2) | EP3709539A1 (en) |
KR (2) | KR101493891B1 (en) |
CN (1) | CN101501640B (en) |
AU (1) | AU2006294861C1 (en) |
CA (1) | CA2623697C (en) |
WO (1) | WO2007038470A2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2658979A1 (en) | 2006-07-12 | 2008-01-17 | Arbitron Inc. | Methods and systems for compliance confirmation and incentives |
US9389935B2 (en) * | 2011-12-06 | 2016-07-12 | Introspex, Inc. | Analytics data collection with low integration cost for dynamic message passing systems |
US9332363B2 (en) | 2011-12-30 | 2016-05-03 | The Nielsen Company (Us), Llc | System and method for determining meter presence utilizing ambient fingerprints |
US10118095B2 (en) * | 2012-12-14 | 2018-11-06 | Nvidia Corporation | Implementing a remote gaming server on a desktop computer |
AU2013203768B2 (en) | 2013-03-07 | 2016-05-05 | The Nielsen Company (Us), Llc | Methods and apparatus to monitor media presentations |
US9356977B2 (en) * | 2013-08-30 | 2016-05-31 | Citrix Systems, Inc. | Acquiring online meeting data relating to an online meeting |
US11809881B2 (en) * | 2015-11-10 | 2023-11-07 | Riverbed Technology, LLC | Target process injection prior to execution of marker libraries |
US11188352B2 (en) | 2015-11-10 | 2021-11-30 | Riverbed Technology, Inc. | Advanced injection rule engine |
Family Cites Families (216)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3484787A (en) | 1967-06-12 | 1969-12-16 | Itt | Folded monopole antenna with top loading and lumped inductance at bottom |
US3540003A (en) | 1968-06-10 | 1970-11-10 | Ibm | Computer monitoring system |
US3906450A (en) * | 1970-10-09 | 1975-09-16 | Jr Eduardo Da Silva Prado | Electronic system for the recording of periodically sampled variables |
US3818458A (en) * | 1972-11-08 | 1974-06-18 | Comress | Method and apparatus for monitoring a general purpose digital computer |
US3906454A (en) * | 1973-05-18 | 1975-09-16 | Bell Telephone Labor Inc | Computer monitoring system |
UST955010I4 (en) * | 1975-03-12 | 1977-02-01 | International Business Machines Corporation | Hardware/software monitoring system |
US4361832A (en) | 1977-01-28 | 1982-11-30 | Cole Martin T | Automatic centralized monitoring system |
GB1553027A (en) | 1977-05-12 | 1979-09-19 | Marconi Co Ltd | Message signal scrambling apparatus |
US4168396A (en) * | 1977-10-31 | 1979-09-18 | Best Robert M | Microprocessor for executing enciphered programs |
US4230990C1 (en) * | 1979-03-16 | 2002-04-09 | John G Lert Jr | Broadcast program identification method and system |
US4319079A (en) | 1979-09-13 | 1982-03-09 | Best Robert M | Crypto microprocessor using block cipher |
US4306289A (en) | 1980-02-04 | 1981-12-15 | Western Electric Company, Inc. | Digital computer having code conversion apparatus for an encrypted program |
US4367525A (en) * | 1980-06-06 | 1983-01-04 | Tesdata Systems Corporation | CPU Channel monitoring system |
AU547877B2 (en) | 1980-09-26 | 1985-11-07 | B. Lofberg | Method for processing an information signal and means for carrying out the method |
GB2128453A (en) * | 1982-10-08 | 1984-04-26 | Philips Electronic Associated | System identification in communications systems |
US4588991A (en) * | 1983-03-07 | 1986-05-13 | Atalla Corporation | File access security method and means |
JPH0648293B2 (en) | 1983-03-18 | 1994-06-22 | 和芙 橋本 | Automatic measurement and alarm device for radioactivity |
US4630196A (en) | 1983-04-13 | 1986-12-16 | At&T Information Systems, Inc. | Store and forward facility for use in multiprocessing environment |
US4590550A (en) * | 1983-06-29 | 1986-05-20 | International Business Machines Corporation | Internally distributed monitoring system |
US4658093A (en) | 1983-07-11 | 1987-04-14 | Hellman Martin E | Software distribution system |
US4558413A (en) | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
US4740890A (en) | 1983-12-22 | 1988-04-26 | Software Concepts, Inc. | Software protection system with trial period usage code and unlimited use unlocking code both recorded on program storage media |
US4754262A (en) | 1984-03-01 | 1988-06-28 | Interactive Technologies, Inc. | Multiplexed alarm system |
US4718005A (en) * | 1984-05-03 | 1988-01-05 | International Business Machines Corporation | Distributed control of alias name usage in networks |
US4672572A (en) | 1984-05-21 | 1987-06-09 | Gould Inc. | Protector system for computer access and use |
US4621325A (en) | 1984-06-06 | 1986-11-04 | Information Retrieval Methods, Inc. | Method for monitoring receipt and stocking of goods in a direct store delivery |
US4791565A (en) | 1984-06-20 | 1988-12-13 | Effective Security Systems, Inc. | Apparatus for controlling the use of computer software |
US4747139A (en) | 1984-08-27 | 1988-05-24 | Taaffe James L | Software security method and systems |
US4696034A (en) | 1984-10-12 | 1987-09-22 | Signal Security Technologies | High security pay television system |
GB2176639B (en) | 1985-05-31 | 1988-11-23 | Mars Inc | Data acquisition system |
US4685056A (en) * | 1985-06-11 | 1987-08-04 | Pueblo Technologies, Inc. | Computer security device |
US4721178A (en) * | 1985-08-08 | 1988-01-26 | Honda Giken Kogyo Kabushiki Kaisha | Multi-wheeled vehicle |
US4757533A (en) | 1985-09-11 | 1988-07-12 | Computer Security Corporation | Security system for microcomputers |
US4825354A (en) | 1985-11-12 | 1989-04-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Method of file access in a distributed processing computer network |
US4720782A (en) * | 1986-01-13 | 1988-01-19 | Digital Equipment Corporation | Console unit for clustered digital data processing system |
US4734865A (en) | 1986-01-28 | 1988-03-29 | Bell & Howell Company | Insertion machine with audit trail and command protocol |
US4876592A (en) | 1986-03-10 | 1989-10-24 | Henry Von Kohorn | System for merchandising and the evaluation of responses to broadcast transmissions |
US4926255A (en) | 1986-03-10 | 1990-05-15 | Kohorn H Von | System for evaluation of response to broadcast transmissions |
US4745468B1 (en) | 1986-03-10 | 1991-06-11 | System for evaluation and recording of responses to broadcast transmissions | |
US5508731A (en) * | 1986-03-10 | 1996-04-16 | Response Reward Systems L.C. | Generation of enlarged participatory broadcast audience |
US5759101A (en) | 1986-03-10 | 1998-06-02 | Response Reward Systems L.C. | Central and remote evaluation of responses of participatory broadcast audience with automatic crediting and couponing |
US5128752A (en) | 1986-03-10 | 1992-07-07 | Kohorn H Von | System and method for generating and redeeming tokens |
US5697844A (en) | 1986-03-10 | 1997-12-16 | Response Reward Systems, L.C. | System and method for playing games and rewarding successful players |
US4821178A (en) | 1986-08-15 | 1989-04-11 | International Business Machines Corporation | Internal performance monitoring by event sampling |
US4977594A (en) | 1986-10-14 | 1990-12-11 | Electronic Publishing Resources, Inc. | Database usage metering and protection system and method |
US5050213A (en) * | 1986-10-14 | 1991-09-17 | Electronic Publishing Resources, Inc. | Database usage metering and protection system and method |
US4827508A (en) * | 1986-10-14 | 1989-05-02 | Personal Library Software, Inc. | Database usage metering and protection system and method |
US4769697A (en) | 1986-12-17 | 1988-09-06 | R. D. Percy & Company | Passive television audience measuring systems |
US4970644A (en) | 1987-01-02 | 1990-11-13 | Schlumberger Technology Corporation | Reconfigurable well logging system |
IT209988Z2 (en) * | 1987-03-06 | 1988-11-14 | Aies Gibellini S P A | PERFECTED CONTAINER FOR ELECTRIC ACCUMULATORS. |
US4866769A (en) | 1987-08-05 | 1989-09-12 | Ibm Corporation | Hardware assist for protecting PC software |
US4876736A (en) | 1987-09-23 | 1989-10-24 | A. C. Nielsen Company | Method and apparatus for determining channel reception of a receiver |
US4914689A (en) | 1987-12-22 | 1990-04-03 | Bell Mountain States Telephone & Telegraph Co. | Reverse automatic number identification system |
US4943963A (en) | 1988-01-19 | 1990-07-24 | A. C. Nielsen Company | Data collection and transmission system with real time clock |
US4940976A (en) * | 1988-02-05 | 1990-07-10 | Utilicom Inc. | Automated remote water meter readout system |
EP0357719A4 (en) | 1988-02-11 | 1991-01-09 | A. C. Nielsen Company | Marketing research system for obtaining retail data |
CA1301346C (en) | 1988-02-29 | 1992-05-19 | John Malec | Passive data collection system for market research data |
US4956769A (en) * | 1988-05-16 | 1990-09-11 | Sysmith, Inc. | Occurence and value based security system for computer databases |
US5113518A (en) | 1988-06-03 | 1992-05-12 | Durst Jr Robert T | Method and system for preventing unauthorized use of software |
US5023907A (en) * | 1988-09-30 | 1991-06-11 | Apollo Computer, Inc. | Network license server |
US4926162A (en) * | 1988-10-28 | 1990-05-15 | Honeywell Inc. | High security communication line monitor |
CA2053261A1 (en) * | 1989-04-28 | 1990-10-29 | Gary D. Hornbuckle | Method and apparatus for remotely controlling and monitoring the use of computer software |
KR920701894A (en) | 1989-04-28 | 1992-08-12 | 브루스 마르쿠스 | Remote control device of computer software and its protection method |
US5319453A (en) | 1989-06-22 | 1994-06-07 | Airtrax | Method and apparatus for video signal encoding, decoding and monitoring |
US4972503A (en) | 1989-08-08 | 1990-11-20 | A. C. Nielsen Company | Method and apparatus for determining audience viewing habits by jamming a control signal and identifying the viewers command |
US5701582A (en) | 1989-08-23 | 1997-12-23 | Delta Beta Pty. Ltd. | Method and apparatus for efficient transmissions of programs |
US5023979A (en) * | 1989-12-06 | 1991-06-18 | Bennett Robert B | Fastener for garments |
US5086386A (en) | 1990-03-23 | 1992-02-04 | Sun Microsystems, Inc. | Method and apparatus for benchmarking the working set of window-based computer systems |
US5214780A (en) | 1990-03-23 | 1993-05-25 | Sun Microsystems, Inc. | Synchronized journaling system |
CA2036205C (en) | 1990-06-01 | 1996-11-19 | Russell J. Welsh | Program monitoring unit |
US5032979A (en) * | 1990-06-22 | 1991-07-16 | International Business Machines Corporation | Distributed security auditing subsystem for an operating system |
US5222874A (en) * | 1991-01-09 | 1993-06-29 | Sullair Corporation | Lubricant cooled electric drive motor for a compressor |
CN1066359A (en) | 1991-03-19 | 1992-11-18 | 亚特兰大科研公司 | Produce and collect the method and apparatus of cable television system medium-long range terminal viewership statistics |
US5182770A (en) | 1991-04-19 | 1993-01-26 | Geza Medveczky | System and apparatus for protecting computer software |
US5444642A (en) | 1991-05-07 | 1995-08-22 | General Signal Corporation | Computer system for monitoring events and which is capable of automatically configuring itself responsive to changes in system hardware |
US5440738A (en) * | 1991-05-16 | 1995-08-08 | Tally Systems Corporation | Method and apparatus for digital data processor file configuration detection |
US5233642A (en) | 1991-05-24 | 1993-08-03 | Omnitronix, Inc. | Cellular telephone usage monitoring system |
US5204897A (en) | 1991-06-28 | 1993-04-20 | Digital Equipment Corporation | Management interface for license management system |
US5406269A (en) * | 1991-07-05 | 1995-04-11 | David Baran | Method and apparatus for the remote verification of the operation of electronic devices by standard transmission mediums |
US5355484A (en) * | 1991-08-12 | 1994-10-11 | International Business Machines Corporation | Dynamically established event monitors in event management services of a computer system |
JP3116443B2 (en) * | 1991-08-30 | 2000-12-11 | ソニー株式会社 | Socket communication log storage device |
JPH05134954A (en) | 1991-11-15 | 1993-06-01 | Fujitsu Ltd | Network processor |
US5734413A (en) * | 1991-11-20 | 1998-03-31 | Thomson Multimedia S.A. | Transaction based interactive television system |
US5343239A (en) | 1991-11-20 | 1994-08-30 | Zing Systems, L.P. | Transaction based interactive television system |
US5519433A (en) * | 1991-11-20 | 1996-05-21 | Zing Systems, L.P. | Interactive television security through transaction time stamping |
US5317635A (en) * | 1992-06-10 | 1994-05-31 | Scientific-Atlanta, Inc. | Interdiction method and apparatus with mode control for variable frequency elements |
US5287408A (en) * | 1992-08-31 | 1994-02-15 | Autodesk, Inc. | Apparatus and method for serializing and validating copies of computer software |
JPH06130647A (en) * | 1992-10-21 | 1994-05-13 | Fujitsu Ltd | Optical mask and method for correcting its defect |
US5377269A (en) | 1992-10-29 | 1994-12-27 | Intelligent Security Systems, Inc. | Security access and monitoring system for personal computer |
US5450134A (en) | 1993-01-12 | 1995-09-12 | Visual Automation Systems, Inc. | Video facility management system for encoding and decoding video signals to facilitate identification of the video signals |
US5557334A (en) * | 1993-01-12 | 1996-09-17 | Visual Automation Systems, Inc. | Apparatus for tracking the flow of video signals by incorporating patterns of machine readable signals which will appear at predetermined locations of a television picture |
US5483658A (en) | 1993-02-26 | 1996-01-09 | Grube; Gary W. | Detection of unauthorized use of software applications in processing devices |
US5488648A (en) | 1993-08-17 | 1996-01-30 | Telefonaktiebolaget L M Ericsson | Behavior monitoring and analyzing system for stored program controlled switching system |
US5481294A (en) * | 1993-10-27 | 1996-01-02 | A. C. Nielsen Company | Audience measurement system utilizing ancillary codes and passive signatures |
CA2174934A1 (en) | 1993-10-29 | 1995-05-04 | Ronald D. Keithley | Interactive multimedia communications system which accesses industry-specific information |
US5771354A (en) | 1993-11-04 | 1998-06-23 | Crawford; Christopher M. | Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services |
US5606604A (en) | 1993-12-13 | 1997-02-25 | Lucent Technologies Inc. | System and method for preventing fraud upon PBX through a remote maintenance or administration port |
US5499340A (en) | 1994-01-12 | 1996-03-12 | Isogon Corporation | Method and apparatus for computer program usage monitoring |
CA2119970A1 (en) | 1994-03-25 | 1995-09-26 | Michael A. Lyons | Program monitoring system |
WO1995027349A1 (en) * | 1994-03-31 | 1995-10-12 | The Arbitron Company, A Division Of Ceridian Corporation | Apparatus and methods for including codes in audio signals and decoding |
US5497487A (en) * | 1994-04-28 | 1996-03-05 | The United States Of America As Represented By The Secretary Of The Navy | Merge, commit recovery protocol for real-time database management systems |
IL114359A0 (en) | 1994-06-30 | 1995-10-31 | Walker Asset Management Ltd | System and method for remote gaming |
US5629890A (en) * | 1994-09-14 | 1997-05-13 | Information Storage Devices, Inc. | Integrated circuit system for analog signal storing and recovery incorporating read while writing voltage program method |
US5594934A (en) | 1994-09-21 | 1997-01-14 | A.C. Nielsen Company | Real time correlation meter |
US5758257A (en) | 1994-11-29 | 1998-05-26 | Herz; Frederick | System and method for scheduling broadcast of and access to video programs and other data using customer profiles |
US5530469A (en) * | 1994-12-20 | 1996-06-25 | Garfinkle; Norton | Interactive television with correlation of viewers input and results made available to each viewer |
US5533021A (en) | 1995-02-03 | 1996-07-02 | International Business Machines Corporation | Apparatus and method for segmentation and time synchronization of the transmission of multimedia data |
WO1996028904A1 (en) | 1995-03-16 | 1996-09-19 | Bell Atlantic Network Services, Inc. | Simulcasting digital video programs for broadcast and interactive services |
US5651010A (en) | 1995-03-16 | 1997-07-22 | Bell Atlantic Network Services, Inc. | Simultaneous overlapping broadcasting of digital programs |
US5666365A (en) * | 1995-03-16 | 1997-09-09 | Bell Atlantic Network Services, Inc. | Simulcast transmission of digital programs to shared antenna receiving systems |
US5887140A (en) * | 1995-03-27 | 1999-03-23 | Kabushiki Kaisha Toshiba | Computer network system and personal identification system adapted for use in the same |
US5812928A (en) | 1995-04-12 | 1998-09-22 | Watson Technologies | Cable television control apparatus and method with channel access controller at node of network including channel filtering system |
US5654748A (en) * | 1995-05-05 | 1997-08-05 | Microsoft Corporation | Interactive program identification system |
JPH0944432A (en) | 1995-05-24 | 1997-02-14 | Fuji Xerox Co Ltd | Information processing method and information processor |
US5940738A (en) | 1995-05-26 | 1999-08-17 | Hyundai Electronics America, Inc. | Video pedestal network |
US5793410A (en) | 1995-05-26 | 1998-08-11 | Hyundai Electronics America | Video pedestal network |
US5675510A (en) * | 1995-06-07 | 1997-10-07 | Pc Meter L.P. | Computer use meter and analyzer |
US5740549A (en) | 1995-06-12 | 1998-04-14 | Pointcast, Inc. | Information and advertising distribution system and method |
US5751707A (en) | 1995-06-19 | 1998-05-12 | Bell Atlantic Network Services, Inc. | AIN interaction through wireless digital video network |
US5768382A (en) | 1995-11-22 | 1998-06-16 | Walker Asset Management Limited Partnership | Remote-auditing of computer generated outcomes and authenticated biling and access control system using cryptographic and other protocols |
US5892917A (en) | 1995-09-27 | 1999-04-06 | Microsoft Corporation | System for log record and log expansion with inserted log records representing object request for specified object corresponding to cached object copies |
US6222542B1 (en) * | 1995-10-10 | 2001-04-24 | Anysoft, Ltd | Apparatus for and method of acquiring, processing and routing data contained in a GUI window |
ES2153987T3 (en) | 1995-10-16 | 2001-03-16 | British Telecomm | SYSTEM AND PROCEDURE TO ACCESS DISTANCE TO A FEW DATA AND VISUALIZE THEM. |
US6199206B1 (en) * | 1995-10-24 | 2001-03-06 | Sony Corporation | Television transmitter, television transmitting method, television receiver and television receiving method |
US5778182A (en) * | 1995-11-07 | 1998-07-07 | At&T Corp. | Usage management system |
US5724103A (en) | 1995-11-13 | 1998-03-03 | Intel Corporation | CD ROM information references delivered to a personal computer using the vertical blanking intervals associated data technology from a nabts compliant television broadcast program |
US5872588A (en) * | 1995-12-06 | 1999-02-16 | International Business Machines Corporation | Method and apparatus for monitoring audio-visual materials presented to a subscriber |
JP3843145B2 (en) * | 1995-12-25 | 2006-11-08 | 株式会社ルネサステクノロジ | Synchronous semiconductor memory device |
US5833468A (en) | 1996-01-24 | 1998-11-10 | Frederick R. Guy | Remote learning system using a television signal and a network connection |
US5761606A (en) | 1996-02-08 | 1998-06-02 | Wolzien; Thomas R. | Media online services access via address embedded in video or audio program |
US20020049832A1 (en) * | 1996-03-08 | 2002-04-25 | Craig Ullman | Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments |
US5774664A (en) | 1996-03-08 | 1998-06-30 | Actv, Inc. | Enhanced video programming system and method for incorporating and displaying retrieved integrated internet information segments |
US5878384A (en) * | 1996-03-29 | 1999-03-02 | At&T Corp | System and method for monitoring information flow and performing data collection |
US5964839A (en) | 1996-03-29 | 1999-10-12 | At&T Corp | System and method for monitoring information flow and performing data collection |
US5905713A (en) * | 1996-04-15 | 1999-05-18 | Hughes Electronics Corporation | Method and apparatus for analyzing digital multi-program transmission packet streams |
US5848396A (en) | 1996-04-26 | 1998-12-08 | Freedom Of Information, Inc. | Method and apparatus for determining behavioral profile of a computer user |
US5999912A (en) | 1996-05-01 | 1999-12-07 | Wodarz; Dennis | Dynamic advertising scheduling, display, and tracking |
US6018619A (en) * | 1996-05-24 | 2000-01-25 | Microsoft Corporation | Method, system and apparatus for client-side usage tracking of information server systems |
US5787253A (en) | 1996-05-28 | 1998-07-28 | The Ag Group | Apparatus and method of analyzing internet activity |
US6854198B2 (en) * | 1996-05-29 | 2005-02-15 | Jeffrey S. Brooks, Inc. | Footwear |
US5727129A (en) | 1996-06-04 | 1998-03-10 | International Business Machines Corporation | Network system for profiling and actively facilitating user activities |
US5945988A (en) | 1996-06-06 | 1999-08-31 | Intel Corporation | Method and apparatus for automatically determining and dynamically updating user preferences in an entertainment system |
US5991807A (en) | 1996-06-24 | 1999-11-23 | Nortel Networks Corporation | System for controlling users access to a distributive network in accordance with constraints present in common access distributive network interface separate from a server |
US5857190A (en) * | 1996-06-27 | 1999-01-05 | Microsoft Corporation | Event logging system and method for logging events in a network system |
US5796633A (en) | 1996-07-12 | 1998-08-18 | Electronic Data Systems Corporation | Method and system for performance monitoring in computer networks |
US6108637A (en) * | 1996-09-03 | 2000-08-22 | Nielsen Media Research, Inc. | Content display monitor |
US6006332A (en) | 1996-10-21 | 1999-12-21 | Case Western Reserve University | Rights management system for digital media |
US6115742A (en) | 1996-12-11 | 2000-09-05 | At&T Corporation | Method and apparatus for secure and auditable metering over a communications network |
US7607147B1 (en) | 1996-12-11 | 2009-10-20 | The Nielsen Company (Us), Llc | Interactive service device metering systems |
WO1998026608A1 (en) * | 1996-12-13 | 1998-06-18 | Access Co., Ltd. | Method and device for obtaining audience data on tv program |
US5987611A (en) | 1996-12-31 | 1999-11-16 | Zone Labs, Inc. | System and methodology for managing internet access on a per application basis for client computers connected to the internet |
US5732218A (en) | 1997-01-02 | 1998-03-24 | Lucent Technologies Inc. | Management-data-gathering system for gathering on clients and servers data regarding interactions between the servers, the clients, and users of the clients during real use of a network of clients and servers |
KR20000070005A (en) | 1997-01-09 | 2000-11-25 | 코페이 스티븐 | Monitoring of remote file access on a public computer network |
US5819156A (en) | 1997-01-14 | 1998-10-06 | Compaq Computer Corp. | PC/TV usage tracking and reporting device |
US5978842A (en) | 1997-01-14 | 1999-11-02 | Netmind Technologies, Inc. | Distributed-client change-detection tool with change-detection augmented by multiple clients |
US20020133412A1 (en) * | 1997-03-07 | 2002-09-19 | David M. Oliver | System for management of transactions on networks |
US5796952A (en) | 1997-03-21 | 1998-08-18 | Dot Com Development, Inc. | Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database |
US5974549A (en) | 1997-03-27 | 1999-10-26 | Soliton Ltd. | Security monitor |
US5944780A (en) * | 1997-05-05 | 1999-08-31 | At&T Corp | Network with shared caching |
US6353929B1 (en) * | 1997-06-23 | 2002-03-05 | One River Worldtrek, Inc. | Cooperative system for measuring electronic media |
US5937392A (en) | 1997-07-28 | 1999-08-10 | Switchboard Incorporated | Banner advertising display system and method with frequency of advertisement control |
US5951642A (en) | 1997-08-06 | 1999-09-14 | Hypertak, Inc. | System for collecting detailed internet information on the basis of the condition of activities of information viewers viewing information of service providers |
KR100260417B1 (en) * | 1997-08-28 | 2000-07-01 | 윤종용 | Method and system for surveying program pating using internet television |
US20020002488A1 (en) * | 1997-09-11 | 2002-01-03 | Muyres Matthew R. | Locally driven advertising system |
US20010056405A1 (en) | 1997-09-11 | 2001-12-27 | Muyres Matthew R. | Behavior tracking and user profiling system |
US6061719A (en) * | 1997-11-06 | 2000-05-09 | Lucent Technologies Inc. | Synchronized presentation of television programming and web content |
US6006217A (en) | 1997-11-07 | 1999-12-21 | International Business Machines Corporation | Technique for providing enhanced relevance information for documents retrieved in a multi database search |
US6286140B1 (en) * | 1997-11-20 | 2001-09-04 | Thomas P. Ivanyi | System and method for measuring and storing information pertaining to television viewer or user behavior |
US20040031045A1 (en) * | 1997-11-20 | 2004-02-12 | Ivanyi Thomas P. | System and method for measuring and storing information pertaining to television viewer or user behavior |
US6477707B1 (en) | 1998-03-24 | 2002-11-05 | Fantastic Corporation | Method and system for broadcast transmission of media objects |
IL124787A0 (en) | 1998-06-07 | 1999-01-26 | Itamar Medical C M 1997 Ltd | Pressure applicator devices particularly useful for non-invasive detection of medical conditions |
US6202210B1 (en) | 1998-08-21 | 2001-03-13 | Sony Corporation Of Japan | Method and system for collecting data over a 1394 network to support analysis of consumer behavior, marketing and customer support |
US6510462B2 (en) * | 1998-09-01 | 2003-01-21 | Nielsen Media Research, Inc. | Collection of images in Web use reporting system |
US6567978B1 (en) * | 1998-10-09 | 2003-05-20 | Adcom Information Services, Inc. | Television audience monitoring system and method employing display of cable converter box |
US20020059576A1 (en) * | 1998-12-08 | 2002-05-16 | Feininger William A. | Metering viewing of video displayed in windows |
US11109114B2 (en) * | 2001-04-18 | 2021-08-31 | Grass Valley Canada | Advertisement management method, system, and computer program product |
US6760916B2 (en) | 2000-01-14 | 2004-07-06 | Parkervision, Inc. | Method, system and computer program product for producing and distributing enhanced media downstreams |
US6970924B1 (en) | 1999-02-23 | 2005-11-29 | Visual Networks, Inc. | Methods and apparatus for monitoring end-user experience in a distributed network |
US8943527B2 (en) | 1999-03-30 | 2015-01-27 | Tivo Inc. | Audience measurement system |
US6550060B1 (en) * | 1999-04-08 | 2003-04-15 | Novadigm, Inc. | Method and system for dynamic injection of dynamic link libraries into a windowed operating system |
US6604239B1 (en) * | 1999-06-25 | 2003-08-05 | Eyescene Inc. | System and method for virtual television program rating |
US6704929B1 (en) * | 1999-08-18 | 2004-03-09 | Webtv Networks, Inc. | Tracking viewing behavior of a home entertainment system |
WO2001019088A1 (en) | 1999-09-09 | 2001-03-15 | E-Studiolive, Inc. | Client presentation page content synchronized to a streaming data signal |
US7949722B1 (en) | 1999-09-29 | 2011-05-24 | Actv Inc. | Enhanced video programming system and method utilizing user-profile information |
US7203946B2 (en) * | 1999-10-11 | 2007-04-10 | Hewlett-Packard Development Company, L.P. | System and method for intercepting, instrumenting and characterizing usage of an application programming interface |
IL132916A (en) | 1999-11-14 | 2004-02-08 | Mcafee Inc | Method and system for intercepting an application program interface |
WO2001052173A1 (en) * | 2000-01-13 | 2001-07-19 | Erinmedia, Inc. | Privacy compliant multiple dataset correlation system |
US20010028662A1 (en) | 2000-01-18 | 2001-10-11 | Hunt Paul M. | Method and system of real-time optimization and implementation of content and advertising programming decisions for broadcasts and narrowcasts |
US20010047517A1 (en) | 2000-02-10 | 2001-11-29 | Charilaos Christopoulos | Method and apparatus for intelligent transcoding of multimedia data |
US20020056086A1 (en) | 2000-02-14 | 2002-05-09 | Yuen Henry C. | Methods and apparatus for gathering information regarding media user preferences |
CA2405526A1 (en) | 2000-04-03 | 2001-10-11 | Anthony V. Pugliese, Iii | System and method for displaying and selling goods and services |
US6961765B2 (en) | 2000-04-06 | 2005-11-01 | Bbx Technologies, Inc. | System and method for real time monitoring and control of networked computers |
US20020032904A1 (en) * | 2000-05-24 | 2002-03-14 | Lerner David S. | Interactive system and method for collecting data and generating reports regarding viewer habits |
US20020065826A1 (en) * | 2000-07-19 | 2002-05-30 | Bell Christopher Nathan | Systems and processes for measuring, evaluating and reporting audience response to audio, video, and other content |
US6745011B1 (en) * | 2000-09-01 | 2004-06-01 | Telephia, Inc. | System and method for measuring wireless device and network usage and performance metrics |
US6754470B2 (en) | 2000-09-01 | 2004-06-22 | Telephia, Inc. | System and method for measuring wireless device and network usage and performance metrics |
US20020111934A1 (en) * | 2000-10-17 | 2002-08-15 | Shankar Narayan | Question associated information storage and retrieval architecture using internet gidgets |
US6574594B2 (en) * | 2000-11-03 | 2003-06-03 | International Business Machines Corporation | System for monitoring broadcast audio content |
US20020087969A1 (en) | 2000-12-28 | 2002-07-04 | International Business Machines Corporation | Interactive TV audience estimation and program rating in real-time using multi level tracking methods, systems and program products |
US7197565B2 (en) * | 2001-01-22 | 2007-03-27 | Sun Microsystems, Inc. | System and method of using a pipe advertisement for a peer-to-peer network entity in peer-to-peer presence detection |
US20020101083A1 (en) * | 2001-02-01 | 2002-08-01 | Ilco Unican Inc. | Mortise lock with automatic dead bolt |
JP2002247610A (en) | 2001-02-16 | 2002-08-30 | Mitsubishi Electric Corp | Broadcast system |
WO2002098029A1 (en) | 2001-05-25 | 2002-12-05 | Think Tank & Associates | Interactive system and method for collecting data and generating reports regarding viewer habits |
CA2353303A1 (en) | 2001-07-18 | 2003-01-18 | Pattern Discovery Software Systems Ltd. | Secure web user profiling system and method |
US7181603B2 (en) * | 2002-03-12 | 2007-02-20 | Intel Corporation | Method of secure function loading |
US7206494B2 (en) * | 2002-05-09 | 2007-04-17 | Thomson Licensing | Detection rules for a digital video recorder |
US20040010798A1 (en) * | 2002-07-11 | 2004-01-15 | International Business Machines Corporation | Apparatus and method for logging television viewing patterns for guardian review |
US7353507B2 (en) * | 2002-10-30 | 2008-04-01 | Hewlett-Packard Development, L.P. | Intercepting function cells |
CN100455030C (en) * | 2002-11-14 | 2009-01-21 | 松下电器产业株式会社 | Viewing history recording method and viewing history use method |
US7506355B2 (en) * | 2002-11-22 | 2009-03-17 | Microsoft Corporation | Tracking end-user content viewing and navigation |
WO2005117425A1 (en) | 2004-05-14 | 2005-12-08 | Nielsen Media Research, Inc. | Methods and apparatus to generate on-screen text |
JP4153462B2 (en) | 2004-05-31 | 2008-09-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Display system switching device, display system switching method, display system switching program, and computer-readable storage medium storing the program |
US20060085812A1 (en) * | 2004-10-15 | 2006-04-20 | Shishegar Ahmad R | Method for monitoring television usage |
US20060156397A1 (en) * | 2005-01-13 | 2006-07-13 | Steven Dai | A New Anti-spy method without using scan |
JP5347648B2 (en) | 2009-03-30 | 2013-11-20 | 富士通株式会社 | Program, information processing apparatus, and status output method |
JP5324352B2 (en) | 2009-07-31 | 2013-10-23 | 寺岡ファシリティーズ株式会社 | Windbreak room door opening / closing control method and apparatus |
-
2006
- 2006-09-26 EP EP20167058.5A patent/EP3709539A1/en active Pending
- 2006-09-26 KR KR1020087009707A patent/KR101493891B1/en active IP Right Grant
- 2006-09-26 CA CA2623697A patent/CA2623697C/en active Active
- 2006-09-26 EP EP06815422.8A patent/EP1922654B1/en active Active
- 2006-09-26 WO PCT/US2006/037395 patent/WO2007038470A2/en active Application Filing
- 2006-09-26 KR KR1020137035038A patent/KR101541048B1/en active IP Right Grant
- 2006-09-26 CN CN200680039792.7A patent/CN101501640B/en active Active
- 2006-09-26 AU AU2006294861A patent/AU2006294861C1/en not_active Ceased
-
2008
- 2008-03-26 US US12/055,769 patent/US9209917B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CA2623697C (en) | 2015-09-22 |
AU2006294861C1 (en) | 2013-04-04 |
US9209917B2 (en) | 2015-12-08 |
EP1922654A2 (en) | 2008-05-21 |
KR101493891B1 (en) | 2015-03-09 |
AU2006294861A1 (en) | 2007-04-05 |
CN101501640B (en) | 2017-09-08 |
WO2007038470A2 (en) | 2007-04-05 |
US20080172681A1 (en) | 2008-07-17 |
EP1922654B1 (en) | 2020-05-13 |
KR20140011000A (en) | 2014-01-27 |
EP3709539A1 (en) | 2020-09-16 |
EP1922654A4 (en) | 2011-10-05 |
WO2007038470A3 (en) | 2009-04-16 |
KR101541048B1 (en) | 2015-08-03 |
AU2006294861B2 (en) | 2012-09-06 |
KR20080059587A (en) | 2008-06-30 |
CN101501640A (en) | 2009-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230037853A1 (en) | Methods and apparatus for monitoring the insertion of local media into a program stream | |
US9209917B2 (en) | Methods and apparatus for metering computer-based media presentation | |
EP1667452B1 (en) | Virtual personalized tv channel | |
US8607266B2 (en) | Field of programme delivery | |
AU758092B2 (en) | Advanced television system | |
US20170272689A1 (en) | Receiver and method for reporting the usage of advanced television services | |
US20070186229A1 (en) | Methods and apparatus for identifying viewing information associated with a digital media device | |
KR20050054936A (en) | A method and apparatus for content presentation | |
US10708634B2 (en) | Method for playing repeatable events on a media player | |
US7721306B2 (en) | Bandwidth sharing | |
US8265464B2 (en) | Administering a time-shifting cache in a media playback device | |
KR20200077202A (en) | Display apparatus and the control method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request |