# US 10,771,362 B2 · Media stream monitor

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,771,362 B2
- Document ID: US10771362B2
- Status: Granted
- Kind: B2
- Application number: 16/196,627
- Filed: 2018-11-20
- Published: 2019-03-21
- Granted: 2020-09-08
- Earliest claimed: 2009-12-29
- Assignees: iHeartMedia Management Services, Inc.
- Applicants: iHeartMedia Management Services, Inc.
- Inventors: Jack Curtis Viers
- Web page: https://patentgrep.com/patent/US10771362B2

## CPC

- H04L 43/0823: Errors, e.g. transmission errors
- H04L 43/02: Capturing of monitoring data
- H04L 43/50: Testing arrangements
- H04L 65/611: for multicast or broadcast (systems for broadcast or conference H04L12/18; arrangements for broadcast or distribution combined with broadcast H04H20/00; arrangements for broadcast applications with a direct linkage to broadcast information or to broadcast space-time H04H60/00; selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS], H04W4/06)
- H04L 65/612: for unicast
- H04L 65/80: Responding to QoS
- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A stream monitor can request a streaming media server to send stream records associated with streams currently being served. The stream monitor uses the stream records to test streams being served by the streaming media server. The stream monitor can concurrently test multiple streams for connection errors, silence errors, metadata errors, and other errors.

## Claims

### Claim 1

A method comprising:
receiving, in response to a request, a plurality of stream records including a plurality of parameters to identify a plurality of media streams being served by a stream server, wherein each media stream of the plurality of media streams includes packetized media content and associated metadata;
concurrently monitoring stream events for the plurality of stream records, through one or more program listening objects, wherein each media stream of the plurality of media streams is served by the stream server;
triggering an event handler to respond to a specific stream event detected by the one or more program listening objects during the monitoring stream events, wherein the event handler is triggered based on an event type in an event class;
testing the plurality of media streams based at least in part on the event handler; and
displaying a result of the testing the plurality of media streams to a display device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the stream events include:
application script execution;
view dependent application actions;
detecting an error on a specific stream associated with the specific stream event;
determining if the associated metadata is valid;
detecting that a stream connection has switched to a new stream; or
detecting that a stream application program interface (API) request has failed.

### Claim 3 (depends on 1)

The method of claim 1, wherein the specific stream event triggers a plurality of event handlers.

### Claim 4 (depends on 1)

The method of claim 1, wherein the event handler accepts a single instance of the event type in an event class.

### Claim 5 (depends on 1)

The method of claim 1, wherein the event handler accepts children of the event type in an event class.

### Claim 6 (depends on 1)

The method of claim 1, wherein the specific stream event triggers a plurality of event handlers for each of the event types of a given event class.

### Claim 7 (depends on 1)

The method of claim 1, wherein the event handler is configured to:
initiate testing of the plurality of media streams;
set up a connection, a test timer, testing variables, and a call of connect method;
playback a specific stream;
handle stream events related to a play status;
check for information in the associated metadata required to test; or
issue a metadata error report.

### Claim 8 (depends on 1)

The method of claim 1 further comprises discontinuing testing of an individual media stream in response to at least one of the plurality of media streams successfully connecting and broadcasting the associated metadata.

### Claim 9 (depends on 1)

The method of claim 1 further comprises, in response to the testing the plurality of media streams being completed, removing the plurality of stream records from memory.

### Claim 10

A system comprising:
a processor;
memory operably associated with the processor;
a program of event driven instructions configured to be stored in the memory and executed by event handlers within the processor, the program of event driven instructions comprises:
receiving, in response to a request, a plurality of stream records including a plurality of parameters to identify a plurality of media streams being served by a stream server, wherein each media stream of the plurality of media streams includes packetized media content and associated metadata;
concurrently monitoring events for the plurality of stream records, through one or more program listening objects, wherein each media stream of the plurality of media streams is served by the stream server;
triggering an event handler to respond to a specific event detected by the one or more program listening objects during the monitoring events, wherein the event handler is triggered based on an event type in an event class;
testing the plurality of media streams based at least in part on the event handler; and
display a result of the testing the plurality of media streams to a display device.

### Claim 11 (depends on 10)

The system of claim 10, wherein the events are configured to include:
application script execution;
view dependent application actions;
detecting an error on a stream associated with the specific event;
determining if the associated metadata is valid;
detecting that a stream connection has switched to a new stream; or
detecting that a stream application program interface (API) request has failed.

### Claim 12 (depends on 10)

The system of claim 10, wherein the specific event triggers a plurality of event handlers.

### Claim 13 (depends on 10)

The system of claim 10, wherein the event handler accepts a single event type in an event class.

### Claim 14 (depends on 10)

The system of claim 10, wherein the event handler accepts children of an event type in an event class.

### Claim 15 (depends on 10)

The system of claim 10, wherein the specific event triggers a plurality of event handlers for each of the event types of a given event class.

### Claim 16 (depends on 10)

The system of claim 10, wherein the event handler is configured to:
initiate testing of the plurality of the plurality of media streams;
set up a connection, a test timer, testing variables, and a call of connect method;
playback a specific stream;
handle stream events related to a play status;
check for information in the associated metadata required to test; or
issue a metadata error report.

### Claim 17

A non-transitory computer readable medium tangibly embodying a program of computer executable event driven instructions, the program of computer executable event driven instructions comprises:
receiving, in response to a request, a plurality of stream records including a plurality of parameters to identify a plurality of media streams being served by a stream server, wherein each media stream of the plurality of media streams includes packetized media content and associated metadata;
concurrently monitoring events for the plurality of stream records, through one or more program listening objects, wherein each media stream of the plurality of media streams is served by the stream server;
triggering an event handler to respond to a specific event detected by the one or more program listening objects during the monitoring events, wherein the event handler is triggered based on an event type in an event class;
testing the plurality of media streams based at least in part on the event handler; and
displaying a result of the testing the plurality of media streams to a display device.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein the specific event triggers a plurality of event handlers.
