Dynamically adaptive multimedia application program interface and related methods
First Claim
Patent Images
1. A storage medium comprising a plurality of executable instructions which, when executed on a computing system, implement a method comprising:
- identifying one or more characteristics of one or more elements of a media processing system, wherein identifying the one or more characteristics of the one or more elements comprises;
generating a first negotiation data structure in accordance with a proposed set of media processing capabilities;
issuing the first negotiation data structure to one or more elements of a media processing system;
determining whether each of the one or more media processing system elements accepted the first negotiation data structure;
executing media processing tasks within the proposed media processing capabilities if the first negotiation data structure is accepted by the elements of the media processing system;
generating one or more auto-negotiation data structure(s) denoting a proposed set of media processing system capabilities and/or a proposed split in media processing among media system elements; and
iteratively issuing the auto-negotiation data structure(s) to media processing system elements until a proposed set of media processing system capabilities and/or split in media processing is agreed upon by each element of the media processing system;
dynamically negotiating which element of a media processing system will perform certain media processing tasks based, at least in part, on the identified one or more characteristics of the system element(s);
if the media processing system elements did not previously accept the first negotiation data structure, generating a second negotiation data structure that is different from the first negotiation data structure in accordance with another proposed set of media processing capabilities; and
iteratively performing the issuing, determining and generating until the media processing system elements accept a negotiation data structure.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of interfacing non-integrated media processing system elements is presented, the method comprising identifying one or more characteristics of one or more media processing system elements, and dynamically negotiating which system elements will perform certain media processing tasks based, at least in part, on the identified one or more characteristics of the system elements.
105 Citations
34 Claims
-
1. A storage medium comprising a plurality of executable instructions which, when executed on a computing system, implement a method comprising:
-
identifying one or more characteristics of one or more elements of a media processing system, wherein identifying the one or more characteristics of the one or more elements comprises; generating a first negotiation data structure in accordance with a proposed set of media processing capabilities; issuing the first negotiation data structure to one or more elements of a media processing system; determining whether each of the one or more media processing system elements accepted the first negotiation data structure; executing media processing tasks within the proposed media processing capabilities if the first negotiation data structure is accepted by the elements of the media processing system; generating one or more auto-negotiation data structure(s) denoting a proposed set of media processing system capabilities and/or a proposed split in media processing among media system elements; and iteratively issuing the auto-negotiation data structure(s) to media processing system elements until a proposed set of media processing system capabilities and/or split in media processing is agreed upon by each element of the media processing system; dynamically negotiating which element of a media processing system will perform certain media processing tasks based, at least in part, on the identified one or more characteristics of the system element(s); if the media processing system elements did not previously accept the first negotiation data structure, generating a second negotiation data structure that is different from the first negotiation data structure in accordance with another proposed set of media processing capabilities; and iteratively performing the issuing, determining and generating until the media processing system elements accept a negotiation data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computing system comprising:
-
a media processing application; a media processing accelerator; and an operating system, executing on the computing system, including an application program interface (API) to facilitate communication between the media processing application and the media processing accelerator, wherein the API includes a first set of auto-negotiation data structure(s) and operational data structure(s) to dynamically negotiate at least a first set of media processing system capabilities and/or a first split in media processing among system elements suitable to each of the media processing application and the media processing accelerator and to processing of received media content, respectively, wherein if the at least a first set of media processing system capabilities and/or the first split in media processing among system elements are not accepted by each of the system elements, the API generates a second set of auto-negotiation data structure(s) and operational data structure(s) that are different from the first set of auto-negotiation data structure(s) to negotiate at least a second set of media processing system capabilities and/or a second split in media processing among system elements suitable to each of the media processing application and the media processing accelerator and to processing of received media content, respectively, said API iteratively performing the generating until each of the system elements accepts a set of auto-negotiation data structure(s) and operational data structure(s), wherein the operational data structure(s) comprise; one or more residual difference data structures, generated by the API to pass residual difference information between the media processing application and the media processing accelerator for media processing; and one or more control command data structures, generated by the API to pass control commands between the media processing application and the media processing accelerator. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A storage medium comprising a plurality of executable instructions including instructions which, when executed on a computing system, implement an application program interface (API) to facilitate media processing between media processing system elements, the API including one or more auto-negotiation data structure(s) dynamically generated and issued to the media processing system elements to negotiate a set of media processing capabilities and/or a split in media processing tasks between the elements of the media processing system suitable to each of the media processing system elements, wherein the auto-negotiation data structures include a processing mode data structure, iteratively issued to the media processing system elements denoting an iterative changing of the proposed set of media processing capabilities until accepted by all media processing system elements where each iterative change is different than the previous iterative change, and wherein the API further comprises:
one or more operational data structures, to facilitate media processing between media processing system elements based, at least in part, on a negotiated set of media processing capabilities and/or split in media processing responsibility between the media processing system elements wherein the operational data structure(s) comprise; one or more residual difference data structures, generated by the API to pass residual difference information between a media processing application and a media processing accelerator for media processing; and one or more control command data structures, generated by the API to pass control commands between the media processing application and the media processing accelerator. - View Dependent Claims (19)
-
20. A computing system comprising:
-
means for identifying one or more characteristics of one or more elements of a media processing system, wherein said means for identifying the one or more characteristics of the system one or more elements comprises; means for generating a first negotiation data structure in accordance with a proposed set of media processing capabilities; means for issuing the first negotiation data structure to one or more elements of a media processing system; means for determining whether each of the one or more media processing system elements accepted the first negotiation data structure; means for executing media processing tasks within the proposed media processing capabilities if the first negotiation data structure is accepted by the elements of the media processing system; means for generating one or more auto-negotiation data structure(s) denoting a proposed set of media processing system capabilities and/or a proposed split in media processing among media system elements; and means for iteratively issuing the auto-negotiation data structure(s) to media processing system elements until a proposed set of media processing system capabilities and/or split in media processing is agreed upon by each element of the media processing system; means for dynamically negotiating which element of a media processing system will perform certain media processing tasks based, at least in part, on the identified one or more characteristics of the system element(s); means for generating a second negotiation data structure that is different from the first negotiation data structure in accordance with another proposed set of media processing capabilities if the media processing system elements did not previously accept the negotiation data structure; and means for iteratively performing the issuing, determining and generating until the media processing system elements accept a negotiation data structure. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
-
28. One or more computer-readable media comprising executable instructions which, when executed by a computing system, cause the one or more computer-readable media to implement a method comprising:
-
identifying one or more characteristics of one or more elements of a media processing system, wherein identifying the one or more characteristics of the system elements comprises; generating a first negotiation data structure in accordance with a first proposed set of media processing capabilities; issuing the first negotiation data structure to one or more elements of a media processing system; determining whether each of the one or more media processing system elements accepted the first negotiation data structure; and executing media processing tasks within the first set of proposed media processing capabilities if the first negotiation data structure is accepted by the elements of the media processing system; and generating one or more auto-negotiation data structure(s) denoting a proposed set of media processing system capabilities and/or a proposed split in media processing among media system elements; and iteratively issuing the auto-negotiation data structure(s) to media processing system elements until a proposed set of media processing system capabilities and/or split in media processing is agreed upon by each element of the media processing system; dynamically negotiating which element of a media processing system will perform certain media processing tasks based, at least in part, on the identified one or more characteristics of the system element(s); if the media processing system elements did not previously accept the first negotiation data structure, generating a second negotiation data structure that is different from the first negotiation data structure in accordance with a second proposed set of media processing capabilities; and iteratively performing the issuing, determining and generating until the media processing system elements accept a negotiation data structure. - View Dependent Claims (29, 30, 31, 32, 33, 34)
-
Specification