Methods and systems for processing digital data rate and directional playback changes
First Claim
Patent Images
1. A method comprising:
- providing a filter graph having components for processing video and audio data; and
using a sideband mechanism that is supported by individual components of the filter graph to communicate with the individual components to determine, from one or more of the components, when to schedule a rate change that can be perceived as immediate by a user, and to communicate rate change information to individual components in the filter graph.
2 Assignments
0 Petitions
Accused Products
Abstract
Various methods and systems permit digital data, such as video data, audio/video data, audio/video/subpicture data and the like, to be processed in a manner that permits playback at different speeds in both forward and reverse directions. Various embodiments are also directed to handling playback rate changes in a manner that can enhance the user'"'"'s experience.
-
Citations
73 Claims
-
1. A method comprising:
-
providing a filter graph having components for processing video and audio data; and
using a sideband mechanism that is supported by individual components of the filter graph to communicate with the individual components to determine, from one or more of the components, when to schedule a rate change that can be perceived as immediate by a user, and to communicate rate change information to individual components in the filter graph. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
receiving a command from an application that indicates an immediate rate change is to be initiated;
selecting, as a guiding filter graph, a filter graph that is configured to process data samples;
ascertaining, from the guiding filter graph, a next available data sample on which the rate change can be implemented; and
scheduling the rate change for the next available data sample. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A system comprising:
-
one or more processors;
one or more computer-readable media;
computer-readable instructions embodied on the one or more computer-readable media which, when executed by the one or more processors, cause the one or more processors to;
receive a command from an application that indicates an immediate rate change is to be initiated;
select, as a guiding filter graph, a filter graph that is configured to process data samples;
ascertain, from the guiding filter graph, a next available data sample on which the rate change can be implemented; and
schedule the rate change for the next available data sample. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A system comprising:
-
a source component configured to read multimedia content and receive commands from an application to initiate an immediate rate change on the multimedia content;
a first filter graph associated with the source component and comprising individual components downstream from the source component, the individual components being configured to process data samples associated with the multimedia content for rendering;
at least one other filter graph associated with the source component and comprising individual components downstream from the source component, the individual components of the other filter graph being configured to process data samples associated with the multimedia content for rendering;
a virtual command channel supported by the source component and the filter graph components, the virtual command channel being configured to;
enable the source component to ascertain, from one or more of the filter graph components of one of the filter graphs, a next available data sample on which a rate change can be scheduled; and
communicate a scheduled rate change to components of at least one different filter graph. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. A system comprising:
-
one or more computer-readable media;
a first interface embodied on the computer-readable media and which maintains information that indicates whether a rate change has been scheduled for a data sample and, when a rate change is scheduled, an indication of the rate change;
a second interface embodied on the computer-readable media and which is configured to be used by an application to communicate a rate change to a media source; and
a third interface embodied on the computer-readable media and which enables individual components of a filter graph to communicate rate changes with one another. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
-
-
67. A system comprising:
-
one or more computer-readable media;
a first interface embodied on the computer-readable media and which maintains information that indicates whether a rate change has been scheduled for a data sample and, when a rate change is scheduled, an indication of the rate change, wherein the first interface indicates a rate change by using a timestamp associated with a data sample, and wherein the first interface comprises multiple flags that are associated with data samples and pertain to how a data sample is to be handled by a filter graph, the flags comprising;
a flag that indicates a first data sample in a reverse playback group of data samples;
a flag indicates a last sample the reverse playback group of data samples;
a flag that indicates part of a video section in forward or reverse scan mode;
a flag that indicates a location that specifies that the data sample should be truncated at this point; and
a flag that indicates a location before which data samples should be discarded;
a second interface embodied on the computer-readable media and which is configured to be used by an application to communicate a rate change to a media source, wherein the second interface comprises a first rate change method and a second rate change method, wherein the first rate change method requests a rate change insertion at a location specified with respect to media content that provides the data samples, the first rate change method providing information that enables a source component to map a media content location into a timestamp that is attached to output data samples, and wherein the second rate change method requires the source component to query downstream filter graph components for a current renderer position that is capable of performing the rate change; and
a third interface embodied on the computer-readable media and which enables individual components of a filter graph to communicate rate changes with one another, wherein the third interface comprises;
a first method that requests a rate change insertion at a next available location and returns a location on which the rate change is inserted;
a second method that requests a rate change insertion at a specified location;
a third method that requests a data truncation;
a fourth method that requests a data skip from a start of a data sample;
a fifth method that queries a maximum forward and reverse decode rate;
a sixth method that queries a furthest stream time that has not yet been processed; and
a seventh method that returns a renderer'"'"'s location in source timestamps. - View Dependent Claims (68)
-
-
69. A method comprising:
-
receiving a rate change command for a multimedia stream having unaligned component streams;
selecting a starting point on a primary stream of the multimedia stream;
inserting a skip point and a truncation point relative to one or more of the component streams;
seeking backwards on one or more component streams, other than the primary stream, effective to locate a clean point on the one or more component streams;
processing the one or more component streams by discarding data before the skip point, and truncating data after the truncation point effective to generate a logical block of data across multiple component streams; and
implementing the rate change on the logical block of data. - View Dependent Claims (70, 71, 72, 73)
-
Specification