IP Library Granted Patent US 12,217,772
Granted Patent B2
US 12,217,772 · App. 18/221,154 · Granted Feb 4, 2025

Remote operation handling on PTS restart

Inventors: Vimalraj Ganesan (Kaikondrahalli, IN); Deepak Sharma (Mahadevapura, IN); Devaraja Huvinahalli (Jewargi, IN)
Assignee: DISH Network Technologies India Private Ltd.
G11B27/34H04N21/8547
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,217,772
App. No.
18/221,154
Granted
Feb 4, 2025
Kind
B2
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 (197)

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.

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.

3. The process of claim 2 ,

wherein A, B, C and D are integers; and

wherein A<B<C<D.

4. 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.

5. The process of claim 4 ,

wherein PTSLO=PTSmin.

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.

7. 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.

8. 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.

9. 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.

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.

11. 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.

12. 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.

13. 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=( PTS max−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.

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.

15. The process of claim 14 ,

wherein Z=90 kHz.

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.

17. 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.

18. 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.

Assignments (2)
CHANGE OF NAME Recorded Jul 12, 2023
From: SLING MEDIA PVT LTD
To: DISH NETWORK TECHNOLOGIES INDIA PRIVATE LIMITED
Reel/Frame 064230/0458 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2023
From: GANESAN, VIMALRAJ; SHARMA, DEEPAK; HUVINAHALLI, DEVARAJA
To: SLING MEDIA PVT LTD
Reel/Frame 064266/0822 →
Continuity (2)
Continuation 17734278 · May 2, 2022
Related Publication 20230352059A1 · Nov 2, 2023
References Cited (8)
US 6701528B1 · Arsenault et al. · 2004 [cited by applicant]
US 20120155833A1 · Narayanan · 2012 [cited by examiner]
US 20140099079A1 · Narayanan et al. · 2014 [cited by applicant]
US 20140351455A1 · McCormick et al. · 2014 [cited by applicant]
US 20170045584A1 · Hopkins et al. · 2017 [cited by applicant]
US 20170055045A1 · Li · 2017 [cited by applicant]
US 20220417620A1 · Zheng et al. · 2022 [cited by applicant]
Understanding Timelines within MPEG Standards, Lourdes Beloqui Yuste, Fernando Boronat, Mario Montagud, and Hugh Melvin, IEEE Communications Surveys & Tutorials, vol. XX, No. XX, XXXXXX 2015, pp. 1-32, as downloaded fro… [cited by applicant]