INTELLIGENT DISPLAY OF CONTENT BASED ON EVENT MONITORING
20230090777 · 2023-03-23
Inventors
Cpc classification
H04N21/47205
ELECTRICITY
H04N21/47217
ELECTRICITY
G06F9/542
PHYSICS
H04N21/47202
ELECTRICITY
International classification
H04N21/472
ELECTRICITY
Abstract
Systems and methods for displaying content based on event monitoring are disclosed herein. A computing device plays a delayed portion of a live content stream communicated to the computing device via a communication network. The computing device detects an event in the live content stream and determines a rank of the event. Based on the rank of the event, the computing device determines whether to play the event instead of the delayed portion of the live content stream. In response to determining to play the event, the computing device plays the event instead of the delayed portion of the live content stream.
Claims
1-50. (canceled)
51. A method comprising: generating for display a delayed portion of a live content stream; detecting a first event in the live content stream ahead of the delayed portion that was generated for display; detecting a second event in the live content stream, the second event occurring after the delayed portion of the live content stream and before the first event in the live content stream; generating for display the first event; and generating for display the second event after the first event is generated for display.
52. The method of claim 51, further comprising: in response to the detecting the first event in the live content stream, triggering analyzing of content between the delayed portion of the live content stream and initiation of the first event in the live content stream to detect the second event.
53. The method of claim 51, wherein the generating for display the second event after the first event is generated for display is in response to the detecting the second event.
54. The method of claim 51, further comprising: detecting a delay between the delayed portion of the live content stream and a live portion of the live content stream; determining whether the delay is greater than a threshold time; and in response to determining that the delay is greater than the threshold time, triggering analyzing the live content stream to detect the first event in the live content stream.
55. The method of claim 54, further comprising: determining a rank of the first event; and determining, based on the rank of the first event, whether to generate for display the first event instead of the delayed portion of the live content stream, wherein the generating for display the first event is in response to determining to generate for display the first event.
56. The method of claim 55, further comprising: determining a rank of the second event; and determining that the rank of the first event is greater than the rank of the second event, wherein: the generating for display the first event is in response to determining that the rank of the first event is greater than the rank of the second event, and the generating for display the second event after the first event is generated for display is in response to determining that the rank of the first event is greater than the rank of the second event.
57. The method of claim 51, wherein the first event is one event of a plurality of detected events and the method further comprises: generating event identifiers, ranks, and time segment information for each of the plurality of detected events; and storing the event identifiers, ranks, and time segment information for each of the plurality of detected events in memory for subsequent analysis of the plurality of detected events.
58. The method of claim 57, further comprising: determining that the rank of the one event is a greatest rank among the ranks of the plurality of detected events, wherein the generating for display the first event is in response to determining that the rank of the one event is the greatest rank among the ranks of the plurality of detected events.
59. The method of claim 51, further comprising: detecting that an amount of time associated with a predetermined repetition rate has elapsed since the first event was detected; and in response to detecting that the amount of time associated with the predetermined repetition rate has elapsed, triggering the analyzing the live content stream to detect an additional event in the live content stream.
60. A system comprising: input/output circuitry configured to: generate for display a delayed portion of the live content stream; and control circuitry configured to: detect a first event in the live content stream ahead of the delayed portion that was generated for display; and detect a second event in the live content stream, the second event occurring after the delayed portion of the live content stream and before the first event in the live content stream, wherein the input/output circuitry is further configured to: generate for display the first event; and generate for display the second event after the first event is generated for display.
61. The system of claim 60, wherein the control circuitry is further configured to: in response to the detecting the first event in the live content stream, trigger analyzing of content between the delayed portion of the live content stream and initiation of the first event in the live content stream to detect the second event.
62. The system of claim 60, wherein the input/output circuitry is configured to generate for display the second event after the first event in response to the detecting the second event.
63. The system of claim 60, wherein the control circuitry is further configured to: detect a delay between the delayed portion of the live content stream and a live portion of the live content stream; determine whether the delay is greater than a threshold time; and in response to determining that the delay is greater than the threshold time, trigger analyzing the live content stream to detect the first event in the live content stream.
64. The system of claim 63, wherein the control circuitry is further configured to: determine a rank of the first event; and determine, based on the rank of the first event, whether to generate for display the first event instead of the delayed portion of the live content stream, wherein the input/output circuitry is configured to generate for display the first event in response to determining to generate for display the first event.
65. The system of claim 64, wherein the control circuitry is further configured to: determine a rank of the second event; and determine that the rank of the first event is greater than the rank of the second event, wherein: the input/output circuitry is configured to generate for display the first event in response to determining that the rank of the first event is greater than the rank of the second event, and the input/output circuitry is configured to generate for display the second event after the first event is generated for display in response to determining that the rank of the first event is greater than the rank of the second event.
66. The system of claim 60, wherein the first event is one event of a plurality of detected events, wherein the control circuitry is further configured to: generate event identifiers, ranks, and time segment information for each of the plurality of detected events; and store the event identifiers, ranks, and time segment information for each of the plurality of detected events in memory for subsequent analysis of the plurality of detected events.
67. The system of claim 66, wherein the control circuitry is further configured to: determine that the rank of the one event is a greatest rank among the ranks of the plurality of detected events, wherein the input/output circuitry is configured to generate for display the first event in response to determining that the rank of the one event is the greatest rank among the ranks of the plurality of detected events.
68. The system of claim 60, wherein the control circuitry is further configured to: detect that an amount of time associated with a predetermined repetition rate has elapsed since the first event was detected; and in response to detecting that the amount of time associated with the predetermined repetition rate has elapsed, trigger the analyzing the live content stream to detect an additional event in the live content stream.
69. A non-transitory computer-readable medium having instructions encoded thereon that when executed by control circuitry cause the control circuitry to: generate for display a delayed portion of a live content stream; detect a first event in the live content stream ahead of the delayed portion that was generated for display; detect a second event in the live content stream, the second event occurring after the delayed portion of the live content stream and before the first event in the live content stream; generate for display the first event; and generate for display the second event after the first event is generated for display.
70. The non-transitory computer-readable medium of claim 69, wherein the first event is one event of a plurality of detected events, and wherein the instructions cause the control circuitry to further: generate event identifiers, ranks, and time segment information for each of the plurality of detected events; store the event identifiers, ranks, and time segment information for each of the plurality of detected events in memory for subsequent analysis of the plurality of detected events; and determine that the rank of the one event is a greatest rank among the ranks of the plurality of detected events.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The above and other objects and advantages of the disclosure will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
DETAILED DESCRIPTION
[0026]
[0027] In some examples, media content source 104 and media guidance data source 106 may be integrated as one device. Media content source 104 may include one or more types of content distribution equipment including a television distribution facility, cable system headend, satellite distribution facility, programming sources (e.g., television broadcasters, such as NBC, ABC, HBO, etc.), intermediate distribution facilities and/or servers, Internet providers, on-demand media servers, and other content providers. NBC is a trademark owned by the National Broadcasting Company, Inc.; ABC is a trademark owned by the American Broadcasting Company, Inc.; and HBO is a trademark owned by the Home Box Office, Inc. Media content source 104 may be the originator of content (e.g., a television broadcaster, a Webcast provider, etc.) or may not be the originator of content (e.g., an on-demand content provider, an Internet provider of content of broadcast programs for downloading, etc.). Media content source 104 may include cable sources, satellite providers, on-demand providers, Internet providers, over-the-top content providers, or other providers of content. Media content source 104 may also include a remote media server used to store different types of content (e.g., including video content selected by a user) in a location remote from computing device 110. Systems and methods for remote storage of content and providing remotely stored content to user equipment are discussed in greater detail in connection with Ellis et al., U.S. Pat. No. 7,761,892, issued Jul. 20, 2010, which is hereby incorporated by reference herein in its entirety.
[0028] Media content source 104 and media guidance data source 106 may provide content and/or media guidance data to computing device 110 and/or server 102 using any suitable approach. In some embodiments, media guidance data source 106 may provide a stand-alone interactive television program guide that receives program guide data via a data feed (e.g., a continuous feed or trickle feed). In some examples, media guidance data source 106 may provide program schedule data and other guidance data to computing device 110 on a television channel sideband, using an in-band digital signal, an out-of-band digital signal, or any other suitable data transmission technique.
[0029] As described in further detail below, server 102 manages the communication of a live content stream (e.g., a live sporting event broadcast, a live news broadcast, or the like) from media content source 104 to computing device 110 via communication network 108. For instance, in some embodiments, content from media content source 104 and/or guidance data from media guidance data source 106 may be provided to computing device 110 using a client/server approach. In such examples, computing device 110 may pull content and/or media guidance data from server 102 and/or server 102 may push content and/or media guidance data to computing device 110. In some embodiments, a client application residing on computing device 110 may initiate sessions with server 102, media content source 104, and/or media guidance data source 106 to obtain content and/or guidance data when needed, e.g., when the guidance data is out-of-date or when computing device 110 receives a request from the user to receive content or guidance data. In various aspects, server 102 may also be configured to detect events within the live content stream and, based on the detected events, control the display of content and/or navigation menu options via computing device 110. Additionally, although
[0030] Content and/or media guidance data delivered to computing device 110 may be over-the-top (OTT) content. OTT content delivery allows Internet-enabled user devices, such as computing device 110, to receive content that is transferred over the Internet, including any content described above, in addition to content received over cable or satellite connections. OTT content is delivered via an Internet connection provided by an Internet service provider (ISP), but a third party distributes the content. The ISP may not be responsible for the viewing abilities, copyrights, or redistribution of the content, and may transfer only IP packets provided by the OTT content provider. Examples of OTT content providers include YOUTUBE, NETFLIX, and HULU, which provide audio and video via IP packets. YouTube is a trademark owned by Google LLC; Netflix is a trademark owned by Netflix, Inc.; and Hulu is a trademark owned by Hulu, LLC. OTT content providers may additionally or alternatively provide media guidance data described above. In addition to content and/or media guidance data, providers of OTT content can distribute applications (e.g., web-based applications or cloud-based applications), or the content can be displayed by applications stored on computing device 110.
[0031]
[0032] Each of storage 204, storage 212, and/or storages of other components of system 100 (e.g., storages of media content source 104, media guidance data source 106, and/or the like) may be an electronic storage device. As referred to herein, the phrase “electronic storage device” or “storage device” should be understood to mean any device for storing electronic data, computer software, or firmware, such as random-access memory, read-only memory, hard drives, optical drives, digital video disc (DVD) recorders, compact disc (CD) recorders, BLU-RAY disc (BD) recorders, BLU-RAY 3D disc recorders, digital video recorders (DVRs, sometimes called a personal video recorder, or PVR), solid state devices, quantum storage devices, gaming consoles, gaming media, or any other suitable fixed or removable storage devices, and/or any combination of the same. Each of storage 204, storage 212, and/or storages of other components of system 100 may be used to store various types of content, media guidance data, and or other types of data. Non-volatile memory may also be used (e.g., to launch a boot-up routine and other instructions). Cloud-based storage may be used to supplement storages 204, 212 or instead of storages 204, 212. In some embodiments, control circuitry 202 and/or 210 executes instructions for an application stored in memory (e.g., storage 204 and/or 212). Specifically, control circuitry 202 and/or 210 may be instructed by the application to perform the functions discussed herein. In some implementations, any action performed by control circuitry 202 and/or 210 may be based on instructions received from the application. For example, the application may be implemented as software or a set of executable instructions that may be stored in storage 204 and/or 212 and executed by control circuitry 202 and/or 210. In some embodiments, the application may be a client/server application where only a client application resides on computing device 110, and a server application resides on server 102.
[0033] The application may be implemented using any suitable architecture. For example, it may be a stand-alone application wholly implemented on computing device 110. In such an approach, instructions of the application are stored locally (e.g., in storage 212), and data for use by the application is downloaded on a periodic basis (e.g., from an out-of-band feed, from an Internet resource, or using another suitable approach). Control circuitry 214 may retrieve instructions of the application from storage 212 and process the instructions to perform the functionality described herein. Based on the processed instructions, control circuitry 214 may determine what action to perform when input is received from user input interface 222.
[0034] In client/server-based embodiments, control circuitry 210 may include communication circuitry suitable for communicating with an application server (e.g., server 102) or other networks or servers. The instructions for carrying out the functionality described herein may be stored on the application server. Communication circuitry may include a cable modem, an integrated services digital network (ISDN) modem, a digital subscriber line (DSL) modem, a telephone modem, an Ethernet card, or a wireless modem for communication with other equipment, or any other suitable communication circuitry. Such communication may involve the Internet or any other suitable communication networks or paths (e.g., communication network 108). In another example of a client/server-based application, control circuitry 210 runs a web browser that interprets web pages provided by a remote server (e.g., server 102). For example, the remote server may store the instructions for the application in a storage device. The remote server may process the stored instructions using circuitry (e.g., control circuitry 202) and generate the displays discussed above and below. Computing device 110 may receive the displays generated by the remote server and may display the content of the displays locally via display 220. This way, the processing of the instructions is performed remotely (e.g., by server 102) while the resulting displays, such as the display windows described elsewhere herein, are provided locally on computing device 110. Computing device 110 may receive inputs from the user via input interface 222 and transmit those inputs to the remote server for processing and generating the corresponding displays.
[0035] A user may send instructions to control circuitry 202 and/or 210 using user input interface 222. User input interface 222 may be any suitable user interface, such as a remote control, trackball, keypad, keyboard, touchscreen, touchpad, stylus input, joystick, voice recognition interface, or other user input interfaces. User input interface 222 may be integrated with or combined with display 220, which may be a monitor, a television, a liquid crystal display (LCD), electronic ink display, or any other equipment suitable for displaying visual images.
[0036] Server 102 and computing device 110 may receive content and data via input/output (hereinafter “I/O”) path 208 and 216, respectively. For instance, I/O path 216 may include a communication port configured to receive a live content stream from server 102 and/or media content source 104 via a communication network 108. Storage 212 may be configured to buffer the received live content stream for playback, and display 220 may be configured to present the buffered content, navigation options, alerts, and/or the like via a primary display window and/or a secondary display window. I/O paths 208, 216 may provide content (e.g., a live stream of content, broadcast programming, on-demand programming, Internet content, content available over a local area network (LAN) or wide area network (WAN), and/or other content) and data to control circuitry 202, 210. Control circuitry 202, 210 may be used to send and receive commands, requests, and other suitable data using I/O paths 208, 216. I/O paths 208, 216 may connect control circuitry 202, 210 (and specifically processing circuitry 206, 214) to one or more communication paths (described below). I/O functions may be provided by one or more of these communication paths but are shown as single paths in
[0037] Having described system 100, reference is now made to
[0038] As described above, control circuitry 210 of computing device 110 is configured to receive a live content stream, such as a live sporting event broadcast, a live news broadcast, or the like, from media content source 104 via communication network 108 and I/O path 216 (e.g., via a communication port thereof). Control circuitry 210 buffers the received live content stream in storage 212 for playback via display 220. At 302, control circuitry 210 plays a delayed portion of the live content stream. The portion of the live content stream being played at 302 may be delayed relative to the live portion of the content stream for a variety of reasons. For instance, a user may have selected a navigation menu option (e.g., a rewind option) via user input interface 222 to navigate to an earlier portion of the stream. Alternatively or in addition, the portion of the live content stream being played at 302 may be delayed owing to a QoS-related factor, such as a bit rate, a network delay, or another factor associated with the communication of the content stream to computing device 110 over communication network 108.
[0039] At 304, control circuitry 210 monitors the live content stream being received at computing device 110 via communication network 108 to detect any events, such as a score change in a live sporting event or an alert in a live news broadcast, that may occur in the content stream. Additional details regarding how control circuitry 210 may monitor the live content stream at 304 to detect events are provided below in the context of
[0040] In some cases, analysis of the content stream may be triggered when a predetermined delay arises between the portion of the content stream being played at 302 and the live portion of the content stream. For instance, control circuitry 210 may be configured to detect an amount of the delay (e.g., an amount of time) between the delayed portion of the live content stream being played at 302 and the live portion of the live content stream, determine that the amount of the delay exceeds a threshold delay amount, and, in response, trigger an analysis of the content stream to detect any event(s) that may have occurred at one or more portions of the stream from the delayed portion being played to the live portion. By triggering the analysis of the live content stream based on a delay amount, the system may detect events in the stream without inefficiently overutilizing computing resources.
[0041] Alternatively or in addition, analysis of the content stream may be triggered based on a predetermined repetition rate. For instance, control circuitry 210 may be configured to detect that an amount of time (e.g., a repetition period) associated with a predetermined repetition rate has elapsed since an analysis of the content stream was most recently performed (e.g., since any event was detected) and, in response, trigger another analysis of the content stream to detect any additional events that may have occurred in portions of the stream that have not yet been analyzed for events. By triggering the analysis of the live content stream periodically instead of continuously, the system may detect events in the stream without inefficiently overutilizing computing resources.
[0042] At 306, control circuitry 210 determines whether one or more events in the content stream have been detected at 304. If no event in the content stream has been detected at 304 (“No” at 306), then the delayed portion of the content stream continues to be played at 302. If, on the other hand, one or more events in the content stream have been detected at 304 (“Yes” at 306), then control circuitry 210 determines at 308 whether—and to which portion of the content stream—to shift a play (or playback) position within the content stream based on the detected event(s). Additional details regarding how control circuitry 210 may make the determination at 308 are provided below in the context of
[0043] If control circuitry 210 determines not to shift a playback position based on the detected event(s) (“No” at 308), then the delayed portion of the content stream continues to be played at 302. If, on the other hand, control circuitry 210 determines, based on one or more events detected at 306, that a play position is to be shifted to another portion of the content stream (e.g., a portion of the content stream that is temporally shifted relative to the portion of the content stream being played at 302) (“Yes” at 308), then, in one example, at 310 control circuitry 210 shifts (e.g., automatically, without requiring user input via user input interface 222) the play position to the shifted portion of the content stream (e.g., to a start time that corresponds to a detected event). In another example, as an alternative to automatically shifting the play position at 310, control circuitry 210 may present a navigation menu option via user input interface 222 that a user may select to trigger the shifting of the play position, if desired. Control circuitry 210 may also provide a system-configurable option and/or a user-configurable option (e.g., via a graphical user interface (GUI) as part of user input interface 222) that sets whether—and under what conditions—any shift identified at 308 is executed automatically at 310 or requires user input via user input interface 222 in order to be executed at 310.
[0044] At 312, control circuitry 210 plays the event that corresponds to the shifted position (e.g., the position to which the play position has been shifted at 310) instead of the delayed portion of the content stream that was being played at 302. In this manner, for instance, if a user is viewing a delayed portion of the live content stream (at 302) and an important event (e.g., with importance being related to the rank of the event) occurs at another portion of the stream, system 100 may automatically navigate to that other portion of the stream to play the important event.
[0045]
[0046] At 404, control circuitry 210 determines a type of the content retrieved at 402. Examples of the type of retrieved content may be broadcasted sporting event content, news content, and/or another type of live content. Control circuitry 210 may make the determination at 404 in a variety of ways. For example, control circuitry 210 may determine the type of content based on a content-type field included in a header of one or more packets within which the retrieved portion of content was received at computing device 110. The content-type field may include a code that indicates the type of the content.
[0047] At 406, based on the type of the retrieved content determined at 404, control circuitry 210 retrieves from storage 212 one or more event rules that define types of events for that type of content, indicate how such events are to be detected within content streams of that type, and/or indicate how to compute ranks for such events (see 504 of
[0048] The event rules for content of the news broadcast type may identify certain alerts, keywords, or keyword phrases that, if uttered in an audio portion of the content stream and/or present in a news ticker of a video portion of the content stream, would qualify as events and should be detected. Such event rules may also indicate how control circuitry 210 may detect such alerts, keywords, or keyword phrases in content of the news broadcast type. For instance, control circuitry 210 may detect such alerts, keywords, or keyword phrases by reading an alert field and/or closed-captioned text that may be communicated from server 202, media content source 104, and/or media guidance data source 106 to computing device 110 in connection with the retrieved portion of content. Control circuitry 210 may also detect score changes in content by performing image processing on image frames of the content to identify and read any alerts, tickers, and/or closed captioning text that may be included in the image frames.
[0049] Each event may have one of multiple possible ranks (e.g., low importance, medium importance, high importance) that may indicate a relative importance of the event (e.g., relative to other events) and that control circuitry 210 may use in determining which of multiple detected events to navigate to or play or which of the events should have a corresponding navigation menu option presented. To that end, the event rules retrieved at 406 may also indicate how to compute ranks for certain types of events (see 504 of
[0050] At 408, control circuitry 210 searches the portion of the content stream retrieved at 402 for any events that satisfy the rules retrieved at 406 for the type of content determined at 404. If control circuitry 210 does not identify within the portion of the content stream retrieved at 402 any events that satisfy the retrieved rules (“No” at 410), then control passes to 414 to determine whether any additional portion of the content stream remains to be analyzed. If, on the other hand, control circuitry 210 identifies within the portion of the content stream retrieved at 402 any events that satisfy the retrieved rules (“Yes” at 410), then at 412 control circuitry 210 generates, stores, and/or returns event data for each identified event. The event data for each identified event may include, for instance, an event identifier that uniquely identifies the event and a temporal index or identifier, such as a start time, end time, and/or duration of the event within the content stream.
[0051] At 414, control circuitry 210 determines whether any additional portion of the content stream remains to be analyzed. The determination made at 414 may depend at least in part on how analysis of the content stream is triggered, as discussed above. For example, analysis of the content stream may be repeated periodically after a predetermined repetition period (or at a predetermined repetition rate). In such an example, if control circuitry 210 determines that no additional portion of the content stream remains to be analyzed (“No” at 414), then at 416, control circuitry 210 waits for a predetermined period of time. If, on the other hand, control circuitry 210 determines that an additional portion of the content stream remains to be analyzed (“Yes” at 414), then control circuitry 210 retrieves the additional portion of the content stream at 402 for analysis in the manner described above.
[0052]
[0053] In various aspects, the determination of whether to shift a play position of the content stream and, if so, to which portion of the content stream, may also depend at least in part on the temporal portion of the content stream within which the event(s) occur. For instance, if multiple of the detected events have the highest rank, in some cases, at 506 control circuitry 210 identifies as the highest-ranked event the event that has the highest rank and is nearest in time to the delayed position (e.g., the delayed portion of the content stream being played at 302).
[0054] At 508, control circuitry 210 determines the position (e.g., temporal index, such as the start time, end time, and/or duration) of the event identified at 506. If the position of the event identified at 506 matches (and/or overlaps with) the position of the live portion of the content stream (“Live Position” at 508), then control passes to 514. At 514, control circuitry 210 determines whether any additional events occurring at intermediate positions between the delayed position and the live position are included among the events having identifiers retrieved at 502. If no intermediate events are included among the events having identifiers retrieved at 502 (“No” at 514), then at 522 control circuitry 210 returns a message indicating that a shift (or an optional shift) to the live position is warranted. If, on the other hand, one or more intermediate events are included among the events having identifiers retrieved at 502 (“Yes” at 514), then at 520 control circuitry 210 returns a message indicating that a shift (or an optional shift) to the live position is warranted and that after the event at the live position has been played, subsequent sequential shifts (or optional shifts) to the other intermediate events, if any, identified at 514 are warranted in an order based on rank (e.g., in an order from high rank to low rank).
[0055]
[0056] Referring back to
[0057]
[0058] Referring back to
[0059]
[0060] At 904, in a manner similar to that described above in connection with 304 (
[0061] At 906, in a manner similar to that described above in connection with 306 (
[0062]
[0063] Steps 1002, 1004, and 1006 are executed in a manner similar to that described above in connection with steps 502, 504, 506, respectively, of
[0064] In some aspects, control circuitry 210 is configured to monitor the condition of communication network 108 and control the display of content and/or navigation menu options based on the sufficiency of the network condition. For instance, if the condition is sufficient (e.g., if the data rate is sufficiently high), control circuitry 210 may generate the secondary display window to display any detected events in a manner commensurate with the network condition (e.g., where aspects of the secondary display window, such as bit rate, frame rate, and/or the like, change to suit the network condition). If the network condition is insufficient, instead of generating the secondary display window, control circuitry 210 may provide a static user option via a GUI that the user may select via the user input interface 222 to navigate to a detected event. By modifying aspects of the primary and/or secondary display windows based on the status of communication network 108, system 100 can enable the user to view multiple portions of the content stream without overtaxing computing resources (e.g., of computing device 110) and potentially causing stalls or other degradations in the viewing experience.
[0065] At 1008, control circuitry 210 determines (e.g., retrieves from storage 212, from a network monitoring device (not shown in
[0066] If the QoS-related factor indicates that the connection speed is slow (“Slow” at 1010), then at 1014 control circuitry 210 generates a small secondary display window (e.g., a picture-in-picture window) within which the event is played using a low frame rate, data rate, and/or quality. If the QoS-related factor indicates that the connection speed is medium (“Medium” at 1010), then at 1016 control circuitry 210 generates a medium-sized secondary display window within which the event is played using a medium frame rate, data rate, and/or quality. If the QoS-related factor indicates that the connection speed is fast (“Fast” at 1010), then at 1018 control circuitry 210 generates a large secondary display window within which the event is played using a high frame rate, data rate, and/or quality. For instance, as shown in
[0067] If the QoS-related factor indicates that the connection speed is very slow (“Very Slow” at 1010), then at 1012 control circuitry 210 generates a static secondary alert window. For instance, as shown in
[0068] In some aspects, at 1020, control circuitry 210 determines whether the rank of the event being displayed within the secondary display window exceeds the rank of the event (if any) detected in the content being displayed within the primary window. If no event is being displayed in the primary window, or if the rank of the event being displayed within the secondary display window exceeds the rank of the event being displayed within the primary window (“Yes” at 1020), then at 1022 control circuitry increases an aspect of the secondary display window, such as a window size, a frame rate, a data rate, and/or a video quality. If the rank of the event being displayed in the secondary display window does not exceed the rank of the event being displayed in the primary display window (“No” at 1020), then process 908 terminates. Since the rank of the event may correspond to the relative importance of the event, by modifying aspects of the secondary display window based on the rank of the event, the system may effectively balance how prominently the event is displayed via the secondary display window with the relative importance of the event. In this manner, for instance, for minimally important events, the system can avoid or minimize any disruption to the user's viewing of the content in the primary display window that might be caused by prominently displaying the event via the secondary display window and can reserve such disruptions for important events only.
[0069] The systems and processes discussed above are intended to be illustrative and not limiting. One skilled in the art would appreciate that the actions of the processes discussed herein may be omitted, modified, combined, and/or rearranged, and any additional actions may be performed without departing from the scope of the invention. More generally, the above disclosure is meant to be exemplary and not limiting. Only the claims that follow are meant to set bounds as to what the present disclosure includes. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, done in different orders, or done in parallel. In addition, the systems and methods described herein may be performed in real time. It should also be noted that the systems and/or methods described above may be applied to, or used in accordance with, other systems and/or methods.