Server-side media stream manipulation for emulation of media playback functions
First Claim
1. A method for enabling, over a network, rate-altering media playback functions at a frame rate expected by a rendering device, the method comprisingreceiving a command at a media server over the network from the rendering device to initiate a selected rate-altering media playback function;
- accessing, by the media server, an original stream of frames having sequential frame timestamps;
generating an intermediate series of frames at the media server for transmission to the rendering device over the network by deleting frames having frame timestamps from the original stream of frames in excess of the frame rate expected by the rendering device when the selected rate-altering media playback function corresponds to an increased play rate;
generating an intermediate series of frames at the media server for transmission to the rendering device over the network by inserting one or more intermediate frames that do not have timestamps into the original stream of frames when the selected rate-altering media playback function corresponds to a decreased play rate and insufficient frames originally exist in the original stream of frames to fulfill the frame rate expected by the rendering device;
detecting discontinuity in frame timestamps between frames in the intermediate series of frames with respect to a timestamp increment expected by the rendering device, the detected discontinuity in the frame timestamps caused by deletion of frames from the original stream of frames when the selected rate-altering media playback function corresponds to the increased play rate and caused by insertion of one or more intermediate frames into the original stream of frames when the selected rate-altering media playback function corresponds to the decreased play rate; and
providing the intermediate series of frames with sequential frame timestamps separated by the timestamp increment expected by the rendering device before transmission of frames in the intermediate series of frames over the network to account for the detected discontinuity with respect to the frame rate expected by the rendering device by;
adjusting frame timestamps of all frames in the intermediate series of frames having frame timestamps according to a frame timestamp of a frame from the original stream of frames immediately preceding the command to initiate the selected rate-altering media playback function and a play rate corresponding to the selected rate-altering media playback function, andassigning frame timestamps to the intermediate frames that do not have frame timestamps inserted into the original stream of frames when the selected rate-altering media playback function corresponds to the decreased play rate.
2 Assignments
0 Petitions
Accused Products
Abstract
A media server in a home entertainment network allows a media rendering device to act as a digital media receiver. The media server enables trick mode functions such as scan forward or reverse, slow motion, pause, and seek on rendering devices with capabilities limited to 1× playback. The media server receives commands from user input at the rendering device transmitted over the network to the media server. The media server manipulates the media stream before transmission over the network by deleting or adding frames to the media stream as necessary to emulate the desired playback functions and replacing frame timestamps to create a media stream that appears to the media rendering device as a sequential 1× stream. The transmitted media stream may not contain all of the media content stored in the corresponding media file on the media server, thus avoiding limitations on the download bandwidth and local client storage.
42 Citations
24 Claims
-
1. A method for enabling, over a network, rate-altering media playback functions at a frame rate expected by a rendering device, the method comprising
receiving a command at a media server over the network from the rendering device to initiate a selected rate-altering media playback function; -
accessing, by the media server, an original stream of frames having sequential frame timestamps; generating an intermediate series of frames at the media server for transmission to the rendering device over the network by deleting frames having frame timestamps from the original stream of frames in excess of the frame rate expected by the rendering device when the selected rate-altering media playback function corresponds to an increased play rate; generating an intermediate series of frames at the media server for transmission to the rendering device over the network by inserting one or more intermediate frames that do not have timestamps into the original stream of frames when the selected rate-altering media playback function corresponds to a decreased play rate and insufficient frames originally exist in the original stream of frames to fulfill the frame rate expected by the rendering device; detecting discontinuity in frame timestamps between frames in the intermediate series of frames with respect to a timestamp increment expected by the rendering device, the detected discontinuity in the frame timestamps caused by deletion of frames from the original stream of frames when the selected rate-altering media playback function corresponds to the increased play rate and caused by insertion of one or more intermediate frames into the original stream of frames when the selected rate-altering media playback function corresponds to the decreased play rate; and providing the intermediate series of frames with sequential frame timestamps separated by the timestamp increment expected by the rendering device before transmission of frames in the intermediate series of frames over the network to account for the detected discontinuity with respect to the frame rate expected by the rendering device by; adjusting frame timestamps of all frames in the intermediate series of frames having frame timestamps according to a frame timestamp of a frame from the original stream of frames immediately preceding the command to initiate the selected rate-altering media playback function and a play rate corresponding to the selected rate-altering media playback function, and assigning frame timestamps to the intermediate frames that do not have frame timestamps inserted into the original stream of frames when the selected rate-altering media playback function corresponds to the decreased play rate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of for enabling, over a network, rate-altering media playback functions at a frame rate expected by a rendering device, the method comprising
receiving a command over the network from the rendering device to initiate a selected rate-altering media playback function; -
deleting frames from a stream of frames in excess of the frame rate expected by the rendering device; and adjusting frame timestamps of frames remaining in the stream of frames before transmission of the remaining frames over the network at the frame rate expected by the rendering device by; dividing the frame timestamps of the frames remaining in the stream of frames by a play rate corresponding to the selected rate-altering media playback function, and substituting a quotient of the dividing operation for the frame timestamps of the frames remaining in the stream of frames, respectively. - View Dependent Claims (10)
-
-
11. A method of for enabling, over a network, rate-altering media playback functions at a frame rate expected by a rendering device, the method comprising
receiving a command over the network from the rendering device to initiate a selected rate-altering media playback function; -
deleting frames from a stream of frames in excess of the frame rate expected by the rendering device; and adjusting frame timestamps of each of the frames remaining in the stream of frames after the deleting operation before transmission of the remaining frames over the network at the frame rate expected by the rendering device by subtracting a product of the total number of deleted frames to that point and an inverse of the frame rate expected by the rendering device. - View Dependent Claims (12)
-
-
13. A method of for enabling, over a network, rate-altering media playback functions at a frame rate expected by a rendering device, the method comprising
receiving a command over the network from the rendering device to initiate a selected rate-altering media playback function; -
generating a series of frames for transmission to the rendering device over the network by inserting one or more intermediate frames into a stream of frames when insufficient frames originally exist in the stream of frames to fulfill the frame rate expected by the rendering device; and adjusting frame timestamps of each of the frames in the stream of frames after the inserting operation and before transmission of the stream of frames at the frame rate expected by the rendering device by adding a product of the total number of inserted frames to that point and an inverse of the frame rate expected by the rendering device. - View Dependent Claims (14)
-
-
15. A method of for enabling, over a network, rate-altering media playback functions at a frame rate expected by a rendering device, the method comprising
receiving a command over the network from the rendering device to initiate a selected rate-altering media playback function; -
deleting frames from a stream of frames in excess of the frame rate expected by the rendering device; subtracting frame timestamps of adjacent frames originally in the stream of frames to determine a difference; dividing the difference by a play rate corresponding the a selected, rate-altering media playback function to determine a quotient; adding the quotient to an earlier frame of the adjacent frames to determine a first sum; substituting the first sum for the frame timestamp of the earlier frame; multiplying a respective insertion number of a respective of the one or more intermediate frames by an inverse of the frame rate to determine a product; adding the product to the first sum to determine a second sum; and assigning the second sum as a generated timestamp to the respective one of the one or more intermediate frames. - View Dependent Claims (16)
-
-
17. A method for emulating rate-altering media playback functions for playback of a media stream across a network on a constant frame rate rendering device, the method comprising
receiving a command at a media server over the network from the rendering device to initiate a selected rate-altering media playback function; -
accessing, by the media server, an original media stream having sequential frame timestamps; generating an intermediate series of frames at the media server for transmission to the rendering device over the network by deleting frames having frame timestamps from the original media stream in excess of the constant frame rate when the selected rate-altering media playback function corresponds to an increased play rate; generating an intermediate series of frames at the media server for transmission to the rendering device over the network by inserting one or more intermediate frames that do not have timestamps into the original media stream when the selected rate-altering media playback function corresponds to a decreased play rate and insufficient source frames exist in the original media stream to meet the constant frame rate of the rendering device; detecting discontinuity in frame timestamps between frames in the intermediate series of frames with respect to a constant timestamp increment of the rendering device, the detected discontinuity in the frame timestamps caused by deletion of frames from the original media stream when the selected rate-altering media playback function corresponds to the increased play rate and caused by insertion of one or more intermediate frames into the original media stream when the selected rate-altering media playback function corresponds to the decreased play rate; and providing the intermediate series of frames with sequential frame timestamps separated by the constant timestamp increment of the rendering device before transmission of frames in the intermediate series of frames over the network to account for the detected discontinuity with respect to the constant frame rate of the rendering device by; adjusting frame timestamps of all frames in the intermediate series of frames having frame timestamps according to a frame timestamp of a frame from the original media stream immediately preceding the command to initiate the selected rate-altering media playback function and a play rate corresponding to the selected rate-altering media playback function, and assigning frame timestamps to the intermediate frames that do not have frame timestamps inserted into the original media stream when the selected rate-altering media playback function corresponds to the decreased play rate. - View Dependent Claims (18, 19, 20)
-
-
21. A media server comprising a processor;
-
a memory under control of the processor, wherein the memory stores original media content having sequential frame timestamps; an audio/video control module, under control of the processor, that receives a command to initiate a rate-altering media playback function over a network from a constant frame rate rendering device; an audio/video source module, under control of the audio/video control module and the processor, that accesses the original media content stored on the memory; an audio/video sample manipulator module, under control of the audio/video control module and the processor, that; receives the original media content from the audio/video source module, manipulates the original media content to generate an intermediate series of frames for transmission to the rendering device that emulates an increased or decreased play rate corresponding to the rate-altering media playback function, detects discontinuity in frame timestamps between frames in the intermediate series of frames with respect to a constant timestamp increment of the rendering device, the detected discontinuity in the frame timestamps caused by manipulating the original media content to delete frames having frame timestamps from the original media content when the rate-altering media playback function corresponds to the increased play rate or insert intermediate frames that do not have frame timestamps into the original media content when the rate-altering media playback function corresponds to the decreased play rate, provides the intermediate series of frames with sequential frame timestamps separated by the constant timestamp increment of the rendering device before transmission of frames in the intermediate series of frames over the network to account for the detected discontinuity with respect to the constant timestamp increment by; adjusting frame timestamps of all frames in the intermediate series of frames having frame timestamps according to a frame timestamp of a frame from the original media content immediately preceding the command to initiate the rate-altering media playback function and a play rate corresponding to the rate-altering media playback function, and assigning frame timestamps to the intermediate frames that do not have frame timestamps inserted into the original media content when the rate-altering media playback function corresponds to the decreased play rate, and outputs the intermediate series of frames over the network to the rendering device at the constant rate of the rendering device. - View Dependent Claims (22, 23, 24)
-
Specification