IP Library Granted Patent US 11,546,652
Granted Patent B2
US 11,546,652 · App. 17/171,355 · Granted Jan 3, 2023

Systems and methods for storing offsets of a recorded program in a network DVR

Inventors: Pushpita Bhattacharjee (Karnataka, IN); Nimit Dineshbhai Kalaria (Gujarat, IN); Smitha Mave (Karnataka, IN); Vishwas Sharadanagar Panchaksharaiah (Karnataka, IN); Milan Indu Patel (Santa Clara, CA)
Assignee: Rovi Guides, Inc.
H04N21/4334H04N21/2181H04N21/26233H04N21/4147
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,546,652
App. No.
17/171,355
Granted
Jan 3, 2023
Kind
B2
Abstract

Systems and methods are described to address shortcomings in the conventional network storage systems via novel techniques to store offsets of a recorded program in a network digital video recorder (DVR). Storing offsets of a recorded program may be beneficial to users that would like to record media content that is broadcast either prior to a start time of a program, or media content that is broadcast after an end time of a program. This feature may be useful when start times and end times of a program are variable (e.g., in the case of sporting events, or other real-time events). This feature may also be useful for recording content of interest that is scheduled for broadcast prior to a start time of or after an end time of the program.

Claims (114)

1. A method for storing media assets, comprising:

determining to record a media asset for a first profile and for a second profile, each of the first profile and the second profile associated with a first offset and with a second offset, respectively, for the media asset;

comparing the first offset and the second offset to determine a largest end-offset from an end time of the media asset; and

storing media content associated with the media asset based on the largest end-offset in one or more storage devices.

2. The method of claim 1 , further comprising:

receiving, from a first device associated with the first profile, a first request to store the media asset, wherein the first request comprises a first end-offset from an end time of the media asset;

receiving, from a second device associated with the second profile, a second request to store the media asset, wherein the second request comprises a second end-offset from the end time of the media asset;

wherein comparing the first offset and the second offset comprises:

determining whether the first end-offset is larger than a largest end-offset of the entry associated with the media asset;

determining whether the second end-offset is larger than the largest end-offset of the entry associated with the media asset;

updating the largest end-offset of the entry associated with the media asset to the first end-offset based on determining that the first end-offset is larger than the largest end-offset;

updating the largest end-offset of the entry associated with the media asset to the second end-offset based on determining that the second end-offset is larger than the largest end-offset; and

storing the media content associated with the media asset based on the largest end-offset in the one or more storage devices.

3. The method of claim 2 , wherein:

the first request further comprises a first start-offset from the start time of the media asset;

the second request further comprises a second start-offset from the start time of the media asset;

comparing the first offset and the second offset further comprises:

determining whether the first start-offset is larger than a largest start-offset of an entry associated with the media asset in a content-hits table;

determining whether the second start-offset is larger than the largest start-offset of the entry associated with the media asset; and

the method further comprising:

updating the largest start-offset of the entry associated with the media asset to the first start-offset based on determining that the first start-offset is larger than the largest start-offset;

updating the largest start-offset of the entry associated with the media asset to the second start-offset based on determining that the second start-offset is larger than the largest start-offset; and

storing the media content associated with the media asset based on the largest start-offset and the largest end-offset in the one or more storage devices.

4. The method of claim 2 , wherein storing the media content comprises storing a single copy of the media content at a server, in response to receiving the first request to store the media asset from the first device associated with the first profile and the second request to store the media asset from the second device associated with the second profile.

5. The method of claim 2 , further comprising:

in response to receiving the first request to store the media asset, updating the entry associated with the media asset in a content-hits table to increment a count of requests to record the media asset; and

in response to receiving the second request to store the media asset, updating the entry associated with the media asset in the content-hits table to increment the count of requests to record the media asset.

6. The method of claim 3 , further comprising:

in response to receiving the first request, updating a profile-content table to include a first entry associated with the first profile, wherein the first entry comprises an identifier of the media asset, the first start-offset and the first end-offset; and

in response to receiving the second request, updating the profile-content table to include a second entry associated with the second profile, wherein the second entry comprises the identifier of the media asset and the second start-offset.

7. The method of claim 6 , further comprising:

receiving, from the first device associated with the first profile, a first request to delete the media asset;

decrementing the count of requests to record the media asset in response to receiving the first request to delete the media asset;

determining whether the count of requests to record the media asset is greater than zero; and

based on determining that the count of requests to record the media asset is equal to zero, deleting the media content associated with the media asset, the largest start-offset and the largest end-offset from the one or more storage devices.

8. The method of claim 3 , further comprising:

receiving, from the first device associated with the first profile, a first request to delete the media asset;

decrementing the count of requests to record the media asset in response to receiving the first request to delete the media asset;

determining whether the count of requests to record the media asset is greater than zero; and

based on determining that the count of requests to record the media asset is greater than zero:

retrieving a first entry, associated with the first profile, from a profile-content table, wherein the first entry comprises an identifier of the media asset, the first start-offset and the first end-offset;

determining whether the first start-offset is a largest start-offset among entries of the profile-content table associated with the media asset;

based on determining that the first start-offset is the largest start-offset among entries of the profile-content table associated with the media asset, determining a second largest start-offset among entries of the profile-content table associated with the first media asset;

determining whether the first end-offset is a largest end-offset among entries of the profile-content table associated with the media asset;

based on determining that the first end-offset is the largest start-offset among entries of the profile-content table, determining a second largest end-offset among entries of the profile-content table associated with the media asset; and

deleting media content associated with a time interval between the first start-offset and the second largest start-offset, and a time interval between the first end-offset and the second largest end-offset, based on determining that the first start-offset is the largest end-offset, determining that the first end-offset is the largest end-offset and receiving the first request to delete the media asset.

9. The method of claim 6 , further comprising:

receiving, from the first device associated with the first profile, a first request to delete the media asset;

in response to receiving the first request to delete the media asset, updating the profile-content table to remove the first entry associated with the first profile;

receiving, from the second device associated with the second profile, a second request to delete the media asset; and

in response to receiving the second request to delete the media asset, updating the profile-content table to remove the second entry associated with the second profile.

10. The method of claim 6 , further comprising:

receiving, from the first device associated with the first profile, a request to access the media asset;

in response to receiving the request to access the media asset, retrieving the first entry, associated with the first profile, from the profile-content table, wherein the first entry comprises the identifier of the media asset, the first start-offset and the first end-offset; and

transmitting media content associated with the media asset, the first start-offset, and the first end-offset to the first device.

11. A system for storing media assets, comprising:

one or more storage devices; and

control circuitry configured to:

determine to record a media asset for a first profile and for a second profile, each of the first profile and the second profile associated with a first offset and with a second offset, respectively, for the media asset;

compare the first offset and the second offset to determine a largest end-offset from an end time of the media asset; and

store media content associated with the media asset based on the largest end-offset in one or more storage devices.

12. The system of claim 11 , wherein:

the control circuitry is further configured to:

receive, from a first device associated with the first profile, a first request to store the media asset, wherein the first request comprises a first end-offset from an end time of the media asset;

receive, from a second device associated with the second profile, a second request to store the media asset, wherein the second request comprises a second end-offset from the end time of the media asset;

wherein the control circuitry is configured to compare the first offset and the second offset by:

determining whether the first end-offset is larger than a largest end-offset of the entry associated with the media asset;

determining whether the second end-offset is larger than the largest end-offset of the entry associated with the media asset;

wherein the control circuitry is further configured to:

update the largest end-offset of the entry associated with the media asset to the first end-offset based on determining that the first end-offset is larger than the largest end-offset;

update the largest end-offset of the entry associated with the media asset to the second end-offset based on determining that the second end-offset is larger than the largest end-offset; and

store the media content associated with the media asset based on the largest end-offset in the one or more storage devices.

13. The system of claim 12 , wherein:

the first request further comprises a first start-offset from the start time of the media asset;

the second request further comprises a second start-offset from the start time of the media asset;

wherein the control circuitry is configured to compare the first offset an e second offset by:

determining whether the first start-offset is larger than a largest start-offset of an entry associated with the media asset in a content-hits table;

determining whether the second start-offset is larger than the largest start-offset of the entry associated with the media asset; and

wherein the control circuitry is further configured to:

update the largest start-offset of the entry associated with the media asset to the first start-offset based on determining that the first start-offset is larger than the largest start-offset;

update the largest start-offset of the entry associated with the media asset to the second start-offset based on determining that the second start-offset is larger than the largest start-offset; and

store the media content associated with the media asset based on the largest start-offset and the largest end-offset in the one or more storage devices.

14. The system of claim 12 , wherein the control circuitry is configured to store the media content by storing a single copy of the media content at a server, in response to receiving the first request to store the media asset from the first device associated with the first profile and the second request to store the media asset from the second device associated with the second profile.

15. The system of claim 12 , wherein the control circuitry is configured to:

in response to receiving the first request to store the media asset, update the entry associated with the media asset in a content-hits table to increment a count of requests to record the media asset; and

in response to receiving the second request to store the media asset, update the entry associated with the media asset in the content-hits table to increment the count of requests to record the media asset.

16. The system of claim 13 , wherein the control circuitry is configured to:

in response to receiving the first request, update a profile-content table to include a first entry associated with the first profile, wherein the first entry comprises an identifier of the media asset, the first start-offset and the first end-offset; and

in response to receiving the second request, update the profile-content table to include a second entry associated with the second profile, wherein the second entry comprises the identifier of the media asset and the second start-offset.

17. The system of claim 16 , wherein the control circuitry is configured to:

receive, from the first device associated with the first profile, a first request to delete the media asset;

decrement the count of requests to record the media asset in response to receiving the first request to delete the media asset;

determine whether the count of requests to record the media asset is greater than zero; and

based on determining that the count of requests to record the media asset is equal to zero, delete the media content associated with the media asset, the largest start-offset and the largest end-offset from the one or more storage devices.

18. The system of claim 13 , wherein the control circuitry is configured to:

receive, from the first device associated with the first profile, a first request to delete the media asset;

decrement the count of requests to record the media asset in response to receiving the first request to delete the media asset;

determine whether the count of requests to record the media asset is greater than zero; and

based on determining that the count of requests to record the media asset is greater than zero:

retrieve a first entry, associated with the first profile, from a profile-content table, wherein the first entry comprises an identifier of the media asset, the first start-offset and the first end-offset;

determine whether the first start-offset is a largest start-offset among entries of the profile-content table associated with the media asset;

based on determining that the first start-offset is the largest start-offset among entries of the profile-content table associated with the media asset, determine a second largest start-offset among entries of the profile-content table associated with the first media asset;

determine whether the first end-offset is a largest end-offset among entries of the profile-content table associated with the media asset;

based on determining that the first end-offset is the largest start-offset among entries of the profile-content table, determine a second largest end-offset among entries of the profile-content table associated with the media asset; and

delete media content associated with a time interval between the first start-offset and the second largest start-offset, and a time interval between the first end-offset and the second largest end-offset, based on determining that the first start-offset is the largest end-offset, determine that the first end-offset is the largest end-offset and receiving the first request to delete the media asset.

19. The system of claim 16 , wherein the control circuitry is configured to:

receive, from the first device associated with the first profile, a first request to delete the media asset;

in response to receiving the first request to delete the media asset, update the profile-content table to remove the first entry associated with the first profile;

receive, from the second device associated with the second profile, a second request to delete the media asset; and

in response to receiving the second request to delete the media asset, update the profile-content table to remove the second entry associated with the second profile.

20. The system of claim 16 , wherein the control circuitry is configured to:

receive, from the first device associated with the first profile, a request to access the media asset;

in response to receiving the request to access the media asset, retrieve the first entry, associated with the first profile, from the profile-content table, wherein the first entry comprises the identifier of the media asset, the first start-offset and the first end-offset; and

transmit media content associated with the media asset, the first start-offset, and the first end-offset to the first device.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2024
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 069086/0199 →
SECURITY INTEREST Recorded May 19, 2023
From: ADEIA GUIDES INC.; ADEIA MEDIA HOLDINGS LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 063707/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2021
From: BHATTACHARJEE, PUSHPITA; KALARIA, NIMIT DINESHBHAI; MAVE, SMITHA; PANCHAKSHARAIAH, VISHWAS SHARADANAGAR; PATEL, MILAN INDU
To: ROVI GUIDES, INC.
Reel/Frame 055201/0309 →
Continuity (2)
Continuation 16472189
Related Publication 20210168436A1 · Jun 3, 2021
Cited By (1)
US 12,309,450