IP Library › Granted Patent US 11,217,280
Granted Patent B2
US 11,217,280 · App. 16/777,864 · Granted Jan 4, 2022

Branching logic in a playback environment

Inventors: Kevin Pei-Wen Lee (San Jose, CA); Lawrence E. Jones, Jr. (San Mateo, CA); Joseph Peyton Lea, IV (San Jose, CA)
Assignee: Netflix, Inc.
G11B27/10G06F16/44H04N21/47217
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,217,280
App. No.
16/777,864
Granted
Jan 4, 2022
Kind
B2
Abstract

The disclosed computer-implemented method may include accessing a pre-rendered multimedia item. The pre-rendered multimedia item may have branching logic associated with it, where the branching logic includes branching points that direct non-sequential playback of the pre-rendered multimedia item. The method may also include initializing playback of the pre-rendered multimedia item and accessing, at the branching points, various trigger conditions that direct playback order of different segments of the pre-rendered multimedia item. The method may then include updating, based on the trigger conditions, at least some portion of custom state data. The method may further include playing back the segments of the pre-rendered multimedia item according to the updated state data. Various other methods, systems, and computer-readable media are also disclosed.

Claims (39)

1. A computer-implemented method comprising:

accessing a pre-rendered multimedia item, the pre-rendered multimedia item having branching logic associated therewith, the branching logic including one or more branching points that direct non-sequential playback of the pre-rendered multimedia item, wherein at least one of the branching points is personalized for a specific user or for a specific device, such that the specific user or the specific device have at least one branching point that is tailored to that user or that device;

initializing playback of the pre-rendered multimedia item;

accessing, at the one or more branching points, one or more trigger conditions that direct playback order of one or more segments of the pre-rendered multimedia item;

dynamically updating, based on the trigger conditions, at least a portion of custom state data that is configured to track decisions made at one or more of the branching points, the updating including storing one or more branching point selections and resulting custom state data changes in a state snapshot, the state snapshot allowing playback to be moved backward to a chosen position and resumed with custom state data that is updated, via the state snapshot, to the chosen position, wherein the custom state data is defined using one or more declarative statements that declaratively define the functionality of a specified branching point, and wherein the one or more declarative statements are written using a domain specific language that is interpreted using a custom rules engine that is configured to process branching options during playback; and

playing back the one or more segments of the pre-rendered multimedia item according to the updated state data.

2. The computer-implemented method of claim 1 , wherein the custom state data includes one or more primitives or complex objects, the primitives or complex objects having an associated portion of logic that defines how branching point operations associated with the one or more branching points are to occur.

3. The computer-implemented method of claim 2 , wherein at least one of the one or more primitives, complex objects, or functions comprises a precondition definition that specifies a precondition that is to occur before at least one of the one or more branching points is triggered.

4. The computer-implemented method of claim 3 , wherein the precondition is executed at runtime to determine whether an action associated with the precondition is to be executed during playback.

5. The computer-implemented method of claim 1 , wherein the branching logic is streamed in a data stream, along with the pre-rendered multimedia item, to a content player for playback to a user.

6. The computer-implemented method of claim 1 , wherein at least one of the one or more trigger conditions comprises a user input received from a user.

7. The computer-implemented method of claim 6 , wherein at least one of the one or more trigger conditions comprises a time-based trigger.

8. The computer-implemented method of claim 6 , wherein at least one of the one or more trigger conditions is based on a state evaluation configured to evaluate a subset or all of the custom state data.

9. The computer-implemented method of claim 1 , wherein the custom state data stores one or more branching point decisions from a current branch point or from previous branching points.

10. A system comprising:

at least one physical processor; and

physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to:

access a pre-rendered multimedia item, the pre-rendered multimedia item having branching logic associated therewith, the branching logic including one or more branching points that direct non-sequential playback of the pre-rendered multimedia item, wherein at least one of the branching points is personalized for a specific user or for a specified device, such that the specific user or the specific device have at least one branching point that is tailored to that user or that device;

initialize playback of the pre-rendered multimedia item;

access, at the one or more branching points, one or more trigger conditions that direct playback order of one or more segments of the pre-rendered multimedia item;

dynamically update, based on the trigger conditions, at least a portion of custom state data that is configured to track decisions made at one or more of the branching points, the updating including storing one or more branching point selections and resulting custom state data changes in a state snapshot, the state snapshot allowing playback to be moved backward to a chosen position and resumed with custom state data that is updated, via the state snapshot, to the chosen position, wherein the custom state data is defined using one or more declarative statements that declaratively define the functionality of a specified branching point, and wherein the one or more declarative statements are written using a domain specific language that is interpreted using a custom rules engine that is configured to process branching options during playback; and

play back the one or more segments of the pre-rendered multimedia item according to the updated state data.

11. The system of claim 10 , wherein at least a portion of the custom state data is personalized to a specific user, storing branching point decisions made by the user while viewing the pre-rendered multimedia item.

12. The system of claim 11 , wherein the precondition is executed at runtime to determine whether an action associated with the precondition is to be executed during playback.

13. The system of claim 10 , wherein the specified branching logic for the accessed pre-rendered multimedia item is streamed to a client device along with the pre-rendered multimedia item.

14. The system of claim 10 , wherein the branching logic is interpreted by a rules engine that applies branching logic to multiple different pre-rendered multimedia items.

15. The system of claim 10 , further comprising storing at least a portion of state data at a playback location of the pre-rendered multimedia item that is different than at a branching point, such that the portion of state data is stored at a playback location that is between branching points in the pre-rendered multimedia item.

16. The system of claim 10 , further comprising storing an accumulation of user selections in a state snapshot.

17. The system of claim 16 , further comprising:

resuming playback in a subsequent playback session of the pre-rendered multimedia item; and

restoring the user's selections from the state snapshot.

18. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

access a pre-rendered multimedia item, the pre-rendered multimedia item having branching logic associated therewith, the branching logic including one or more branching points that direct non-sequential playback of the pre-rendered multimedia item, wherein at least one of the branching points is personalized for a specific user or for a specific device, such that the specific user or the specific device have at least one branching point that is tailored to that user or that device;

initialize playback of the pre-rendered multimedia item;

access, at the one or more branching points, one or more trigger conditions that direct playback order of one or more segments of the pre-rendered multimedia item;

dynamically update, based on the trigger conditions, at least a portion of custom state data that is configured to track decisions made at one or more of the branching points, the updating including storing one or more branching point selections and resulting custom state data changes in a state snapshot, the state snapshot allowing playback to be moved backward to a chosen position and resumed with custom state data that is updated, via the state snapshot, to the chosen position, wherein the custom state data is defined using one or more declarative statements that declaratively define the functionality of a specified branching point, and wherein the one or more declarative statements are written using a domain specific language that is interpreted using a custom rules engine that is configured to process branching options during playback; and

play back the one or more segments of the pre-rendered multimedia item according to the updated state data.

19. The computer-readable medium of claim 18 , wherein the custom state data includes one or more primitives or complex objects, the primitives or complex objects having an associated portion of logic that defines how branching point operations associated with the one or more branching points are to occur.

20. The computer-readable medium of claim 19 , wherein at least one of the one or more primitives, complex objects, or functions comprises a precondition definition that specifies a precondition that is to occur before at least one of the one or more branching points is triggered.

Assignments (2)
CHANGE OF NAME Recorded Dec 9, 2024
From: MD HEALTH RX SOLUTIONS, LLC
To: ONMED LLC
Reel/Frame 069547/0953 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2020
From: LEE, KEVIN PEI-WEN; JONES, LAWRENCE E.; LEA IV, JOSEPH PEYTON
To: NETFLIX, INC
Reel/Frame 052524/0381 →
Continuity (3)
Provisional Application 62909597 · Oct 2, 2019
Provisional Application 62799007 · Jan 30, 2019
Related Publication 20200243116A1 · Jul 30, 2020