# US 11,309,981 B2 · Flow synchronization in a receiver

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

- Number: US 11,309,981 B2
- Document ID: US11309981B2
- Status: Granted
- Kind: B2
- Application number: 16/326,461
- Filed: 2017-08-11
- Published: 2020-06-04
- Granted: 2022-04-19
- Earliest claimed: 2016-08-19
- Assignees: Tdf
- Applicants: Tdf
- Inventors: David Vincent; Dimitri Fague
- Web page: https://patentgrep.com/patent/US11309981B2

## CPC

- H04H 20/18: Arrangements for synchronising broadcast or distribution via plural systems
- H04H 20/20: Arrangements for broadcast or distribution of identical information via plural systems
- H04H 60/11: Arrangements for counter-measures when a portion of broadcast information is unavailable
- H04L 65/65: Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
- H04H: BROADCAST COMMUNICATION (multiplex communication H04J; pictorial communication aspects of broadcast systems H04N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for synchronizing a first data stream and a second data stream, at least one stream among the first stream and second stream being received by radiofrequency broadcasting and the other stream being received via an IP network, the first and second streams carrying the same service. The method involves receiving a value of the mean offset between the first stream and the second stream; storing the first stream in a first buffer and storing the second stream in a second buffer; extracting a first extract from the first buffer and a second extract from the second buffer, according to the mean offset value received; comparatively analyzing the first extract and the second extract in order to deduce a value of the actual offset between the first stream and the second stream; synchronizing the first stream and second stream according to the actual offset value obtained.

## Claims

### Claim 1

A method for synchronizing a first data stream and a second data stream, implemented in a receiver, said method comprising:
receiving the first stream;
receiving the second stream, at least one stream among the first stream and second stream being received by radiofrequency broadcasting and the other stream being received via an IP network, the first and second streams carrying a same service;
receiving a value of the mean offset between the first stream and the second stream, said value indicating that the first stream is ahead of the second stream;
adjusting sizes of a first buffer and a second buffer such that the first buffer is at least equal to the size of the second buffer plus the mean offset value;
storing the first stream in the first buffer and storing the second stream in the second buffer;
extracting:
a first extract from the first buffer, starting extracting in the first buffer at a point corresponding to the mean offset value, and
a second extract from the second buffer;
comparatively analyzing the first extract and the second extract in order to deduce a value of the actual offset which indicates an actual offset between the first stream and the second stream;
synchronizing the first stream and second stream according to the actual offset value obtained synchronizing comprises introducing a delay equal to the value of the actual offset to the first stream when rendering the first stream or moving a read cursor in the first buffer by a number of samples corresponding to the value of the actual offset when rendering the second stream.

### Claim 2 (depends on 1)

The synchronization method according to claim 1, wherein the preceding acts are implemented during a rendering of the first stream, said method further comprising, following the synchronization of the first stream and second stream, an act of switching from the rendering of the first stream to a rendering of the second stream.

### Claim 3 (depends on 2)

The method according to claim 2, wherein the rendering of the first stream and second stream comprises adding samples from the first buffer or second buffer to a rendering buffer.

### Claim 4 (depends on 3)

The method according to claim 3, wherein the synchronization of the first stream and second stream comprises delaying the first stream being rendered by adding samples to the rendering buffer, until the introduced delay is equal to the value of the actual offset between the first stream and the second stream.

### Claim 5 (depends on 3)

The method according to claim 3, wherein the synchronization of the first stream and second stream comprises decreasing the read frequency from the rendering buffer, until the introduced delay is equal to the value of the actual offset between the first stream and the second stream.

### Claim 6 (depends on 1)

The synchronization method according to claim 1, wherein the preceding acts are implemented during a rendering of the second stream, said method further comprising, following the synchronization of the first stream and second stream, an act of switching from the rendering of the second stream to a rendering of the first stream.

### Claim 7 (depends on 6)

The method according to claim 6, wherein the rendering of the first stream and second stream comprises adding samples from the first buffer or second buffer to a rendering buffer.

### Claim 8 (depends on 7)

The method according to claim 7, wherein the synchronization of the first stream and second stream comprises moving a read cursor in the first buffer by a number of samples corresponding to the value of the actual offset between the first stream and second stream,
wherein the samples from the first buffer added to the rendering buffer are indicated by the moved read cursor.

### Claim 9 (depends on 1)

The method according to claim 1, wherein the extraction, comparative analysis, and synchronization acts are implemented after an act of detecting that the reception quality of the stream being rendered is less than a first predetermined threshold.

### Claim 10 (depends on 2)

The method according to claim 2, wherein the switch between the rendering of the first stream and the rendering of the second stream is implemented after an act of detecting that the reception quality of the stream being rendered is less than a second predetermined threshold, said second threshold being lower than the first threshold.

### Claim 11 (depends on 2)

The method according to claim 2, wherein the switch is implemented after an act of receiving a command to switch between the first stream and the second stream, from a user selection interface.

### Claim 12 (depends on 1)

The method according to claim 1, wherein the mean offset value is received from a service platform, via the IP network.

### Claim 13 (depends on 12)

The method according to claim 12, further comprising a prior act of sending a request to the service platform, said request identifying the service carried by the first and second streams.

### Claim 14 (depends on 13)

The method according to claim 13 wherein the request further identifies a location of the receiver, and further comprising the receiving, from the service platform, of a URL for accessing via the IP network the service corresponding to the location of the receiver.

### Claim 15 (depends on 12)

The method according to claim 12, wherein the mean offset value is received cyclically from the service platform.

### Claim 16 (depends on 1)

A non-transitory computer-readable medium comprising instructions stored thereon, for executing the acts of the method according to claim 1.

### Claim 17

A receiver for synchronizing a first data stream and a second data stream, said receiver comprising:
an interface for receiving the first stream;
an interface for receiving the second stream, at least one stream among the first stream and second stream being received by radiofrequency broadcasting and the other stream being received via an IP network, the first and second streams carrying a same service;
an interface for receiving a value of the mean offset between the first stream and the second stream;
at least a first buffer for storing the first stream and a second buffer for storing the second stream;
a calculation module comprising a processor configured:
to adjust the sizes of the first buffer and the second buffer such that the first buffer is at least equal to the size of the second buffer plus the mean offset value,
to extract a first extract from the first buffer, starting the extract in the first buffer at a point corresponding to the mean offset value, and a second extract from the second buffer, and
to perform a comparative analysis of the first extract and the second extract in order to deduce a value of the actual offset which indicates an actual offset between the first stream and the second stream;
a synchronization module comprising a processor configured to synchronize the first stream and second stream according to the actual offset value obtained, said synchronizing comprises introducing a delay equal to the value of the actual offset to the first stream when rendering the first stream or moving a read cursor in the first buffer by a number of samples corresponding to the value of the actual offset when rendering the second stream.
