# US 12,225,070 B2 · Extended W3C media extensions for processing DASH and CMAF inband events

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

- Number: US 12,225,070 B2
- Document ID: US12225070B2
- Status: Granted
- Kind: B2
- Application number: 18/545,666
- Filed: 2023-12-19
- Published: 2024-04-11
- Granted: 2025-02-11
- Earliest claimed: 2021-04-19
- Assignees: Tencent America LLC
- Applicants: Tencent America LLC
- Inventors: Iraj Sodagar
- Web page: https://patentgrep.com/patent/US12225070B2

## CPC

- H04L 65/765: {intermediate}
- H04L 65/61: for supporting one-way streaming services, e.g. Internet radio
- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- H04L 65/80: Responding to QoS
- H04N 21/435: Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N 21/85406: {involving a specific file format, e.g. MP4 format}
- H04N 21/858: Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

There is included a method and apparatus comprising computer code configured to cause a processor or processors to perform obtaining media data, generating, from the media data, one or more event segments, appending the one or more event segments, to a first event processing buffer, the one or more event segments comprising an event start offset for each of the one or more event segments based on a time at which the each of the one or more event segments is appended to the first event processing buffer, appending the one or more event segments, to a second event processing buffer, the one or more event segments comprising event dispatch information for the each of the one or more event segments, and dispatching the one or more event segments based on the first event processing buffer and the event dispatch information in the second event processing buffer.

## Claims

### Claim 1

A method of processing events in a media stream, the method comprising:
obtaining a first event processing buffer and a second event processing buffer, wherein the first event processing buffer comprises an event start offset for each of a one or more event segments, and wherein the second event processing buffer comprises event dispatch information for the each of the one or more event segments;
obtaining one or more new event segments associated with media data;
splitting the one or more event segments in the first event processing buffer and the second event processing buffer based on an event duration of the one or more new event segments;
overwriting the one or more event segments in the first event processing buffer and the second event processing buffer based on the event duration of the one or more new event segments; and
dispatching the one or more event segments and the one or more new event segments based on the first event processing buffer and the event dispatch information in the second event processing buffer.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the method further comprises appending of the one or more event segments to the first event processing buffer is based on a time at which the each of the one or more event segments is appended to the first event processing buffer.

### Claim 3 (depends on 1)

The method according to claim 1,
wherein the event dispatch information comprises information indicating at least one of event initialization, event appending, event purging, event duration, or event overwrite.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the method further comprises appending of the one or more event segments to the second event processing buffer, wherein the appending comprises duplicating the appending of the one or more event segments to the first event processing buffer.

### Claim 5 (depends on 4)

The method according to claim 4, wherein the appending of the one or more event segments to the second event processing buffer is based on the event dispatch information for the each of the one or more event segments.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the dispatching of the one or more event segments and the one or more new event segments comprises:
determining whether the one or more event segments or the one or more new event segments is included in a dispatch event table; and
based on determining that the one or more event segments or the one or more new event segments is not included in the dispatch event table, dispatching the one or more event segments or the one or more new event segments to an application.

### Claim 7 (depends on 1)

The method according to claim 1, further comprising:
after the dispatching of the one or more event segments and the one or more new event segments, adding the one or more event segments and the one or more new event segments to a dispatch event table.

### Claim 8 (depends on 2)

The method of claim 2, and wherein the appending causes the each of the one or more event segments to align respective presentation time and duration of the each of the one or more event segments with respective presentation time and duration of at least one associated media sample in a media buffer.

### Claim 9 (depends on 1)

The method according to claim 1, wherein the overwriting of the one or more event segments comprises:
determining that the one or more event segments in the first event processing buffer are not associated with a same media segment;
deleting the one or more event segments from the second event processing buffer;
deleting the one or more event segments from the first event processing buffer; and
appending the one or more new event segments to the first event processing buffer and the second event processing buffer.

### Claim 10 (depends on 1)

The method according to claim 1,
wherein the each of the one or more event segments is associated with at least one media sample in a media buffer.

### Claim 11

An apparatus for processing events in a media stream, the apparatus comprising:
at least one memory configured to store computer program code;
at least one processor configured to access the computer program code and operate as instructed by the computer program code, the computer program code including:
first obtaining code configured to cause the at least one processor to obtain a first event processing buffer and a second event processing buffer, wherein the first event processing buffer comprises an event start offset for each of a one or more event segments, and wherein the second event processing buffer comprises event dispatch information for the each of the one or more event segments;
second obtaining code configured to cause the at least one processor to obtain one or more new event segments associated with media data;
first spitting code configured to cause the at least one processor to split the one or more event segments in the first event processing buffer and the second event processing buffer based on event duration of the one or more new event segments;
first overwriting code configured to cause the at least one processor to overwrite the one or more event segments in the first event processing buffer and the second event processing buffer based on the event duration of the one or more new event segments; and
first dispatching code configured to cause the at least one processor to dispatch the one or more event segments and the one or more new event segments based on the first event processing buffer and the event dispatch information in the second event processing buffer.

### Claim 12 (depends on 11)

The apparatus according to claim 11, further comprising:
first appending code configured to cause the at least one processor to append the one or more event segments to the first event processing buffer based on a time at which the each of the one or more event segments is appended to the first event processing buffer.

### Claim 13 (depends on 11)

The apparatus according to claim 11,
wherein the event dispatch information comprises information indicating at least one of event initialization, event appending, event purging, event duration, or event overwrite.

### Claim 14 (depends on 11)

The apparatus according to claim 11, further comprising
second appending code configured to cause the at least one processor to append the one or more event segments to the second event processing buffer based on duplicating the appending of the one or more event segments to the first event processing buffer.

### Claim 15 (depends on 14)

The apparatus according to claim 14,
wherein the appending of the one or more event segments to the second event processing buffer is based on the event dispatch information for the each of the one or more event segments.

### Claim 16 (depends on 11)

The apparatus according to claim 11, wherein the first dispatching code further comprises:
first determining code configured to cause the at least one processor to determine whether the one or more event segments or the one or more new event segments is included in a dispatch event table; and
second dispatching code configured to cause the at least one processor to, based on determining that the one or more event segments or the one or more new event segments is not included in the dispatch event table, dispatch the one or more event segments or the one or more new event segments to an application.

### Claim 17 (depends on 11)

The apparatus according to claim 11, further comprising:
first addition code configured to cause the at least one processor to add the one or more event segments and the one or more new event segments to a dispatch event table, after dispatching the one or more event segments and the one or more new event segments.

### Claim 18 (depends on 12)

The apparatus according to claim 12, wherein the appending of the one or more event segments to the first event processing buffer causes the each of the one or more event segments to align respective presentation time and duration of the each of the one or more event segments with respective presentation time and duration of at least one associated media sample in a media buffer.

### Claim 19 (depends on 11)

The apparatus according to claim 11, wherein the first overwriting code further comprises:
second determining code configured to cause the at least one processor to determine that the one or more event segments in the first event processing buffer are not associated with a same media segment;
first deleting code configured to cause the at least one processor to delete the one or more event segments from the second event processing buffer;
second deleting code configured to cause the at least one processor to delete the one or more event segments from the first event processing buffer; and
third appending code configured to cause the at least one processor to append the one or more new event segments to the first event processing buffer and the second event processing buffer.

### Claim 20

A non-transitory computer readable medium storing a program causing a computer to execute a process, the process comprising:
obtaining a first event processing buffer and a second event processing buffer, wherein the first event processing buffer comprises an event start offset for each of a one or more event segments, and wherein the second event processing buffer comprises event dispatch information for the each of the one or more event segments;
obtaining one or more new event segments associated with media data;
splitting the one or more event segments in the first event processing buffer and the second event processing buffer based on event duration of the one or more new event segments;
overwriting the one or more event segments in the first event processing buffer and the second event processing buffer based on the event duration of the one or more new event segments; and
dispatching the one or more event segments and the one or more new event segments based on the first event processing buffer and the event dispatch information in the second event processing buffer.
