System for digital time shifting and method thereof
Abstract
A multiplexed packetized data stream carrying real-time multimedia programs is received at a first hardware demultiplexer. Based on a user input, a video and timing portion of a program associated with the multiplexed packetized data stream can be stored for subsequent display. One type of subsequent display is time shifted display, where the stored portion of the program is played back while new portions of the program are being stored. During time shifted play back, a second hardware demultiplexer can be used, so that one demultiplexer stores new data and maintains a current clock value while the other decodes and displays the stored data.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method comprising:
receiving a multiplexed packetized data stream that carries real-time multimedia programs;
during a first time:
storing a first portion of the packetized data stream representing video data and timing data of a program;
setting a system time indicator to a stored system time value before storing the first portion of the packetized data stream, wherein the stored system time value is based on a portion of the timing data of the first portion of the packetized data stream; and
during a second time:
incrementing the system time indicator;
retrieving the video data of the first portion of the packetized data stream for video decoding; and
storing a second portion of the packetized data stream representing video data and timing data of the program.
2. The method of claim 1 , wherein
storing the first portion of the packetized data stream includes the first portion of the packetized data stream representing audio data of the program;
storing the second portion of the packetized data stream includes the second portion of the packetized data stream representing audio data of the program;
the method further including:
during the second time:
accessing the audio data of the first portion of the packetized data stream for audio playback.
3. The method of claim 1 , wherein the multiplexed packetized data steam is a multiplexed packetized data stream that substantially meets an MPEG2 specification.
4. The method of claim 3 , wherein storing the first portion includes storing transport stream packets.
5. The method of claim 4 , wherein storing the first portion includes:
determining transport stream packets containing data associated with the program; and
storing the transport stream packets containing data associated with the program after the step of determining.
6. The method of claim 3 , wherein storing the first portion includes storing packetized elementary stream (PES) packets.
7. The method of claim 6 , wherein storing the first portion includes:
determining transport stream packets containing data associated with the program; and
storing PES packets based upon the transport stream packets containing data associated with the program after the step of determining.
8. The method of claim 1 , wherein storing the first portion of the transport stream includes the timing data including synchronization information used for playing the program back at a real time program bit-rate.
9. The method of claim 1 , wherein incrementing the system time indicator includes incrementing the system time indicator based upon a signal generated from multiplexed packetized data stream data received after the first time.
10. The method of claim 1 further comprising:
decoding the video data of the first portion to provide a decoded video stream.
11. The method of claim 10 , wherein receiving a multiplexed packetized data stream and decoding the video data are performed by an integrated semiconductor device.
12. The method of claim 10 further comprising:
providing the decoded video stream for display at a play back rate.
13. The method of claim 12 wherein the play back rate is a real time rate.
14. The method of claim 12 , wherein providing the decoded video stream for display includes determining the play back rate based upon clock recovery data of the first portion of the transport stream, wherein the play back rate varies depending upon a rate at which the first portion of the transport stream data is provided to a decoder during the step of decoding.
15. The method of claim 12 wherein providing the decoded video stream for display includes determining the play back rate based upon timing data received from the multiplexed packetized data stream after the first time.
16. The method of claim 15 , wherein the timing data received from the multiplexed packetized data stream after the first time is associated with a current real-time data stream.
17. The method of claim 12 , wherein the play back rate is faster than a real time rate.
18. A method comprising:
determining a mode of operation; during a first mode of operation:
receiving a multiplexed packetized data stream at a first demultiplexer;
selecting a first program from the multiplexed packetized data stream;
decoding a video portion of the first program for display;
during a second mode of operation:
receiving the multiplexed packetized data stream at the first demultiplexer;
selecting the first program from the multiplexed packetized data stream;
storing the first program;
during a third mode of operation:
receiving the multiplexed packetized data stream at the first demultiplexer;
selecting the first program from the multiplexed packetized data stream;
storing a first program portion of the first program;
providing the first program portion to a second demultiplexer;
selecting at the second demultiplexer a video portion of the first program portion;
decoding the video portion of the first program portion for display; and
storing a second program portion of the first program simultaneous to the step of decoding.
19. The method of claim 18 , 28 further comprising:
during the third mode of operation:
providing the second program portion to a the second demultiplexer;
selecting at by the second demultiplexer a video portion of the second program portion; and
decoding the video portion of the second program portion for display.
20. The method of claim 18 28 further comprising:
during the third mode of operation:
incrementing a counter associated with the second demultiplexer based upon a signal generated using a live feed of the multiplexed packetized data stream as it is received at the first demultiplexer.
21. A system comprising:
a first input node to receive a multiplexed packetized data stream that carries real-time multimedia programs; a first transport stream demultiplexer having an input coupled to the first input node to select packets of data having a predefined packet identifier and an output to provide the select packets of data; a storage device having a data port coupled to the output of the first transport stream demultiplexer to receive the select packets, wherein the storage device is to store the select packets; a first clock recovery module having an input coupled to the first input node, and an output, wherein the first clock recovery module is to generate a clock at the output based upon received timing information transmitted in packets of the multiplexed packetized data stream before the select packets are stored in the storage device; and a decoder having a first input coupled to the output of the first clock recovery module to receive the clock, a second input coupled the data port of the storage device to receive the select packets, and an output to provide decoded real-time data.
22. The system of claim 21 , wherein the first clock recovery module further generates the clock based upon data transmitted in packets of a currently received multiplexed packetized data stream.
23. The system of claim 21 , wherein the first clock recovery module further generates the clock based upon multiplexed packetized data stream data stored in the storage device.
24. The system of claim 21 , wherein the decoder includes a video decoder.
25. The system of claim 24 , wherein the decoder includes an audio decoder.
26. The system of claim 21 further comprising:
a second transport stream demultiplexer having an input coupled to the data port of the storage device.
27. The system of claim 26 further comprising;
a second clock recovery module having an input coupled to the data port of the storage device to allow STC setting based on a stored system time.
28. A method comprising:
determining a mode of operation; during a first mode of operation:
receiving a multiplexed packetized data stream at a first demultiplexer;
selecting by the first demultiplexer a first program from the multiplexed packetized data stream;
decoding a video portion of the first program for display;
during a second mode of operation:
receiving the multiplexed packetized data stream at the first demultiplexer;
selecting by the first demultiplexer the first program from the multiplexed packetized data stream;
storing the first program;
during a third mode of operation:
receiving the multiplexed packetized data stream at the first demultiplexer;
selecting by the first demultiplexer the first program from the multiplexed packetized data stream;
storing a first program portion of the first program;
providing the first program portion to a second demultiplexer;
selecting by the second demultiplexer a video portion of the first program portion;
decoding the video portion of the first program portion for display; and
storing a second program portion of the first program simultaneous to the step of decoding, wherein the first and second program portions are different portions of the first program.
29. The method of claim 19, further comprising:
during the third mode of operation:
retrieving the first program portion from storage prior to providing the second program portion to the second demultiplexer.
30. The method of claim 28, wherein a presentation time stamp of the first program portion is different than a presentation time stamp of the second program portion.
31. The method claim 28, wherein the first demultiplexer is a hardware demultiplexer.
32. The method of claim 28, wherein the second demultiplexer is a hardware demultiplexer.
33. The method of claim 28, wherein the multiplexed packetized data stream includes a plurality of real-time multimedia programs.
34. The method of claim 33, wherein the first program is selected from the plurality of real-time multimedia programs.
35. The method of claim 28, wherein the third mode of operation is triggered based on a user input.
36. The method of claim 28, further comprising:
during the third mode of operation:
generating a clock, at a clock recovery module, based upon timing information transmitted in the multiplexed packetized data stream.
37. The method of claim 36, wherein the clock is generated at the clock recovery module prior to storing the first program portion.
38. The method of claim 37, further comprising determining a playback rate for the first program portion based upon the generated clock.
39. The method of claim 38, wherein decoding the video portion of the first program includes:
decoding, at the playback rate, the video portion of the first program portion for display.
40. The method of claim 39, wherein the playback rate is a real time rate.
41. The method of claim 39, wherein the playback rate is faster than a real time rate.
42. The method of claim 37, further comprising determining a playback rate for the first program portion based upon a rate at which the first program portion is provided to a decoder during decoding of the video portion of the first program.
43. The method of claim 36, wherein the timing information includes synchronization information used for playing the first program back at a real time rate.
44. The method of claim 28, further comprising:
during the third mode of operation:
retrieving the first program portion from storage prior to providing the first program portion to the second demultiplexer.
45. The method of claim 28, wherein storing the first program portion during the third mode of operation further comprises:
storing audio data of the first program portion.
46. The method of claim 45, further comprising:
during the third mode of operation:
accessing, when the first program portion is decoded for display, the audio data for audio playback.
47. The method of claim 28, wherein, during all three modes of operation, selecting the first program from the multiplexed packetized data stream comprises performing parsing and extraction operations to select the first program.
48. The method of claim 28, wherein, during all three modes of operation, selecting the first program from the multiplexed packetized data stream comprises identifying packet identifiers.
49. The method of claim 28, wherein, during the third mode of operation, decoding comprises decoding at either a normal playback rate or a faster than normal rate.
50. The method of claim 49, wherein the faster than normal rate comprises a user defined fast forward speed.
51. The method of claim 28, wherein, during the first mode of operation, the multiplexed packetized data stream is not stored.
52. The method of claim 28, wherein, during the third mode of operation, each storing step comprises storing full stream packets.
53. The method of claim 28 wherein, during the third mode of operation, the decoding comprises restoring time base information from the retrieved first program portion.
54. The method claim 28 wherein, during the second mode of operation, the storing comprises storing the first program portion in large blocks.
55. The method of claim 28 wherein, during the first and third modes of operation, decoding the video portion of the first program for display comprises decoding video packets and further comprises decoding audio packets.
56. The method of claim 28 wherein, during the first and third modes of operation, decoding the video portion of the first program for display further comprises monitoring for real-time events.
57. The method of claim 28, further comprising, during the third mode of operation, displaying the decoded video portion of the first program portion simultaneous to the step of storing the second program portion of the first program.
58. The method of claim 28, wherein storing the first program portion includes storing transport stream packets.
59. The method of claim 28, wherein storing the first program portion includes storing packetized elementary stream (PES) packets.
60. The method of claim 28, wherein the first demultiplexer is a transport stream demultiplexer.
61. The method of claim 28, wherein the third mode is a part-time time-shifting mode.
62. The method of claim 28, wherein each mode of operation is performed using a television equipped with a digital television application.
63. The method of claim 28, wherein each mode of operation is performed using a computer equipped with a digital television application.Join the waitlist — get patent alerts
Track USRE47054E — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.