# US 2019/0174197 A1 · User controlled multi-device media-on-demand system

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

- Number: US 2019/0174197 A1
- Document ID: US20190174197A1
- Status: Published application
- Kind: A1
- Application number: 16/196,112
- Filed: 2018-11-20
- Published: 2019-06-06
- Earliest claimed: 2000-09-29
- Assignees: Rovi Technologies Corporation
- Applicants: Rovi Technologies Corporation
- Inventors: Neil Katz; Bruce P. Semple; Edith H. Stern; Barry E. Willner
- Web page: https://patentgrep.com/patent/US20190174197A1

## CPC

- H04N 21/47217: {for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks (specific graphical features in visual interfaces H04N21/4312)}
- H04N 7/17318: {Direct or substantially direct transmission and handling of requests}
- H04N 21/23109: {by placing content in organized collections, e.g. EPG data repository (details of retrieval of video data and associated meta data in video databases G06F16/739)}
- H04N 21/2343: involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements {(video transcoding H04N19/40; media packet handling at the source H04L65/762)}
- H04N 21/2393: {involving handling client requests (scheduling or organising the servicing of application requests H04L67/60)}
- H04N 21/2402: {Monitoring of the downstream path of the transmission network, e.g. bandwidth available (traffic monitoring in data switching networks H04L43/00; monitoring data switching networks utilization H04L43/0876)}
- H04N 21/242: Synchronisation processes, e.g. processing of PCR [Programme Clock References] {(arrangements for synchronising broadcast or distribution via plural systems in broadcast distribution systems H04H20/18)}
- H04N 21/25808: {Management of client data (terminal profiles in network data switching protocols H04L67/303)}
- H04N 21/26208: {the scheduling operation being performed under constraints}
- H04N 21/2662: Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
- H04N 21/44209: {Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network (arrangements for maintenance or administration in data switching networks involving bandwidth and capacity management H04L41/0896)}
- H04N 21/6582: {Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number (arrangements where receivers interact with the broadcast H04H20/38)}
- H04N 21/8455: {involving pointers to the content, e.g. pointers to the I-frames of the video stream}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method for providing configurable access to media in a media-on-demand system also can include delivering the media to a first client device in a format compatible with the first client device; interrupting the delivery of the media; recording a bookmark specifying a position in the media where the interruption occurred; and suming delivery of the media to a second client device, the resumed delivery beginning at a position in the media specified by the recorded bookmark. The method further can include identifying device properties for each of the first and second client devices; delivering the media to the first client device in a format compatible with the identified device properties for the first client device; and, delivering the media to the second client device in a format compatible with the identified device properties for the second client device.

## Claims

### Claim at position 1

-27. (canceled)

### Claim 28

A system for resuming transmission of a video, to a device, from a point preceding a point in the video at which the video was paused at another device, the system comprising:
a first video receiving device configured to:
transmit a first request for a video, wherein the first request comprises a user identifier;
cause the video to be displayed; and
transmit a second request to pause the video at a pause point in the video;
a second video receiving device configured to:
transmit a third request, including the user identifier, to resume the video from the pause point; and
cause the video to be displayed;
a media-on-demand server configured to:
receive, from the first video receiving device, the first request for the video;
receive, from the first video receiving device, the second request to pause the video;
based on the second request to pause the video:
calculate a time code that precedes the pause point by subtracting a time offset from the pause point;
transform, in a memory of the media-on-demand server, a data structure associated with the user identifier to include an identifier of the video, the user identifier, and the calculated time code;
receive, from the second video receiving device, the third request to resume the video from the pause point;
based on the third request to resume the video from the pause point:
retrieve, from the memory, based on the user identifier, the data structure associated with the user identifier;
identify, based on the time code in the data structure, a resume point in the video; and
transmit the video, beginning from the resume point, to the second video receiving device.

### Claim 29 (depends on 28)

The system of claim 28, wherein the time offset is a set time offset, wherein calculating the time code comprises subtracting the set time offset from the pause point.

### Claim 30 (depends on 28)

The system of claim 28, wherein the time offset is a variable time offset.

### Claim 31 (depends on 30)

The system of claim 30, wherein the media-on-demand server is further configured to calculate the variable time offset based on a transitory delay of the second request between the first video receiving device and the media-on-demand server.

### Claim 32 (depends on 31)

The system of claim 31, wherein calculating the time code comprises subtracting the calculated variable time offset from the pause point.

### Claim 33 (depends on 28)

The system of claim 28, wherein the data structure is a first data structure, wherein the calculated time code is a first time code, further comprising:
a second server configured to store a second data structure associated with the user identifier, wherein the second data structure includes a second identifier of the video and a second time code.

### Claim 34 (depends on 33)

The system of claim 33, wherein the second video receiving device is further configured to:
compare the first time code to the second time code;
determine that the first time code is different from the second time code; and
based on determining that the first time code is different from the second time code, provide an option to select which of the first time code and the second time code is a correct time code.

### Claim 35

A system for resuming transmission of a video, to a device, from a point preceding a point in the video at which the video was paused at another device, the system comprising:
a first video receiving device configured to:
transmit a first request for a video, wherein the first request comprises user identifier;
cause the video to be displayed; and
transmit a second request to pause the video at a pause point in the video;
a second video receiving device configured to:
transmit a third request, including the user identifier, to resume the video from the pause point; and
cause the video to be displayed;
a media-on-demand server configured to:
receive, from the first video receiving device, the first request for the video;
receive, from the first video receiving device, the second request to pause the video;
based on the second request to pause the video:
transform, in a memory of the media-on-demand server, a data structure associated with the user identifier to include an identifier of the video, the user identifier, and a time code associated with the pause point;
receive, from the second video receiving device, the third request to resume the video from the pause point;
based on the third request to resume the video from the pause point:
retrieve, from the memory, based on the user identifier, the data structure associated with the user identifier;
identify the time code associated with the pause point in the data structure;
calculate a resumption point that precedes the time code by subtracting a time offset from the time code; and
transmit the video, beginning from the resumption point, to the second video receiving device.

### Claim 36 (depends on 35)

The system of claim 35, wherein the time offset is a set time offset, wherein calculating the resumption point comprises subtracting the set time offset from the time code.

### Claim 37 (depends on 35)

The system of claim 35, wherein the time offset is a variable time offset.

### Claim 38 (depends on 37)

The system of claim 37, wherein the media-on-demand server is further configured to calculate the variable time offset based on a transitory delay of the second request between the first video receiving device and the media-on-demand server.

### Claim 39 (depends on 38)

The system of claim 38, wherein calculating the resumption point comprises subtracting the calculated variable time offset from the time code.

### Claim 40 (depends on 35)

The system of claim 35, wherein the data structure is a first data structure, wherein the time code is a first time code, further comprising:
a second server configured to store a second data structure associated with the user identifier, wherein the second data structure includes a second identifier of the video and a second time code.

### Claim 41 (depends on 40)

The system of claim 40, wherein the second video receiving device is further configured to:
compare the first time code to the second time code;
determine that the first time code is different from the second time code; and
based on determining that the first time code is different from the second time code, provide an option to select which of the first time code and the second time code is a correct time code.

### Claim 42

A method for resuming transmission of a video, to a device, from a point preceding a point in the video at which the video was paused at another device, the method comprising:
receiving, at a media-on-demand server, from a first video receiving device, a first request for the video, wherein the first request comprises a user identifier;
transmitting, from the media-on-demand server, the video for display on a display screen coupled to the first video receiving device;
receiving, at the media-on-demand server, from the first video receiving device, a second request to pause the video at a pause point in the video;
based on the second request to pause the video:
calculating a time code that precedes the pause point by subtracting a time offset from the pause point;
transforming, in a memory of the media-on-demand server, a data structure associated with the user identifier to include an identifier of the video, the user identifier, and the calculated time code;
receiving, at the media-on-demand server, from a second video receiving device, a third request, including the user identifier, to resume the video from the pause point;
based on the third request to resume the video from the pause point:
retrieving, from the memory, based on the user identifier, the data structure associated with the user identifier;
identifying, based on the time code in the data structure, a resume point in the video; and
transmitting the video, beginning from the resume point, from the media-on-demand server to the second video receiving device.

### Claim 43 (depends on 42)

The method of claim 42, wherein the time offset is a set time offset, wherein calculating the time code comprises subtracting the set time offset from the pause point.

### Claim 44 (depends on 42)

The method of claim 42, wherein the time offset is a variable time offset.

### Claim 45 (depends on 44)

The method of claim 44, further comprising calculating the variable time offset based on a transitory delay of the second request between the first video receiving device and the media-on-demand server.

### Claim 46 (depends on 45)

The method of claim 45, wherein calculating the time code comprises subtracting the calculated variable time offset from the pause point.

### Claim 47 (depends on 42)

The method of claim 42, wherein the data structure is a first data structure, wherein the calculated time code is a first time code, further comprising:
storing, at a second server, a second data structure associated with the user identifier, wherein the second data structure includes a second identifier of the video and a second time code.

### Claim 48 (depends on 47)

The method of claim 47, further comprising:
comparing the first time code to the second time code;
determining that the first time code is different from the second time code; and
based on determining that the first time code is different from the second time code, causing an option to be provided at the second video receiving device, wherein the option allows the user to select which of the first time code and the second time code is a correct time code.

### Claim 49

A method for resuming transmission of a video, to a device, from a point preceding a point in the video at which the video was paused at another device, the method comprising:
receiving, at a media-on-demand server, from a first video receiving device, a first request for the video, wherein the first request comprises a user identifier;
transmitting, from the media-on-demand server, the video for display on a display screen coupled to the first video receiving device;
receiving, at the media-on-demand server, from the first video receiving device, a second request to pause the video at a pause point in the video;
based on the second request to pause the video:
transforming, in a memory of the media-on-demand server, a data structure associated with the user identifier to include an identifier of the video, the user identifier, and a time code associated with the pause point;
receiving, at the media-on-demand server, from a second video receiving device, a third request, including the user identifier, to resume the video from the pause point;
based on the third request to resume the video from the pause point:
retrieving, from the memory based on the user identifier, the data structure associated with the user identifier;
identifying the time code associated with the pause point in the data structure;
calculating a resumption point that precedes the time code by subtracting a time offset from the time code; and
transmitting the video, beginning from the resumption point, to the second video receiving device.

### Claim 50 (depends on 49)

The method of claim 49, wherein the time offset is a set time offset, wherein calculating the resumption point comprises subtracting the set time offset from the time code.

### Claim 51 (depends on 49)

The method of claim 49, wherein the time offset is a variable time offset.

### Claim 52 (depends on 51)

The method of claim 51, further comprising calculating the variable time offset based on a transitory delay of the second request between the first video receiving device and the media-on-demand server.

### Claim 53 (depends on 52)

The method of claim 52, wherein calculating the resumption point comprises subtracting the calculated variable time offset from the time code.

### Claim 54 (depends on 49)

The method of claim 49, wherein the data structure is a first data structure, wherein the calculated time code is a first time code, further comprising:
storing, at a second server, a second data structure associated with the user identifier, wherein the second data structure includes a second identifier of the video and a second time code.

### Claim 55 (depends on 54)

The method of claim 54, further comprising:
comparing the first time code to the second time code;
determining that the first time code is different from the second time code; and
based on determining that the first time code is different from the second time code, causing an option to be provided at the second video receiving device, wherein the option allows the user to select which of the first time code and the second time code is a correct time code.

### Claim 56 (depends on 28)

The system of claim 28, wherein the media-on-demand is further configured to:
receive, during the transmission of the video beginning from the resume point, from the second video receiving device, a fourth request to seek in the video to a point prior to the resume point; and
in response to receiving the fourth request, transmitting the video, beginning from the prior point, to the second video receiving device.

### Claim 57 (depends on 42)

The method of claim 42, further comprising:
receiving, at the media-on-demand server, during the transmission of the video beginning from the resume point, from the second video receiving device, a fourth request to seek in the video to a point prior to the resume point; and
in response to receiving the fourth request, transmitting the video, beginning from the prior point, from the media-on-demand server to the second video receiving device.
