IP Library Granted Patent US 11,741,998
Granted Patent B1
US 11,741,998 · App. 17/734,278 · Granted Aug 29, 2023

Remote operation handling on PTS restart

Inventors: Vimalraj Ganesan (Kaikondrahalli, IN); Deepak Sharma (Mahadevapura, IN); Devaraja Huvinahalli (Jewargi, IN)
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 11,741,998
App. No.
17/734,278
Granted
Aug 29, 2023
Kind
B1
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 (146)

1. A process comprising:

receiving a data stream of a plurality of data packets for a given content;

wherein each of the plurality of data packets are identifiable by a timestamp;

wherein the timestamps vary between a minimum timestamp value (PTSmin) and a maximum timestamp value (PTSmax);

wherein, when PTSmax is reached, a loop over timestamp value (PTSLO) for the next data packet is restarted at substantially equal to PTSmin;

first determining whether one of the timestamps, for the plurality of data packets in the data stream, have restarted; and

generating a loop over index file when one of the timestamps has restarted;

wherein the loop over index file associates a first timestamp value for a first data packet in the plurality of data packets with a first index value (A);

wherein the loop over index file associates a second timestamp value for a second data packet in the plurality of data packets with a second index value (B);

wherein the loop over index file associates a third timestamp value for a third data packet in the plurality of data packets with a third index value (C);

wherein the loop over index file associates a fourth timestamp value for a fourth data packet in the plurality of data packets with a fourth index value (D);

wherein A, B, C and D are integers;

wherein A<B<C<D; and

wherein the first determining further comprises:

comparing the second timestamp value with the third timestamp value; and

determining the timestamps have restarted when the third timestamp value is less than the second timestamp value.

2. The process of claim 1 ,

wherein the second timestamp value is substantially equal to the maximum timestamp value (PTSmax); and

wherein the third timestamp value is substantially equal to the minimum timestamp value (PTSmin).

3. The process of claim 1 ,

wherein the index file associates the first timestamp value with a starting timestamp parameter;

wherein the index file associates the second timestamp value with a maximum timestamp parameter;

wherein the index file associates the third timestamp value with a loop over timestamp parameter; and

wherein the index file associates the fourth timestamp value with an ending timestamp parameter.

4. A process comprising:

receiving a data stream of a plurality of data packets for a given content;

wherein each of the plurality of data packets are identifiable by a timestamp;

wherein the timestamps vary between a minimum timestamp value (PTSmin) and a maximum timestamp value (PTSmax);

wherein, when PTSmax is reached, a loop over timestamp value (PTSLO) for the next data packet is restarted at substantially equal to PTSmin;

first determining whether one of the timestamps, for the plurality of data packets in the data stream, have restarted; and

generating a loop over index file when one of the timestamps has restarted;

wherein the loop over index file associates a first timestamp value for a first data packet in the plurality of data packets with a first index value (A);

wherein the loop over index file associates a second timestamp value for a second data packet in the plurality of data packets with a second index value (B);

wherein the loop over index file associates a third timestamp value for a third data packet in the plurality of data packets with a third index value (C);

wherein the loop over index file associates a fourth timestamp value for a fourth data packet in the plurality of data packets with a fourth index value (D);

wherein A, B, C and D are integers;

wherein A<B<C<D; and

wherein the first determining further comprises:

comparing the second timestamp value with the fourth timestamp value; and

determining the timestamps have restarted when the second timestamp value is greater than the fourth timestamp value.

5. The process of claim 4 ,

wherein the data stream is encoded pursuant to a Motion Pictures Experts Group (MPEG) standard; and

wherein the timestamps are presentation timestamps.

6. The process of claim 4 ,

wherein each of the plurality of data packets are MPEG encoded I-frame data packets.

7. A process comprising:

receiving a data stream of a plurality of data packets for a given content;

wherein each of the plurality of data packets are identifiable by a timestamp;

wherein the timestamps vary between a minimum timestamp value (PTSmin) and a maximum timestamp value (PTSmax);

wherein, when PTSmax is reached, a loop over timestamp value (PTSLO) for the next data packet is restarted at substantially equal to PTSmin;

first determining whether one of the timestamps, for the plurality of data packets in the data stream, have restarted; and

generating a loop over index file when one of the timestamps has restarted;

wherein the loop over index file associates a first timestamp value for a first data packet in the plurality of data packets with a first index value (A);

wherein the loop over index file associates a second timestamp value for a second data packet in the plurality of data packets with a second index value (B);

wherein the loop over index file associates a third timestamp value for a third data packet in the plurality of data packets with a third index value (C);

wherein the loop over index file associates a fourth timestamp value for a fourth data packet in the plurality of data packets with a fourth index value (D);

wherein A, B, C and D are integers;

wherein A<B<C<D; and

wherein the first determining further comprises:

comparing the third timestamp value with the first timestamp value; and

determining the timestamps have restarted when the third timestamp value is less than the first timestamp value.

8. The process of claim 7 ,

wherein the data stream is encoded pursuant to a Motion Pictures Experts Group (MPEG) standard; and

wherein the timestamps are presentation timestamps.

9. The process of claim 7 ,

wherein each of the plurality of data packets are MPEG encoded I-frame data packets.

10. A process comprising:

receiving a data stream of a plurality of data packets for a given content;

wherein each of the plurality of data packets are identifiable by a timestamp;

wherein the timestamps vary between a minimum timestamp value (PTSmin) and a maximum timestamp value (PTSmax);

wherein, when PTSmax is reached, a loop over timestamp value (PTSLO) for the next data packet is restarted at substantially equal to PTSmin;

first determining whether one of the timestamps, for the plurality of data packets in the data stream, have restarted; and

generating a loop over index file when one of the timestamps has restarted;

wherein the loop over index file associates a first timestamp value for a first data packet in the plurality of data packets with a first index value (A);

wherein the loop over index file associates a second timestamp value for a second data packet in the plurality of data packets with a second index value (B);

wherein the loop over index file associates a third timestamp value for a third data packet in the plurality of data packets with a third index value (C);

wherein the loop over index file associates a fourth timestamp value for a fourth data packet in the plurality of data packets with a fourth index value (D);

wherein A, B, C and D are integers;

wherein A<B<C<D;

wherein the data stream is encoded in accordance with a Motion Pictures Expert Group (MPEG) encoding standard;

wherein the plurality of data packets in the data stream includes MPEG encoded I-frames, B frames and P frames;

wherein the first data packet is a first MPEG encoded I-frame data packet;

wherein the second data packet is a second MPEG encoded I-frame data packet;

wherein the third data packet is a third MPEG encoded I-frame data packet;

wherein the fourth data packet is a fourth MPEG encoded I-frame data packet;

wherein second timestamp is greater to the third timestamp; and

wherein the third MPEG encoded I-frame data packet is provided in the data stream, after the second MPEG encoded I-frame data packet and as an immediately next MPEG encoded I-frame data packet.

11. A process comprising:

receiving a data stream of a plurality of data packets for a given content;

wherein each of the plurality of data packets are identifiable by a timestamp;

wherein the timestamps vary between a minimum timestamp value (PTSmin) and a maximum timestamp value (PTSmax);

wherein, when PTSmax is reached, a loop over timestamp value (PTSLO) for the next data packet is restarted at substantially equal to PTSmin;

first determining whether one of the timestamps, for the plurality of data packets in the data stream, have restarted; and

generating a loop over index file when one of the timestamps has restarted

receiving a request to execute a trick-play mode of operation with respect to the plurality of data packets;

second determining a new timestamp value (PTSN), for another data packet included with the plurality of data packets in the data stream, at which to continue presentation of the given content;

comparing the PTSN to PTSLO;

when PTSN is less than PTSLO, subtracting the PTSLO from PTSN to obtain an updated new timestamp value PTSN 2 ;

third determining whether a timestamp restart event is indicated by a timestamp associated with the plurality of data packets;

when the third determining results in a no, searching for PTSN between a starting timestamp (PTSS) for a first data packet provided in the data stream and an ending timestamp (PTSE) for a last data packet provided in the data stream;

when the timestamp restart event is indicated,

fourth determining whether one of PTSN and PTSN 2 is less than PTSS;

when the fourth determining results in a no, searching for one of PTSN and PTSN 2 between the PTSS and PTSmax; and

when the fourth determining results in a yes, searching for one of PTSN and PTSN 2 between PTSLO and PTSE.

12. The process of claim 11 ,

wherein, when the trick-play operation is a forward seek:

PTSN=PTSS+ Q*Z,

Q is a point located within the data stream; and

Z is an increment rate for the given content.

13. The process of claim 12 ,

wherein, when the trick-play operation is a backward seek:

If: PTSN> Q*Z,

Then: PTSN=PTSS−( Q*Z ),

Else: PTSN−PTSLO+PTSS−( Q*Z ).

14. The process of claim 13 ,

wherein Z=90 kHz.

15. The process of claim 14 ,

wherein the data stream is encoded pursuant to a Motion Pictures Experts Group (MPEG) standard; and

wherein the timestamps are presentation timestamps.

16. The process of claim 13 ,

wherein the loop over index file associates a first timestamp value for a first data packet in the plurality of data packets with a first index value (A);

wherein the loop over index file associates a second timestamp value for a second data packet in the plurality of data packets with a second index value (B);

wherein the loop over index file associates a third timestamp value for a third data packet in the plurality of data packets with a third index value (C); and

wherein the loop over index file associates a fourth timestamp value for a fourth data packet in the plurality of data packets with a fourth index value (D).

17. The process of claim 16 ,

wherein the loop over index file further associates the first index value (A) with a PTSS parameter;

wherein the loop over index file further associates the second index value (B) with a PTSmax parameter;

wherein the loop over index file further associates the third index value (C) with a PTSLO parameter;

wherein the loop over index file further associates the fourth index value (D) with a PTSE parameter.

18. The process of claim 16 ,

wherein the A<B<C<D; and

wherein the process further comprises:

organizing the plurality of data packets, during at least one of the trick-play operation and a normal operation in numerical order, from smallest to largest, of the first index value through the fourth index value.

19. A server comprising:

a data store storing non-transient computer instructions; and

a processor, coupled to the data store, executing the non-transient computer instructions to instantiate a presentation timestamp (PTS) restart (PTSrs) engine;

wherein the PTSrs engine generates a loop over index file upon a PTSrs occurring in a data stream comprising a plurality of data packets;

wherein each of the plurality of data packets includes a header identifying a PTS for a given data packet;

wherein the PTS for a data packet occurring substantially immediately before a PTSrs occurs is identified, in a header for the data packet, with a PTS value substantially equal to a maximum PTS value (PTSmax);

wherein the PTS for a data packet occurring substantially immediately after the PTSrs occurs, is identified, in its header, with a loop over PTS value (PTSLO) substantially equal to a minimum PTS value (PTSmin);

wherein PTSmax is determined based on a number of bits utilized to identify the PTS in the header; and

wherein PTSmin is zero; and

wherein the PTSrs orders presentation of the plurality of data packets during trick-play operations based upon a sequence of index values associated with, in order, a first index value associated with a starting PTS (PTSS) and a first data packet in the data stream, a second index value associated with PTSmax and occurring immediately prior to the PTSrs; a third index value associated with the PTSLO and occurring immediately after the PTSrs; and a fourth data value associated with an ending PTS (PTSE) and a last data packet provided in the data stream.

20. The server of claim 19 ,

wherein the plurality of data packets are encoded pursuant to a Motion Pictures Expert Group (MPEG) encoding standard; and

wherein the PTSs are MPEG compliant.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2024
From: HUVINAHALLI, DEVARAJA
To: SLING MEDIA PVT LTD
Reel/Frame 069302/0261 →
CHANGE OF NAME Recorded Aug 18, 2022
From: SLING MEDIA PVT. LTD.
To: DISH NETWORK TECHNOLOGIES INDIA PRIVATE LIMITED
Reel/Frame 060840/0563 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2022
From: GANESAN, VIMALRAJ; SHARMA, DEEPAK
To: SLING MEDIA PVT. LTD.
Reel/Frame 059841/0780 →
Cited By (1)
US 12,250,133