# US 9,521,455 B1 · Methods and systems for playing media

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

- Number: US 9,521,455 B1
- Document ID: US9521455B1
- Status: Granted
- Kind: B1
- Application number: 14/861,332
- Filed: 2015-09-22
- Granted: 2016-12-13
- Earliest claimed: 2015-09-22
- Assignees: Rovi Guides, Inc.
- Applicants: Rovi Guides, Inc.
- Inventors: Vikram Makam Gupta; Ashwini Dharwa; Raghavendra Goddumarri; Vishal Agarwal
- Web page: https://patentgrep.com/patent/US9521455B1

## 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)}
- G11B 27/36: Monitoring, i.e. supervising the progress of recording or reproducing {(for digital recording G11B20/00 and s.gr.; for monitoring, testing or measuring of TV recorders of the type covered by H04N5/76 and subgroups, see H04N17/06)}
- H04L 65/612: for unicast
- H04N 19/132: Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
- H04N 19/156: Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
- H04N 19/162: User input
- H04N 19/172: the region being a picture, frame or field
- H04N 19/895: in combination with error concealment
- H04N 21/25833: {involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities (allocation of resources considering hardware capabilities in multiprogramming arrangements G06F9/5044; allocation of resources considering software capabilities in multiprogramming arrangements G06F9/5055)}
- H04N 21/25883: {being end-user demographical data, e.g. age, family status or address (arrangements for identifying locations of users in broadcast systems H04H60/52)}
- H04N 21/278: Content descriptor database or directory service for end-user access {(details of content or meta data based information retrieval of video data in video databases G06F16/739)}
- H04N 21/4122: {additional display device, e.g. video projector (digital output for controlling a plurality of local displays G06F3/1423)}
- H04N 21/4302: {Content synchronisation processes, e.g. decoder synchronisation}
- H04N 21/4334: {Recording operations (recording of a television signal H04N5/76; arrangements for recording or accumulating broadcast information or broadcast-related information H04H60/27)}
- H04N 21/4358: {for generating different versions, e.g. for different peripheral devices}
- H04N 21/44004: {involving video buffer management, e.g. video decoder buffer or video display buffer}
- H04N 21/44016: {involving splicing one content stream with another content stream, e.g. for substituting a video clip}
- H04N 21/440218: {by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 (conversion of standards in analogue television systems H04N7/01)}
- H04N 21/44029: {for generating different versions}
- H04N 21/44204: {Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched (monitoring of user activities for profile generation for accessing a video database G06F16/739; protecting generic digital content where the protection is independent of the precise nature of the content G06F21/10; arrangements for monitoring the use made of the broadcast services in broadcast systems H04H60/31)}
- H04N 21/4532: {involving end-user characteristics, e.g. viewer profile, preferences (monitoring of user activities for profile generation for accessing a video database G06F16/739; user profiles in network data switching protocols H04L67/306; processing of user preferences or user profiles in wireless networks H04W8/18)}
- H04N 21/6336: directed to decoder
- H04N 21/6379: directed to encoder {, e.g. for requesting a lower encoding rate}
- H04N 21/6587: Control parameters, e.g. trick play commands, viewpoint selection
- H04N 21/84: Generation or processing of descriptive data, e.g. content descriptors {(systems specially adapted for using meta-information in broadcast systems H04H60/73)}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N 21/85406: {involving a specific file format, e.g. MP4 format}
- H04L 67/306: User profiles
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and systems are described for a media guidance application that enables a user to patch corrupted media. In particular, the media guidance application place-shifts a frame of a second version of the media corresponding to a corrupted portion of the media from a remote location and displays the place-shifted data at the local device.

## Claims

### Claim 1

A method for playing media, the method comprising:
retrieving a frame of a plurality of frames corresponding to a local version of a media asset from a memory of a local device;
computing a checksum for the frame;
comparing the checksum to frame data to determine whether the frame is corrupt; and
in response to determining that the frame is corrupt:
identifying a playback position of the media asset corresponding to the frame;
searching a database listing a plurality of remote devices accessing remote versions of the media asset to identify a remote device accessing a remote version of the media asset at the playback position;
in response to identifying the remote device, place-shifting a frame of the remote version corresponding to the playback position from the remote device to the local device; and
generating for display at the local device the place-shifted frame.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving, at the local device, a current playback position of the remote version, wherein the current playback position corresponds to a progress of the remote version at the remote device;
in response to determining that the current playback position is not equal to the playback position, instructing the remote device to play the remote version from the playback position.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
determining, in response to searching the database, that no remote devices are accessing remote versions of the media asset; and
in response to determining that no remote devices are accessing the remote versions of the media asset, instructing one of the remote devices to begin playback of the remote version at the playback position.

### Claim 4 (depends on 3)

The method of claim 3, wherein instructing the one of the remote devices to begin playback of the remote version further comprises:
instructing the one of the remote devices to tune to a channel broadcasting the remote version.

### Claim 5 (depends on 3)

The method of claim 3, wherein instructing the one of the remote devices to begin playback of the remote version further comprises:
instructing the one of the remote devices to request an on-demand version of the media asset; and
performing a fast-access playback operation on the on-demand version of the media asset to locate the playback position.

### Claim 6 (depends on 1)

The method of claim 1, wherein the remote version differs from the local version by at least one of media format, resolution, aspect ratio, and total media content.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
storing a plurality of frames corresponding to the local version in a buffer of the local device;
enumerating a number of frames stored in the buffer that are corrupt;
determining that a threshold number of frames in the buffer are corrupt;
in response to determining that a threshold number of frames are corrupt:
identifying a current playback position of the local version;
place-shifting, from the remote device to the local device, all frames of the remote version corresponding to the frames in the buffer; and
generating for display the place-shifted frames.

### Claim 8 (depends on 1)

The method of claim 1, wherein place-shifting the frame of the remote version further comprises:
receiving the frame of the remote version in a first format at the local device, wherein the remote version was re-encoded, at the remote device, from a second format for streaming over a network connection between the local device and the remote device.

### Claim 9 (depends on 8)

The method of claim 8, wherein the frame is re-encoded to at least one of a lower frame rate or lower resolution than a respective frame rate or respective resolution of the local version.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
retrieving an encoding capability of the remote device;
retrieving a decoding capability of the local device;
comparing the encoding capability of the remote device to the encoding capability of the local device to identify a mutually compatible encoding format;
in response identifying the encoding format:
determining performance capabilities of a communication channel utilized by the local device for communication to the remote device;
identifying an encoding parameter based on the performance capabilities; and
place-shifting, from the remote device to the local device, a frame of the remote version encoded in the encoding format based on the encoding parameter.

### Claim 11

A system for playing media, the system comprising:
storage circuitry configured to store a plurality of frames of a media asset; and
control circuitry configured to:
retrieve a frame of the plurality of frames corresponding to a local version of the media asset from the storage circuitry of a local device;
compute a checksum for the frame;
compare the checksum to frame data to determine whether the frame is corrupt; and
in response to determining that the frame is corrupt:
identify a playback position of the media asset corresponding to the frame;
search a database listing a plurality of remote devices accessing remote versions of the media asset to identify a remote device accessing a remote version of the media asset at the playback position;
in response to identifying the remote device, place-shift a frame of the remote version corresponding to the playback position from the remote device to the local device; and
generate for display at the local device the place-shifted frame.

### Claim 12 (depends on 11)

The system of claim 11, wherein the control circuitry is further configured to:
receive, at the local device, a current playback position of the remote version, wherein the current playback position corresponds to a progress of the remote version at the remote device;
in response to determining that the current playback position is not equal to the playback position, instruct the remote device to play the remote version from the playback position.

### Claim 13 (depends on 11)

The system of claim 11, wherein the control circuitry is further configured to:
determine, in response to searching the database, that no remote devices are accessing remote versions of the media asset; and
in response to determining that no remote devices are accessing the remote versions of the media asset, instruct one of the remote devices to begin playback of the remote version at the playback position.

### Claim 14 (depends on 13)

The system of claim 13, wherein the control circuitry configured to instruct the one of the remote devices to begin playback of the remote version is further configured to:
instruct the one of the remote devices to tune to a channel broadcasting the remote version.

### Claim 15 (depends on 13)

The system of claim 13, wherein the control circuitry configured to instruct the one of the remote devices to begin playback of the remote version is further configured to:
instruct the one of the remote devices to request an on-demand version of the media asset; and
perform a fast-access playback operation on the on-demand version of the media asset to locate the playback position.

### Claim 16 (depends on 11)

The system of claim 11, wherein the remote version differs from the local version by at least one of media format, resolution, aspect ratio, and total media content.

### Claim 17 (depends on 11)

The system of claim 11, wherein the control circuitry is further configured to:
store a plurality of frames corresponding to the local version in a buffer of the local device;
enumerate a number of frames stored in the buffer that are corrupt;
determine that a threshold number of frames in the buffer are corrupt;
in response to determining that a threshold number of frames are corrupt:
identify a current playback position of the local version;
place-shift, from the remote device to the local device, all frames of the remote version corresponding to the frames in the buffer; and
generate for display the place-shifted frames.

### Claim 18 (depends on 11)

The system of claim 11, wherein the control circuitry configured to place-shift the frame of the remote version is further configured to:
receive the frame of the remote version in a first format at the local device, wherein the remote version was re-encoded, at the remote device, from a second format for streaming over a network connection between the local device and the remote device.

### Claim 19 (depends on 18)

The system of claim 18, wherein the frame is re-encoded to at least one of a lower frame rate or lower resolution than a respective frame rate or respective resolution of the local version.

### Claim 20 (depends on 18)

The system of claim 18, wherein the control circuitry is further configured to:
retrieve an encoding capability of the remote device;
retrieve a decoding capability of the local device;
compare the encoding capability of the remote device to the encoding capability of the local device to identify a mutually compatible encoding format;
in response identifying the encoding format:
determine performance capabilities of a communication channel utilized by the local device for communication to the remote device;
identify an encoding parameter based on the performance capabilities; and
place-shift, from the remote device to the local device, a frame of the remote version encoded in the encoding format based on the encoding parameter.
