Interfaces for digital media processing
First Claim
1. A computer-readable medium encoded with computer-executable instructions which, when executed by a processor, perform a method for preparing media content for presentation, the media content receivable from a media source as a plurality of media content units, the method comprising:
- identifying a portion of a first memory allocated for storing media content units received from the media source;
identifying a first media content unit received from the media source;
identifying a first storage location for the first media content unit in the allocated portion of the first memory;
forming a first data structure associated with the first media content unit, the first data structure having a field for storing information about the first storage location; and
arranging for exposing the first data structure to a hardware component having a second memory,the information about the first storage location obtained from the first data structure usable by the hardware component to directly access the first media content unit from the first memory without using a central processing unit.
2 Assignments
0 Petitions
Accused Products
Abstract
APIs discussed herein promote efficient and timely interoperability between hardware and software components within the media processing pipelines of media content players. A PhysMemDataStructure API facilitates a hardware component'"'"'s direct access to information within a memory used by a software component, to enable the hardware component to use direct memory access techniques to obtain the contents of the memory, instead of using processor cycles to execute copy commands. The PhysMemDataStructure API exposes one or more fields of data structures associated with units of media content stored in a memory used by a software component, and the exposed fields store information about the physical properties of the memory locations of the units of media content. SyncHelper APIs are used for obtaining information from, and passing information to, hardware components, which information is used to adjust the hardware components'"'"' timing for preparing media samples of synchronously-presentable media content streams.
53 Citations
20 Claims
-
1. A computer-readable medium encoded with computer-executable instructions which, when executed by a processor, perform a method for preparing media content for presentation, the media content receivable from a media source as a plurality of media content units, the method comprising:
-
identifying a portion of a first memory allocated for storing media content units received from the media source; identifying a first media content unit received from the media source; identifying a first storage location for the first media content unit in the allocated portion of the first memory; forming a first data structure associated with the first media content unit, the first data structure having a field for storing information about the first storage location; and arranging for exposing the first data structure to a hardware component having a second memory, the information about the first storage location obtained from the first data structure usable by the hardware component to directly access the first media content unit from the first memory without using a central processing unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. An architecture for a media processing pipeline for use in a media presentation system, the architecture comprising:
-
a software component configured to receive media content units and to arrange for storage of the received media content units in a first memory; and a hardware component having a second memory, the hardware component responsive to the software component and configured to transfer representations of media content units stored in the first memory to the second memory; and an API operable at a boundary between the software component and the hardware component, the API configured to expose, at the request of the first software component, at least one data structure field having information about the storage locations of particular media content units within the first memory to first hardware component, the exposed data structure field enabling the first hardware component to directly transfer representations of media content units stored in the first memory to the second memory without using a central processing unit. - View Dependent Claims (16)
-
-
17. A computer-readable medium encoded with computer-executable instructions which, when executed by a processor, perform a method for playing a digital media presentation having a play duration and a media content component, the media content component comprising
a first clip arranged into a first plurality of media samples, the first clip having a first play duration and playable as a first media content stream, and a second clip arranged into a second plurality of media samples, the second clip having a second play duration and playable as a second media content stream, the method comprising: -
identifying a first media sample from the first clip; identifying a second media sample from the second clip, the second media sample synchronously playable with the first media sample; at a first time associated with preparing the first media sample for presentation using a first hardware component at a rate based on a first timing signal, ascertaining a first elapsed amount of the play duration of the digital media presentation, and ascertaining an elapsed amount of the first play duration; at a second time associated with preparing the second media sample for presentation using a second hardware component at a rate based on a second timing signal, ascertaining a second elapsed amount of the play duration of the digital media presentation, and ascertaining an elapsed amount of the second play duration; ascertaining a difference between the first elapsed amount of the play duration of the digital media presentation and the second elapsed amount of the play duration of the digital media presentation; and based on the difference, adjusting either the first time or the second time or both. - View Dependent Claims (18, 19, 20)
-
Specification