U.S. patent application number 13/840807 was filed with the patent office on 2014-09-18 for methods and apparatus to identify a type of media presented by a media player.
The applicant listed for this patent is Chad A. Hage. Invention is credited to Chad A. Hage.
Application Number | 20140281980 13/840807 |
Document ID | / |
Family ID | 51534355 |
Filed Date | 2014-09-18 |
United States Patent
Application |
20140281980 |
Kind Code |
A1 |
Hage; Chad A. |
September 18, 2014 |
Methods and Apparatus to Identify a Type of Media Presented by a
Media Player
Abstract
Methods, apparatus, systems and articles of manufacture are
disclosed to identify a type of media presented by a media player
application. An example method includes determining if a media
application control is selectable when media is presented by the
media player application; and determining whether the media
presented includes a specified type of media in response to
determining if the media application control is selectable.
Inventors: |
Hage; Chad A.; (Clearwater,
FL) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Hage; Chad A. |
Clearwater |
FL |
US |
|
|
Family ID: |
51534355 |
Appl. No.: |
13/840807 |
Filed: |
March 15, 2013 |
Current U.S.
Class: |
715/716 |
Current CPC
Class: |
G06Q 30/0241
20130101 |
Class at
Publication: |
715/716 |
International
Class: |
G06F 3/0484 20060101
G06F003/0484 |
Claims
1. A method comprising: determining if a media application control
is selectable when media is presented by the media player
application; and determining whether the media presented includes a
specified type of media in response to determining if the media
application control is selectable.
2. A method according to claim 1, wherein determining if the media
application control is selectable comprises: processing an image of
the media player application; identifying a control indicator
corresponding to the media application control in the processed
image; and determining whether the ability to adjust the setting
exists in response to identifying the control indicator.
3. A method according to claim 2, wherein determining whether the
media application control is selectable further comprises:
monitoring a stream of data received by the media player
application; identifying control data in the stream of data in
response to identifying the control indicator; and determining
whether the ability to adjust the setting exists in response to the
identified control data.
4. A method according to claim 1, wherein determining whether the
state of the control is enabled or disabled comprises: monitoring a
stream of data received by the media player application;
identifying control data in the stream of data corresponding to the
control; and determining whether the ability to adjust the setting
exists in response to the identified control data.
5. A method according to claim 1, further comprising storing data
representative of the media if the media includes the specified
type of content.
6. A method according to claim 1, further comprising identifying an
indicator of the media application control in at least one of an
application or a web page.
7. A method according to claim 1, wherein the media application
control is at least one of a closed captioning control, a fast
forward control, or a pause control.
8. A method according to claim 1, further comprising, when the
media application control is not selectable, determining that the
specified type of media is at least one of an advertisement or
media that includes an advertisement.
9. A method according to claim 1, further comprising, when the
media application is selectable, determining that the specified
type of media is not at least one of an advertisement or media that
includes an advertisement.
10. An apparatus comprising: a control state analyzer to determine
if a control of media player application is selectable the media
player is presenting media; and a media type analyzer to determine
that the media is a specified type of media in response to
determining that the control is not selectable.
11. An apparatus according to claim 10, further comprising a
control data analyzer to monitor a stream of data received by the
media player, identify control data in the stream of data
corresponding to the control, and determine whether the control is
enabled or disabled in response to the identified control data.
12. An apparatus according to claim 10, further comprising an image
analyzer to process an image of the media player application,
identify a control indicator corresponding to the control in the
processed image, and determine whether the control is selectable in
response to identifying the control indicator.
13. An apparatus according to claim 10, wherein the media type
analyzer is to determine that the media is a second type of media
in response to determining that the control is selectable.
14. An apparatus according to claim 13, wherein the second type of
media is content.
15. An apparatus according to claim 10, wherein the type of media
is an advertisement.
16. A tangible machine readable storage medium comprising
instructions that, when executed, cause a machine to at least:
identify media presented in a media player application; determine
whether a control of the media player can be at least one of
selected, activated, or adjusted; determine a type of the media in
response to determining whether the control can be at least one of
selected, activated, or adjusted.
17. A storage medium according to claim 16, wherein the
instructions when executed, cause the machine to process an image
of the media player application; identify a control indicator
corresponding to the control in the processed image, and, in
response to identifying the control indicator, determine whether
the control can be at least one of selected, activated, or
adjusted.
18. A storage medium according to claim 16, wherein the
instructions when executed, cause the machine to monitor a stream
received by the media player, identify control data in the stream
of data corresponding to the control; and, in response to the
identified control data, determine whether the control can be at
least one of selected, activated, or adjusted.
19. A storage medium according to claim 16, wherein the
instructions, when executed, cause the machine to determine the
type of media is at least one of an advertisement or media
including an advertisement when the control cannot be at least one
of selected, activated, or adjusted.
20. A storage medium according to claim 16, wherein the
instructions, when executed, cause the machine to determine the
type of media is content when the control can be at least one of
selected, activated, or adjusted.
Description
FIELD OF THE DISCLOSURE
[0001] This disclosure relates generally to metering
advertisements, and, more particularly, to metering advertisements
streamed in a media player.
BACKGROUND
[0002] Media players on electronic devices (e.g., smartphones,
tablet computers, computers, etc.) enable access to a wide range of
media. The media can be streamed from the Internet via a browser or
an application dedicated for streaming media or playing media.
[0003] Many media streaming websites or applications stream
advertisements along with content selected for presentation by a
viewer or machine (e.g., web crawler). For example, if a viewer
chooses to view a video on YouTube.TM., an advertisement may be
streamed in a media player application 154 of YouTube.TM. before
the chosen video is presented.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] FIG. 1 is a block diagram of an example data system with a
media device including a media type identifier constructed in
accordance with the teachings of this disclosure.
[0005] FIG. 2 is an illustration of an example media player
application 154 display presented by the media device of FIG.
1.
[0006] FIG. 3 is a block diagram of an example implementation of
the media type identifier of FIG. 1.
[0007] FIG. 4 is a flowchart representation of example machine
readable instructions that may be executed to implement the example
media type identifier of FIG. 3.
[0008] FIG. 5 is a flowchart representation of example machine
readable instructions that may be executed to implement an example
control state analyzer of FIG. 3.
[0009] FIG. 6 is a flow chart representation of example machine
readable instructions that may be executed to implement a media
type analyzer of FIG. 3.
[0010] FIG. 7 is a block diagram of an example processing system
capable of executing the example machine readable instructions of
FIGS. 4, 5, 6, and/or 7 to implement the example media type
identifier of FIG. 3.
DETAILED DESCRIPTION
[0011] Example methods and apparatus disclosed herein determine a
type of media presented in a media player (or media player
application 154) based on an ability to manipulate (e.g., select,
activate, deactivate, adjust, etc.) a control of the media player.
An example method includes determining if a media application
control is selectable when media is presented by the media player
application 154; and determining whether the media presented
includes a specified type of media in response to determining if
the media application control is selectable.
[0012] An example apparatus includes a control state analyzer to
determine if a control of media player is selectable when the media
player is presenting media, and a media type analyzer to determine
that the media is a specified type of media in response to
determining that the control is selectable or not selectable.
[0013] In some examples an image analyzer is used to process an
image of a media player application 154 to identify if a control is
selectable based on the appearance of a corresponding control
indicator. In some examples, control data monitor is used to
monitor a stream of data to the media player that includes control
data indicating whether a control is enabled or disabled.
[0014] Example methods and apparatus disclosed herein may identify
whether an advertisement or media including an advertisement is
presented by a media player or media player application 154.
Considering the ever increasing amount of media that is accessible
to potential audience members via the Internet, "on-demand"
applications, or other similar technologies, there is a great
opportunity for advertising. Accordingly, many, but not all media
that can be downloaded, streamed, or viewed includes an
advertisement. Determination of the presence of an advertisement in
downloaded or streamed media may be beneficial to entities, such as
audience measurement entities (e.g., The Nielsen Company). Knowing
which pieces of media include an advertisement and which pieces of
media do not include an advertisement may enable such entities to
process (e.g., determine an advertisement source or creator) fewer
videos by only processing the videos determined to include an
advertisement.
[0015] FIG. 1 is a block diagram of an example data system 100 for
an example media device 102 including an example media type
identifier 110 constructed in accordance with the teachings of this
disclosure. The example media device 102 may be a smartphone, a
television, an MP3 player (e.g., an iPod.TM.), a tablet computer, a
computer, a web crawler (such as the web crawler of U.S.
Publication No. 2009/0259926, herein incorporated by reference),
etc. The example data system 100 includes the media device 102, an
example network 120 (e.g., a local area network (LAN), a wide area
network (WAN), the Internet, etc.), and an example data collection
facility 130. The example media device 102 may communicate with the
data collection facility 130 directly and/or via the network
120.
[0016] The example media device 102 includes an example network
interface 104, an example data storage device 106, an example
device controller 108, an example media type identifier 110, an
example data input/output 112, an example audio/video output 114
(e.g., a display (e.g., a speaker, a liquid crystal display (LCD),
a light-emitting diode (LED) display, etc.), an example user
interface 116, and an example media presenter 150. An example
communication bus 160 facilitates communication between the network
interface 104, the data storage device 106, the device controller
108, the data input/output 112, the audio/video output 114, the
user interface 116, and/or the media presenter 150. The example
media presenter 150 includes an example media controller 152 and an
example media player application 154. In the illustrated example of
FIG. 1, the media device 102 receives media from the network 120
(e.g., media streamed and/or downloaded from the Internet) via the
network interface 104. In some examples, the media device 102
receives media via the data input/output 112 from another device
(e.g., a flash drive, a mobile device, a digital camera or digital
video recorder, or other device capable of transferring media to
the media device 102). The data input/output 112 may facilitate
wired (e.g., universal serial bus (USB), serial, etc.)
communication or wireless (e.g., Bluetooth, Wi-Fi, infrared (IR),
etc.) communication. In some examples, the received media is stored
(or buffered) in the data storage device 106. The example device
controller 108 controls the media device 102 (e.g., in response to
input via the user interface 116) and monitors and/or controls
communication between the media device 102 and/or other devices or
the network 120. The example audio/video output 114 enables a user
to view and/or hear media via the media device 102 and may include
a display, speakers, etc. The user interface 116 enables a user to
control the media device 102 and may be one or more of a
touchscreen, mouse, keyboard, etc.
[0017] In the illustrated example of FIG. 1, a user may browse the
network 130 for media to be played via the media presenter 150.
Media data is downloaded and/or streamed from the network and
forwarded to the media controller 152. The media controller 152
decodes and converts the media to media player data, which is
forwarded to the media player application 154. The media player
application 154 generates the images of the media, and the media
presenter presents the media for display via the audio/video output
114.
[0018] The example media type identifier 110 identifies a type of
media presented by the media presenter 150. The example media
presenter 150 of FIG. 1 may be one or more of a web browser (e.g.,
Internet Explorer.TM., Google.TM. Chrome.TM., Mozilla Firefox.TM.,
Safari.TM., etc.) or a media application (e.g., a Hulu.TM.
application, a Netflix.TM. application, a YouTube.TM. application,
etc.). In some examples, at least one of the media presenter 150,
media controller 152, and/or media player application 154 may be a
single device or element and/or combined to form a single device or
element.
[0019] For example, the media type may be an advertisement or
content. As described herein, content is one or more of programming
(e.g., a television program, radio program, web video, etc.), media
for streaming (e.g., a YouTube.TM. video, etc.), etc. that a user
(or a robot) expects to be presented by the media presenter 150
following a selection by the user (e.g., via a user interface) or a
selection by a robot (e.g., via a web crawler). The media presenter
150 receives media data from the communication bus 101 and the
media controller 152 instructs the media player application 154 to
present the media according to the media data and control signals
received from the media player application 154. In some examples,
the media data corresponds to a media presentation that includes
multiple types of media. For example, the media data received from
a streamed video over the Internet may include both the content and
an advertisement.
[0020] In the example of FIG. 1, the media controller 152 retrieves
and/or receives media data to be converted and displayed by the
media player application 154. For example, the media controller 152
may retrieve and/or receive media data from the network interface
104 and/or the data storage device 106 based on instructions from
the device controller 108 to present the corresponding media via
the audio/video output 114 (e.g., in response to a user request, or
a "selection" by a web crawler). In some examples, the media
controller 152 provides the media player data to the media player
application 154 for presentation in response to a user request
received via the user interface 116.
[0021] In some examples of FIG. 1 in which the media device 102 is
a web crawler, the device controller 108 may automatically download
and/or stream media and control playback of the media by providing
instructions to the media controller 152 and/or manipulating the
controls of the media player application 154. In some such
examples, the web crawler is acting as if a user is controlling the
media player application 154 to identify how the media player
reacts to certain controls being selected. For example, the device
controller 108 may "act" like a user by sending a signal that a
control of the media player was "selected" (e.g., as if a user
selected the control via the user interface 116 in an attempt to
activate the control). In such examples, the media device 102,
including the media type identifier 110, can monitor the reaction
of the media player application 154 (e.g., whether or not the
control is activated). In some such examples, the reaction of the
media player application 154 may be used to determine a control is
selectable.
[0022] The example media player data may include, but is not
limited to, media presentation data, media player control data
(e.g., data indicating whether controls of the media player
application 154 are to be selectable, enabled or disabled, etc.
while presenting the media such that the control cannot be
activated (e.g., turned on), cannot be selected (e.g., turned off),
and/or cannot be adjusted), a uniform resource locator (URL)
associated with the media, media source data (e.g., source of
origination such as YouTube.RTM., Hulu.RTM., a media application,
etc.), etc. The example media type identifier 110 receives the
media player data and image data generated by the media player
application 154 to be displayed on the audio/video output 114. The
media type identifier 110 determines the type of media based on the
media data and image data (e.g., whether it is an advertisement or
content).
[0023] As described herein, the media identifier 110 determines a
state of one or more controls (e.g., whether the control(s) is/are
selectable or not, able to be activated/deactivated, manipulated,
etc.) of the media player application 154. Based on the state of
the controls, the identifier 110 determines the type of media
presented by the media player application 154. In some examples,
the media type identifier 110 extracts control data from the media
player data to identify whether a control is enabled or
disabled.
[0024] FIG. 2 is an example media player application 154 display
200, which may be generated and/or controlled by the media
presenter 150, the media controller 152, and/or media player
application 154 of FIG. 1, presenting example media 202. The media
player application 154 display 200 may be presented via the media
device 102 of FIG. 1. The example media player application 154
presents the display 200 to show a media area 204, which displays
the media 202 (e.g., advertisements, content, etc.) therein. The
media player application 154 display 200 further includes a play
button 206 and a play/pause button 208. The play button 206 is
displayed at the start of playing of the media 202 (i.e., before
playing begins) and disappears when the media 202 is playing. The
play/pause button 208 displays a play symbol when the media 202 is
not playing (e.g., when the media 202 is paused or stopped) and a
pause symbol (not shown) when the media 202 is playing or
buffering. The example media player application 154 display 200
also includes a progress bar 210, which displays to a user the
current location (e.g., time, frame, etc.) of the media 202 with
respect to the beginning (the far left side of the progress bar
210) and end (the far right side of the progress bar 210) of the
media 202 using a progress bar indicator 212.
[0025] In this example, a countdown timer 214 is also included,
which displays the remaining time play of the media 202 when played
at a predetermined speed. However, a count up timer may also be
used independently or in conjunction with a play time indicator
(e.g., the countdown timer 214) to display the play time of the
media 202 relative to the beginning and/or the end of the media
202. In some examples, the progress bar 110, the progress bar
indicator 112, and/or the countdown timer 214 identify timing of
content of the media 202. In the illustrated example, the media
player application 154 display 200 includes a volume control 216 to
control the output level of any audio content that may be part of
the media 202. Furthermore, the example media player application
154 display 200 includes a closed captioning control 218 to control
activation or deactivation of closed captioning in any content that
may be part of the media 202.
[0026] In some examples disclosed herein, one or more of the media
player controls 206-218 may be enabled or disabled based on a type
of the media 202. When the controls are enabled, a user can control
the corresponding control 206-218 (e.g., control the volume output,
activate/deactivate closed captioning, etc.). When the controls
206-218 are disabled, the user cannot control the corresponding
control 206-218 (e.g., cannot adjust volume, cannot activate fast
forward, cannot activate closed captioning, etc.). In some
examples, when the media 202 is an advertisement, one or more of
the controls 206-218 may be disabled. For example, a user may not
be able to activate or deactivate closed captioning using the
closed captioning control 218 when the media 202 is an
advertisement. In some examples, when one or more of the controls
206-218 are disabled, they appear "grayed out" (not shown) on the
media player application 154 display 200.
[0027] In some examples, where the device 102 is implemented by a
web crawler, the web crawler accesses web pages including one or
more media player application 154 display(s) 200. The example web
crawler may then process one or more image(s) of the web pages to
identify media player application 154 display(s) 200. The example
web crawler may then process images of the identified media player
application 154 display(s) 200 to control and/or manipulate the
media player to begin playback. In some examples, the web crawler
may attempt to select or manipulate (e.g., activate/deactivate) the
controls 206-218 by "clicking" (or performing an operation to
imitate "clicking") the corresponding buttons of the controls
206-218. A media identifier 110 included in the example web crawler
identifies the type of media (e.g., content, an advertisement,
etc.) based on whether controls are enabled or disabled. The media
identifier may make such a determination by at least one or an
appearance of the controls 206-218 (e.g., whether "grayed out" or
not) and/or control data in the media player data.
[0028] FIG. 3 is a block diagram of an example implementation of
the media type identifier 110 of FIG. 1. The example media type
identifier 110 of FIG. 3 includes a media data monitor 302, a media
presentation monitor 304, a control state analyzer 310, and a media
type analyzer 330. The example control state analyzer 310 includes
an example analyzer controller 312, an example buffer analyzer 314,
an example image analyzer 316, an example control data analyzer
318, and an example control state identifier 320.
[0029] The example media data monitor 302 monitors the media player
data transmitted between the media controller 152 and the media
player application 154. In some examples, the media data monitor
302 extracts control data from the media player data indicating a
state (e.g., enabled or disabled, selectable, etc.) of one or more
media player controls (e.g., fast forward, closed captioning, etc.)
of the media player application 154. In some examples, the media
data monitor 302 sends query messages (e.g., by attempting to
select, activate, or enable a control of the media player
application 154) to determine and/or retrieve control data from the
media controller 152 and/or the media player application 154 (e.g.,
if control data is not sent to the media player after attempting to
enable the control, it can be inferred that the control is
disabled).
[0030] The example media presentation monitor 304 of FIG. 3
monitors the media presented by the media player application 154 by
retrieving and/or receiving image data generated by the media
player application 154. The example media presentation monitor 304
determines whether the media player application 154 has been loaded
and/or whether media (including advertisements and/or content) is
being presented by the media player application 154. In some
examples, the media presentation monitor 304 determines whether
media is paused, is loading, or is buffering. In some examples, the
media presentation monitor 304 identifies the state of the media
player application 154 based on the images generated by the media
player application 154. The media data monitor 302 and the media
presentation monitor 304 provide the retrieved/received information
from monitoring the media player data and the image data to the
control state analyzer 310.
[0031] The example control state analyzer 310 uses the received
information to determine the state (e.g., whether enabled or
disabled, whether selectable, etc.) of a control of the media
player application 154. The example analyzer controller 312
forwards image data received from the media presentation monitor
304 and forwards it to the image analyzer 316. Additionally or
alternatively, the example analyzer controller 312 forwards control
data (e.g., data indicating a status of a control of the media
player application 154) from the media player data received from
the media data monitor 302 and forwards it to the control data
analyzer 318. In some examples, the analyzer controller 312 only
provides the monitored data when the buffer analyzer 314 detects
that media player application 154 is not buffering. For example,
the buffer analyzer 314 may perform an image analysis of the media
player application 154 to determine whether the media player
application 154 is buffering. The example buffer analyzer 314 may
prevent the control state analyzer 310 from falsely identifying a
state of a control due to buffering media. For example, some
example media player application 154 controls may be disabled
(i.e., may not be selectable, activated, deactivated, etc.) while
the media player application 154 is buffering.
[0032] The example image analyzer 316 uses image processing
techniques to analyze the images of the media player application
154 (e.g., the media player application 154 display 200 of FIG. 2).
While identifying the media player, the example image analyzer 316
identifies media player application 154 controls (e.g., fast
forward, closed captioning, etc.) that a user (or a robot) may
select or manipulate to control playing of the media. In some
examples, the image analyzer 316 provides information corresponding
to the identified controls to the control data analyzer 318. For
example, the image analyzer 316 may indicate to the control data
analyzer 318 that a closed captioning control is present on the
media player application 154 display 200 of FIG. 2, and the control
data analyzer 316 may then monitor for control data corresponding
to closed captioning in the media player data. In some examples,
the image analyzer 316 provides image data corresponding to one or
more controls to the control state identifier 320 to determine the
state of the one or more controls.
[0033] The example control data analyzer 318 analyzes control data
embedded within the media player data streamed between the media
controller 152 and the media player application 154. For example,
the control data may be a message indicating whether a control
(e.g., fast forward or closed captioning) is selectable or whether
the control can be activated, deactivated, adjusted, etc. As
another example, the control data may be a bit indicator in the
media player data designated to indicate whether a control is
selectable. In some examples, the control data analyzer 318
analyzes control messages transmitted to/from the media player
application 154 and forwards the communication to the control state
identifier 320. For example, the control data analyzer 318 may
determine that a user attempted to enable an ability to
activate/deactivate closed captioning by identifying a closed
captioning request message being sent to the media controller 152
to enable closed captioning on the media player application 154,
but not identifying control data in the media player data that
enables the closed captioning. In this example, the control state
identifier 320 may infer that closed captioning is disabled.
[0034] The example control state identifier 320 identifies the
state (e.g., enabled or disabled) of a control based on the data
provided by the image analyzer 316 and/or the control data analyzer
318. For example, if data from the image analyzer 316 indicates
that a control button corresponding to a control is "grayed out"
(i.e., the button appears gray to a user indicating that it cannot
be selected) the control state identifier 320 determines that the
control is disabled. In some examples, the control data analyzer
318 provides the value of a bit indicator corresponding to a
control and or control data corresponding to a control and the
control state identifier determines the control state based on the
control data value. For example, a value of 0 for a control bit
indicator indicates that the control is disabled, and a value of 1
indicates that the control is enabled. In some examples, the
control state identifier 320 may receive control message data. For
example, the control state identifier may receive control messages
or requests transmitted between the media controller 152 and the
media player application 154 indicating whether the control is to
be enabled or disabled for corresponding media (e.g., disable for
advertisement and enable for content).
[0035] The example control state analyzer 310 provides data
indicating the control state to the media type analyzer 330. For
example, the control state identifier 320 provides data indicating
whether a corresponding control is selectable. Based on the
received state of the control, the example media type analyzer 330
determines the type of media being presented by the media player
application 154 and/or a type of media included in the media being
presented by the media player application 154. For example, if the
control state identifier 320 indicates that the control is
disabled, the media type analyzer 330 may determine that the media
is an advertisement. Alternatively, in the above example, if the
control state identifier 320 indicates that the control is enabled,
the media type analyzer 330 may determine that the media is the
content. In some examples, the media type analyzer 330 forwards
data corresponding to the identified media type to the data output
112 of FIG. 1 for processing. In some such examples, a record may
be stored in the data storage device 106 and/or at the data
collection facility 130 indicating which videos are an identified
type of media. For example, such a record may indicate which videos
streamed from a website or via an application include an
advertisement and which videos do not include an advertisement.
[0036] While an example manner of implementing the media type
identifier 110 of FIG. 1 is illustrated in FIG. 3, one or more of
the elements, processes and/or devices illustrated in FIG. 3 may be
combined, divided, re-arranged, omitted, eliminated and/or
implemented in any other way. Further, the example media data
monitor 302, the example media presentation monitor 304, the
example control state analyzer 310, the example analyzer controller
312, the example buffer analyzer 314, the example image analyzer
316, the example control data analyzer 318, the example control
state identifier 320, the example media type analyzer 330 and/or,
more generally, the example media type identifier 110 of FIG. 3 may
be implemented by hardware, software, firmware and/or any
combination of hardware, software and/or firmware. Thus, for
example, any of the example media data monitor 302, the example
media presentation monitor 304, the example control state analyzer
310, the example analyzer controller 312, the example buffer
analyzer 314, the example image analyzer 316, the example control
data analyzer 318, the example control state identifier 320, the
example media type analyzer 330 and/or, more generally, the example
media type identifier 110 could be implemented by one or more
analog or digital circuit(s), logic circuits, programmable
processor(s), application specific integrated circuit(s) (ASIC(s)),
programmable logic device(s) (PLD(s)) and/or field programmable
logic device(s) (FPLD(s)). When reading any of the apparatus or
system claims of this patent to cover a purely software and/or
firmware implementation, at least one of the example, media data
monitor 302, the example media presentation monitor 304, the
example control state analyzer 310, the example analyzer controller
312, the example buffer analyzer 314, the example image analyzer
316, the example control data analyzer 318, the example control
state identifier 320, and/or the example media type analyzer 330
is/are hereby expressly defined to include a tangible computer
readable storage device or storage disk such as a memory, a digital
versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc.
storing the software and/or firmware. Further still, the example
media type identifier 110 of FIG. 3 may include one or more
elements, processes and/or devices in addition to, or instead of,
those illustrated in FIG. 3, and/or may include more than one of
any or all of the illustrated elements, processes and devices.
[0037] Flowcharts representative of example machine readable
instructions for implementing the media type identifier 110 of FIG.
3 are shown in FIGS. 4, 5, and/or 6. In this example, the machine
readable instructions comprise one or more programs for execution
by a processor such as the processor 712 shown in the example
processor platform 700 discussed below in connection with FIG. 7.
The one or more programs may be embodied in software stored on a
tangible computer readable storage medium such as a CD-ROM, a
floppy disk, a hard drive, a digital versatile disk (DVD), a
Blu-ray disk, or a memory associated with the processor 712, but
the programs, in whole and/or in part thereof, could alternatively
be executed by a device other than the processor 712 and/or
embodied in firmware or dedicated hardware. Further, although the
one or more example programs is/are described with reference to the
flowcharts illustrated in FIGS. 4, 5, and/or 6, many other methods
of implementing the example media type identifier 110 may
alternatively be used. For example, the order of execution of the
blocks may be changed, and/or some of the blocks described may be
changed, eliminated, or combined.
[0038] As mentioned above, the example processes of FIGS. 4, 5,
and/or 6 may be implemented using coded instructions (e.g.,
computer and/or machine readable instructions) stored on a tangible
computer readable storage medium such as a hard disk drive, a flash
memory, a read-only memory (ROM), a compact disk (CD), a digital
versatile disk (DVD), a cache, a random-access memory (RAM) and/or
any other storage device or storage disk in which information is
stored for any duration (e.g., for extended time periods,
permanently, for brief instances, for temporarily buffering, and/or
for caching of the information). As used herein, the term tangible
computer readable storage medium is expressly defined to include
any type of computer readable storage device and/or storage disk
and to exclude propagating signals. As used herein, "tangible
computer readable storage medium" and "tangible machine readable
storage medium" are used interchangeably. Additionally or
alternatively, the example processes of FIGS. 4, 5, and/or 6 may be
implemented using coded instructions (e.g., computer and/or machine
readable instructions) stored on a non-transitory computer and/or
machine readable medium such as a hard disk drive, a flash memory,
a read-only memory, a compact disk, a digital versatile disk, a
cache, a random-access memory and/or any other storage device or
storage disk in which information is stored for any duration (e.g.,
for extended time periods, permanently, for brief instances, for
temporarily buffering, and/or for caching of the information). As
used herein, the term non-transitory computer readable medium is
expressly defined to include any type of computer readable device
or disk and to exclude propagating signals. As used herein, when
the phrase "at least" is used as the transition term in a preamble
of a claim, it is open-ended in the same manner as the term
"comprising" is open ended.
[0039] The program 400 of FIG. 4 begins upon initiation of the
media identifier 110 of FIGS. 1 and/or 3. At block 402, the media
presentation monitor 304 of FIG. 3 determines whether media is
being presented (or is playing) on the media player application
154. The example media presentation monitor 302 may determine that
the media is playing on the media player application 154 based on a
state (e.g., a loading state, a paused state, etc.) of the media
player application 154, whether the media player application 154 is
open on the media device 102, etc. If the media presentation
monitor 304 determines that media is not playing on the media
player application 154, control advances to block 408. If the media
presentation monitor 304 determines that media is playing on the
media player application 154, control advances to block 404.
[0040] At block 404, the control state analyzer 310 determines the
state of a control of the media player application 154. In some
examples, the control state analyzer 310 determines whether the
control is enabled or disabled. For example, the control state
analyzer may determine that a closed captioning control of the
media player has been disabled. In some examples, the control state
analyzer 310 determines the state of a control of the media player
using the image analyzer 316. In some such examples, the image
analyzer 316 uses image processing techniques to identify control
indicators (e.g., the indicators identifying media application
controls 206-218 of FIG. 2) and analyze the appearance of the
indicators. Based on the appearance of the control indicators, the
control state identifier 320 can determine the state of the
control, such as whether the control is enabled or disabled.
[0041] In some examples, at block 404, the control state analyzer
310 determines the state of a control of the media player using the
control data analyzer 318 in addition to or as an alternative to
the image analyzer 316. In some such examples, the control data
analyzer 318 identifies control data in stream of data transmitted
between the media controller 152 and the media player application
154. For example, the control data analyzer 318 may identify
messages and/or requests to enable or disable a control (e.g., one
of the controls 206-218). Based on the identified control data,
such as a value of a bit indicator for the corresponding control or
a value of a control message, the control state identifier 320
determines the state of the control, such as whether the control is
enabled or disabled.
[0042] In some examples, the state of the control may be determined
as described in connection with FIG. 5.
[0043] After identifying the state of the control (block 404), at
block 406, the media type analyzer 330 determines a type of media
presented by the media player based on the state of the control. In
some examples, a state of the control corresponds to the type of
media being displayed. The correspondence between the state of the
control and the media type may be predefined and/or programmed into
the media type analyzer 330. The type of media may be determined as
described in more detail in connection with FIG. 7.
[0044] Following identification of the type of media (block 406),
at block 408, the analyzer controller 312 determines whether to
continue monitoring the media player application 154. If the
analyzer controller 312 is to no longer monitor the media player to
identify a type of media presented (e.g., because of a system
failure, system shutdown, etc.), then the program 400 ends. If the
analyzer controller 312 is to continue monitoring the media player,
control returns to block 402.
[0045] FIG. 5 illustrates a program 500, which may be used to
implement the block 404 of FIG. 4 and may be executed to implement
a portion of the example control state analyzer 310 of FIG. 3. The
example program 500 is identifies the state of a control (e.g.,
closed captioning, fast forward, etc.) of the media player
application 154. The program 500 begins when the control state
analyzer 310 is initiated. At block 502, the buffer analyzer 314
determines whether the media player application 154 is buffering
media. In some examples, the buffer analyzer 314 analyzes image
data from the media presentation monitor 304 to determine whether
the media player is buffering. For example, the buffer analyzer 314
may use image processing techniques to identify the word
"buffering" or a buffering indicator in the image of the media
player (e.g., the media player application 154 display 200). The
buffer analyzer 314 may use other appropriate techniques to
determine whether the media player is buffering data. If the media
player is buffering data, control loops at block 502 until the
buffer analyzer 314 determines that the media player is no longer
buffering.
[0046] At block 504 of FIG. 5, the image analyzer 316 analyzes
image data received from the media presentation monitor 304. At
block 506, the image analyzer 316 analyzes the image data to
identify a control indicator (e.g., a control button) in the image
corresponding to a control (e.g., fast forward, closed captioning,
etc.). The image analyzer 316 may use any appropriate image
processing techniques to identify the control indicator.
[0047] Following identification of a control indicator (block 506),
at block 508 the control data analyzer 318 monitors the media
player data for control data corresponding to the identified
control. For example, if the image analyzer 316 identified the
closed captioning control button of FIG. 2, the control data
analyzer 318 would then monitor the media player data for control
data (e.g., messages/requests to activate or deactivate closed
captioning) corresponding to closed captioning control.
[0048] At block 510 of FIG. 5, the example control state identifier
320 determines the state of the control based on the control data.
In some examples, at block 510, the control state identifier 320
determines the state of the control based on control data (e.g., a
bit indicator or request message to enable or disable the control)
embedded in the media player data. In some examples, the control
state identifier 320 determines the state of the control based on
the absence of control data in communication between the media
controller 152 and the media player application 154. For example,
the control data analyzer 318 may determine that a control (e.g.,
the control 206-218) has been selected (e.g., by a user or a robot)
based on a request to the media controller 152 to activate the
control. In the event that a response message to activate the
control is not sent to the media player application 154, the
control state identifier 320 may infer that the control is
disabled.
[0049] FIG. 6 illustrates a program 406, which may be used to
implement the block 406 of FIG. 4 and may be executed to implement
the example media type analyzer 330 of FIG. 3. The program 600
begins upon initiation of the media type analyzer 330 (e.g.,
following receipt of control state information). In the example of
FIG. 6, the program 600 identifies a type of media based on a media
player control state.
[0050] At block 602, the media type analyzer 330 determines whether
the control is enabled or disabled. If the control is disabled, at
block 604 the media type analyzer 604 determines that the media is
an advertisement. If the control is not disabled (i.e., it is
enabled), the media type analyzer 330 determines that the media is
not an advertisement. In some such examples, the media is the
content.
[0051] FIG. 7 is a block diagram of an example processor platform
700 capable of executing the instructions of FIGS. 4, 5, and/or 6
to implement the media identifier 110 of FIG. 3. The processor
platform 700 can be, for example, a server, a personal computer, a
mobile device (e.g., a cell phone, a smart phone, a tablet such as
an iPad.TM.), a personal digital assistant (PDA), an Internet
appliance, a DVD player, a CD player, a digital video recorder, a
Blu-ray player, a gaming console, a personal video recorder, a set
top box, or any other type of computing device. The example
processor platform 700 may be used to implement the media device
102 of FIG. 1.
[0052] The processor platform 700 of the illustrated example
includes a processor 712. The processor 712 of the illustrated
example is hardware. For example, the processor 712 can be
implemented by one or more integrated circuits, logic circuits,
microprocessors or controllers from any desired family or
manufacturer.
[0053] The processor 712 of the illustrated example includes a
local memory 713 (e.g., a cache). The processor 712 of the
illustrated example is in communication with a main memory
including a volatile memory 714 and a non-volatile memory 716 via a
bus 718. The volatile memory 714 may be implemented by Synchronous
Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory
(DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any
other type of random access memory device. The non-volatile memory
716 may be implemented by flash memory and/or any other desired
type of memory device. Access to the main memory 714, 716 is
controlled by a memory controller.
[0054] The processor platform 700 of the illustrated example also
includes an interface circuit 720. The interface circuit 720 may be
implemented by any type of interface standard, such as an Ethernet
interface, a universal serial bus (USB), and/or a PCI express
interface.
[0055] In the illustrated example, one or more input devices 722
are connected to the interface circuit 720. The input device(s) 722
permit(s) a user to enter data and commands into the processor 712.
The input device(s) can be implemented by, for example, an audio
sensor, a microphone, a camera (still or video), a keyboard, a
button, a mouse, a touchscreen, a track-pad, a trackball, isopoint
and/or a voice recognition system. The input device(s) 722 may be
used to implement the user interface 116 of FIG. 1.
[0056] One or more output devices 724 are also connected to the
interface circuit 720 of the illustrated example. The output
devices 724 can be implemented, for example, by display devices
(e.g., a light emitting diode (LED), an organic light emitting
diode (OLED), a liquid crystal display, a cathode ray tube display
(CRT), a touchscreen, a tactile output device, a light emitting
diode (LED), and/or speakers). The output devices 724 may be used
to implement the example audio/video output 114 of FIG. 1. The
interface circuit 720 of the illustrated example, thus, typically
includes a graphics driver card, a graphics driver chip or a
graphics driver processor.
[0057] The interface circuit 720 of the illustrated example also
includes a communication device such as a transmitter, a receiver,
a transceiver, a modem and/or network interface card to facilitate
exchange of data with external machines (e.g., computing devices of
any kind) via a network 726 (e.g., an Ethernet connection, a
digital subscriber line (DSL), a telephone line, coaxial cable, a
cellular telephone system, etc.).
[0058] The processor platform 700 of the illustrated example also
includes one or more mass storage devices 728 for storing software
and/or data. Examples of such mass storage devices 728 include
floppy disk drives, hard drive disks, compact disk drives, Blu-ray
disk drives, RAID systems, and digital versatile disk (DVD)
drives.
[0059] The coded instructions 732 of FIGS. 4, 5, and/or 6 may be
stored in the mass storage device 728, in the volatile memory 714,
in the non-volatile memory 716, and/or on a removable tangible
computer readable storage medium such as a CD or DVD.
[0060] From the foregoing, it will appreciate that the above
disclosed methods, apparatus and articles of manufacture facilitate
identification of a type of media (e.g., an advertisement) the
presence of a type of media presented by a media player based on a
state of a control of the media player application.
[0061] Although certain example methods, apparatus and articles of
manufacture have been disclosed 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 claims of this patent.
* * * * *