# US 12,217,772 B2 · Remote operation handling on PTS restart

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

- Number: US 12,217,772 B2
- Document ID: US12217772B2
- Status: Granted
- Kind: B2
- Application number: 18/221,154
- Filed: 2023-07-12
- Published: 2023-11-02
- Granted: 2025-02-04
- Earliest claimed: 2022-05-02
- Assignees: DISH Network Technologies India Private Limited
- Applicants: DISH Network Technologies India Private Limited
- Inventors: Vimalraj Ganesan; Deepak Sharma; Devaraja Huvinahalli
- Web page: https://patentgrep.com/patent/US12217772B2

## CPC

- G11B 27/34: Indicating arrangements {(indicating means incorporated in magazine or cassette G11B23/046 and G11B23/0875; indicating measured values in general G01D)}
- H04N 21/4302: {Content synchronisation processes, e.g. decoder synchronisation}
- H04N 21/8547: involving timestamps for synchronizing content
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Devices, systems, and processes for reducing interruptions due to a presentation timestamp restart (PTSrs) are provided. A process includes receiving content data packets identifiable by a timestamp. The timestamps vary between a PTSmin and a PTSmax. When PTSmax is reached, a next data packet is restarted at substantially equal to PTSmin. The process includes first determining whether one of the timestamps have restarted and, if so, generating a loop over index file associating a first timestamp with a first index value (A), a second timestamp with a second index value (B), a third timestamp with a third index value (C), and a fourth timestamp with a fourth index value (D). PTSrs may be detected when the second timestamp is greater than the fourth timestamp or when the first timestamp is greater than the third timestamp. When a restart occurs, adjustments to content playback sequence are made using the index values.

## Claims

### Claim 1

A process comprising:
receiving a data stream, for a given content, comprising a plurality of Motion Picture Experts Group (“MPEG”) data packets;
wherein each of the plurality of MPEG data packets is associated with a Presentation Time Stamp (“PTS”);
wherein the PTS for a given MPEG data packet varies between a minimum presentation timestamp value (“PTSmin”) and a maximum presentation timestamp value (“PTSmax”);
wherein PTSmax=2P; and
wherein P is a number of bits provided in a PTS data field for a header of a given data packet in the data stream;
wherein the data stream further comprises:
a prior data packet (“PDP”);
wherein the PDP has a PTS that is less than the PTSmax;
a start data packet (“SDP”) identified by a starting PTS (“PTSS”);
a max data packet (“MDP”) occurring in the data stream after the SDP;
wherein the MDP is an MPEG I frame and has an MDP PTS (“MDP PTS”) substantially equal to the PTSmax for the data stream; and
wherein the PDP occurs, in the data stream, prior to the MDP:
a next data packet (“NDP”) occurring in the data stream after the MDP and identified by a loop over PTS (“PTSLO”);
wherein PTSLO=PTSmin=0; and
wherein the PTSLO is an MPEG I frame and has an NDP PTS (“NDP PTS”) substantially equal to the PTSmin for the data stream; and
a later data packet (“LDP”);
wherein the LDP occurs, in the data stream, after the NDP; and
wherein the LDP has a PTS that is greater than the PTSLO;
an end data packet (“EDP”) occurring in the data stream after the NDP and identified by an ending PTS (“PTSE”);
upon receiving the SDP, associating the SDP with a first index value (“A”);
monitoring the data stream for a presence of the MDP;
associating the MDP with a second index value (“B”);
associating the NDP with a third index value (“C”);
associating the EDP with a fourth index value (“D”);
comparing the MDP-PTS with the PTSE; and
determining timestamping of the plurality of MPEG data packets restarted in the data stream when the MDP-PTS is greater than the PTSE.

### Claim 2

A process comprising:
receiving a data stream, for a given content, comprising a plurality of Motion Picture Experts Group (“MPEG”) data packets;
wherein each of the plurality of MPEG data packets is associated with a Presentation Time Stamp (“PTS”);
wherein the PTS for a given MPEG data packet varies between a minimum presentation timestamp value (“PTSmin”) and a maximum presentation timestamp value (“PTSmax”);
wherein the data stream further comprises:
a start data packet (“SDP”) identified by a starting PTS (“PTSS”);
a max data packet (“MDP”) occurring in the data stream after the SDP;
wherein the MDP is an MPEG I frame and has an MDP PTS (“MDP PTS”) substantially equal to the PTSmax for the data stream;
a next data packet (“NDP”) occurring in the data stream after the MDP and identified by a loop over PTS (“PTSLO”);
wherein the PTSLO is an MPEG I frame and has an NDP PTS (“NDP PTS”) substantially equal to the PTSmin for the data stream; and
an end data packet (“EDP”) occurring in the data stream after the NDP and identified by an ending PTS (“PTSE”);
upon receiving the SDP, associating the SDP with a first index value (“A”);
monitoring the data stream for a presence of the MDP;
associating the MDP with a second index value (“B”);
associating the NDP with a third index value (“C”); and
associating the EDP with a fourth index value (“D”);
comparing the MDP-PTS with the PTSE; and
determining timestamping of the plurality of MPEG data packets restarted in the data stream when the MDP-PTS is greater than the PTSE.

### Claim 3 (depends on 2)

The process of claim 2,
wherein A, B, C and D are integers; and
wherein A<B<C<D.

### Claim 4 (depends on 2)

The process of claim 2,
wherein the data stream further comprises:
a prior data packet (“PDP”);
wherein the PDP occurs, in the data stream, prior to the MDP; and
wherein the PDP has a PTS that is less than the PTSmax; and
a later data packet (“LDP”);
wherein the LDP occurs, in the data stream, after the NDP; and
wherein the LDP has a PTS that is greater than the PTSLO.

### Claim 5 (depends on 4)

The process of claim 4,
wherein PTSLO=PTSmin.

### Claim 6

A process comprising:
receiving a data stream, for a given content, comprising a plurality of Motion Picture Experts Group (“MPEG”) data packets;
wherein each of the plurality of MPEG data packets is associated with a Presentation Time Stamp (“PTS”);
wherein the PTS for a given MPEG data packet varies between a minimum presentation timestamp value (“PTSmin”) and a maximum presentation timestamp value (“PTSmax”);
wherein the data stream further comprises:
a start data packet (“SDP”) identified by a starting PTS (“PTSS”);
a max data packet (“MDP”) occurring in the data stream after the SDP;
wherein the MDP is an MPEG I frame and has an MDP PTS (“MDP PTS”) substantially equal to the PTSmax for the data stream;
a next data packet (“NDP”) occurring in the data stream after the MDP and identified by a loop over PTS (“PTSLO”);
wherein the PTSLO is an MPEG I frame and has an NDP PTS (“NDP PTS”) substantially equal to the PTSmin for the data stream; and
an end data packet (“EDP”) occurring in the data stream after the NDP and identified by an ending PTS (“PTSE”);
upon receiving the SDP, associating the SDP with a first index value (“A”);
monitoring the data stream for a presence of the MDP;
associating the MDP with a second index value (“B”);
associating the NDP with a third index value (“C”);
associating the EDP with a fourth index value (“D”);
comparing the MDP-PTS with the NDP-PTS; and
determining timestamping of the plurality of MPEG data packets restarted in the data stream when the MDP-PTS is greater than the NDP-PTS.

### Claim 7 (depends on 6)

The process of claim 6,
wherein the first index value (A), the second index value (B), the third index value (C), and the fourth index value (D) are stored in a data store, in an index file.

### Claim 8 (depends on 6)

The process of claim 6,
wherein, when timestamping of the plurality of MPEG data packets restarted in the data stream:
PTSS≥PTSmin;
PTSE≥PTSLO;
PTSS≤PTSmax; and
PTSE≤PTSmax.

### Claim 9 (depends on 6)

The process of claim 6,
wherein, when timestamping of the plurality of MPEG data packets did not restart in the data stream:
PTSLO≤PTSS;
PTSS<PTSE; and
PTSE≤PTSmax.

### Claim 10

A process comprising:
receiving a data stream, for a given content, comprising a plurality of Motion Picture Experts Group (“MPEG”) data packets;
wherein each of the plurality of MPEG data packets is associated with a Presentation Time Stamp (“PTS”);
wherein the PTS for a given MPEG data packet varies between a minimum presentation timestamp value (“PTSmin”) and a maximum presentation timestamp value (“PTSmax”);
wherein the data stream further comprises:
a start data packet (“SDP”) identified by a starting PTS (“PTSS”);
a max data packet (“MDP”) occurring in the data stream after the SDP;
wherein the MDP is an MPEG I frame and has an MDP PTS (“MDP PTS”) substantially equal to the PTSmax for the data stream;
a next data packet (“NDP”) occurring in the data stream after the MDP and identified by a loop over PTS (“PTSLO”);
wherein the PTSLO is an MPEG I frame and has an NDP PTS (“NDP PTS”) substantially equal to the PTSmin for the data stream; and
an end data packet (“EDP”) occurring in the data stream after the NDP and identified by an ending PTS (“PTSE”);
upon receiving the SDP, associating the SDP with a first index value (“A”);
monitoring the data stream for a presence of the MDP;
associating the MDP with a second index value (“B”);
associating the NDP with a third index value (“C”);
associating the EDP with a fourth index value (“D”);
receiving a request to apply at trick-play operation to the plurality of MPEG data packets;
comparing the MDP-PTS to the PTSE;
determining, when MDP-PTS is greater than PTSE, timestamping has restarted for the plurality of MPEG data packets in the data stream; and
applying the trick-play operation to the plurality of MPEG data packets by:
calculating a new PTS (“PTSN”) at which to continue presentation of the given content;
wherein the PTSN identifies one of the plurality of MPEG data packets received in the data stream.

### Claim 11 (depends on 10)

The process of claim 10,
wherein the applying of the trick-play operation, when timestamping has restarted, further comprises:
comparing the PTSN to the PTSLO;
when the PTSN is less than the PTSLO:
subtracting the PTSLO from PTSN to obtain an updated new timestamp value (“PTSN2”);
second determining whether one of the PTSN and the PTSN2 is less than the PTSS;
when the fourth determining results in a no,
searching, the data stream, for one of the PTSN and the PTSN2 between the PTSS and PTSmax; and
when the fourth determining results in a yes,
searching, the data stream, for one of PTSN and PTSN2 between PTSLO and PTSE.

### Claim 12 (depends on 10)

The process of claim 10,
wherein the request is for a forward seek in the given content; and
wherein the trick-play operation includes determining:
PTSN=PTSS+Q*Z;
wherein Q is a point located within the data stream; and
wherein Z is an increment rate for data stream for the given content.

### Claim 13 (depends on 10)

The process of claim 10, further comprising:
outputting for display on a buffer bar on a presentation device a current play position (“PTSP”) of the given content;
wherein PTSP=(PTSmax−PSTS)/Z)+Q/Z when PSTN<PTSS; and
wherein PTSP=(PTSN−PTSS)/Z when PTSN>PTSS;
wherein Q is a point located within the data stream; and
wherein Z is an increment rate for data stream for the given content.

### Claim 14

A process comprising:
receiving a data stream, for a given content, comprising a plurality of Motion Picture Experts Group (“MPEG”) data packets;
wherein each of the plurality of MPEG data packets is associated with a Presentation Time Stamp (“PTS”);
wherein the PTS for a given MPEG data packet varies between a minimum presentation timestamp value (“PTSmin”) and a maximum presentation timestamp value (“PTSmax”);
wherein the data stream further comprises:
a start data packet (“SDP”) identified by a starting PTS (“PTSS”);
a max data packet (“MDP”) occurring in the data stream after the SDP;
wherein the MDP is an MPEG I frame and has an MDP PTS (“MDP PTS”) substantially equal to the PTSmax for the data stream;
a next data packet (“NDP”) occurring in the data stream after the MDP and identified by a loop over PTS (“PTSLO”)
wherein the PTSLO is an MPEG I frame and has an NDP PTS (“NDP PTS”) substantially equal to the PTSmin for the data stream; and
an end data packet (“EDP”) occurring in the data stream after the NDP and identified by an ending PTS (“PTSE”):
upon receiving the SDP, associating the SDP with a first index value (“A”);
monitoring the data stream for a presence of the MDP;
associating the MDP with a second index value (“B”);
associating the NDP with a third index value (“C”);
associating the EDP with a fourth index value (“D”);
receiving a request to apply at trick-play operation to the plurality of MPEG data packets;
wherein the request is for a backward seek in the given content;
comparing the MDP-PTS to the PTSE;
determining, when MDP-PTS is greater than PTSE, timestamping has restarted for the plurality of MPEG data packets in the data stream; and
applying the trick-play operation to the plurality of MPEG data packets by:
setting PTSN=PTSS−(Q*Z)when PTSN>Q*Z;
setting PTSN=PTSLO+PTSS−(Q*Z)when PTSN≤Q*Z;
wherein Q is a point located within the data stream; and
wherein Z is an increment rate for data stream for the given content; and
calculating a new PTS (“PTSN”) at which to continue presentation of the given content; and
wherein the PTSN identifies one of the plurality of MPEG data packets received in the data stream.

### Claim 15 (depends on 14)

The process of claim 14,
wherein Z=90 kHz.

### Claim 16

A computer readable medium storing non-transient computer instructions, which when executed by a processor instruct a server to perform first operations with respect to a plurality of motion picture experts group (“MPEG”) data packets received in a data stream, for a given content, the first operations comprising:
receiving in the data stream, for the given content, the plurality of MPEG data packets;
wherein each of the plurality of MPEG data packets is associated with a Presentation Time Stamp (“PTS”);
wherein the PTS for a given MPEG data packet varies between a minimum presentation timestamp value (“PTSmin”) and a maximum presentation timestamp value (“PTSmax”);
wherein the data stream further comprises:
a start data packet (“SDP”) identified by a starting PTS (“PTSS”);
a max data packet (“MDP”) occurring in the data stream after the SDP;
wherein the MDP is an MPEG I frame and has an MDP PTS (“MDP PTS”) substantially equal to the PTSmax for the data stream;
a next data packet (“NDP”) occurring in the data stream after the MDP and identified by a loop over PTS (“PTSLO”);
wherein the PTSLO is an MPEG I frame and has an NDP PTS (“NDP PTS”) substantially equal to the PTSmin for the data stream; and
an end data packet (“EDP”) occurring in the data stream after the NDP and identified by an ending PTS (“PTSE”);
upon receiving the SDP, associating the SDP with a first index value (“A”);
monitoring the data stream for a presence of the MDP;
associating the MDP with a second index value (“B”);
associating the NDP with a third index value (“C”);
associating the EDP with a fourth index value (“D”);
receiving a request to apply a trick-play operation to the plurality of MPEG data packets;
comparing the MDP-PTS to the PTSE;
determining, when MDP-PTS is greater than PTSE, timestamping has restarted for the plurality of MPEG data packets in the data stream; and
applying the trick-play operation to the plurality of MPEG data packets by:
calculating a new PTS (“PTSN”) at which to continue presentation of the given content;
wherein the PTSN identifies one of the plurality of MPEG data packets received in the data stream.

### Claim 17 (depends on 16)

The computer readable medium of claim 16,
wherein the request is for a forward seek in the given content; and
wherein the trick-play operation includes determining:
PTSN=PTSS+Q*Z;
wherein Q is a point located within the data stream; and
wherein Z is an increment rate for data stream for the given content.

### Claim 18 (depends on 17)

The computer readable medium of claim 17,
wherein the request is for a backward seek in the given content; and
wherein the trick play operations include:
setting PTSN=PTSS−(Q*Z)when PTSN>Q*Z, and
setting PTSN=PTSLO+PTSS−(Q*Z)when PTSN≤Q*Z;
wherein Q is a point located within the data stream; and
wherein Z is an increment rate for data stream for the given content.
