Media plug-in registration and dynamic loading
First Claim
1. A processor-readable medium comprising processor-executable instructions configured for:
- constructing a filter graph to process a data stream from a source file;
processing the data stream through the filter graph;
receiving an instruction to load a new filter into the filter graph;
recognizing the new filter based on registration parameters stored in a registry; and
dynamically loading the new filter into the filter graph during the processing.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are described for registering a plug-in with a media player and for dynamically loading the plug-in into the media player. When a plug-in is installed for use in the media player, it calls a registration function of the media player. The registration function specifies registration parameters to be provided by the plug-in. The registration function receives the registration parameters passed from the plug-in and stores them in a registry of the operating system in a specified format in the registry that enables the media player to recognize and load the plug-in if called to do so. The media player dynamically loads plug-ins in a manner that provides a seamless media presentation experience for a user.
75 Citations
37 Claims
-
1. A processor-readable medium comprising processor-executable instructions configured for:
-
constructing a filter graph to process a data stream from a source file;
processing the data stream through the filter graph;
receiving an instruction to load a new filter into the filter graph;
recognizing the new filter based on registration parameters stored in a registry; and
dynamically loading the new filter into the filter graph during the processing. - View Dependent Claims (2, 3, 4)
-
-
5. A processor-readable medium comprising processor-executable instructions configured for:
-
receiving a call to register a plug-in; and
in accordance with the call, receiving a set of registration parameters comprising;
a pwszFriendlyName parameter designating a name for the plug-in;
a pwszDescription parameter designating a description of the plug-in;
a pwszUninstallString parameter designating an uninstall string for uninstalling the plug-in;
a dwPriority parameter designating an integer value containing a priority position of the plug-in in a chain of currently enabled plug-ins;
a guidPluginType parameter designating a globally unique identifier that specifies a type for the plug-in;
a Clsid parameter designating a class identifier of the plug-in;
a cMediaType parameter designating a count of media types supported by the plug-in; and
a pMediaType parameter designating a pointer to an array of media types that enumerates supported media types for the plug-in. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A processor-readable medium having stored thereon a data structure that describes registration information for a media player to recognize a plug-in, the data structure comprising:
-
a pwszFriendlyName parameter designating a plug-in name;
a pwszDescription parameter designating a plug-in description;
a pwszUninstallString parameter designating an uninstall string for uninstalling a plug-in;
a dwPriority parameter designating an integer value containing a priority position of the plug-in in a chain of currently enabled plug-ins;
a guidPluginType parameter designating a globally unique identifier that specifies a type for the plug-in;
a Clsid parameter designating a class identifier of the plug-in;
a cMediaTypes parameter designating a count of media types supported by the plug-in; and
a pMediaTypes parameter designating a pointer to an array of media types that enumerates supported media types. - View Dependent Claims (17, 18)
-
-
19. A processor-readable medium having stored thereon a data structure, comprising:
-
a PLUG-IN_TYPE field containing data indicating a plug-in type;
a PLUG-IN_MAJOR_FORMAT field containing data indicating a subset of the plug-in type;
a PLUG-IN_MINOR_FORMAT field containing data indicating a second subset of the plug-in type;
a PLUG-IN_TYPE_CONFIGS field containing data indicating a configuration of the plug-in type;
a PLUG-IN_ID field containing data indicating a globally unique vendor identification of the plug-in type;
a DESCRIPTION field containing data indicating a description of the plug-in type;
a NAME field containing data indicating a name of the plug-in type;
a PRIORITY field containing data indicating a priority for the plug-in type; and
an UNINSTALLPATH field containing data indicating a string to uninstall the plug-in type.
-
-
20. A processor-readable medium having stored thereon a data structure, comprising:
-
a PLUG-IN_TYPE_CONFIGS field containing data indicating a configuration of a plug-in type;
a PLUG-IN_ID field containing data indicating a globally unique vendor identification of the plug-in type;
an ENABLED field containing data indicating whether the plug-in type is enabled; and
a PRIORITY field containing data indicating a priority for the plug-in type in a playback chain.
-
-
21. A method comprising:
-
receiving streaming data;
constructing a filter graph based on a data type of the streaming data;
processing the streaming data through the filter graph;
receiving an instruction to load a new filter into the filter graph;
recognizing the new filter based on registration parameters stored in a registry; and
dynamically loading the new filter into the filter graph during the processing. - View Dependent Claims (22, 23, 24)
-
-
25. A computer comprising:
-
a registration function configured to receive a set of registration parameters from a filter plug-in, the registration parameters comprising;
a pwszFriendlyName parameter designating a name for the plug-in;
a pwszDescription parameter designating a description of the plug-in;
a pwszUninstallString parameter designating an uninstall string for uninstalling the plug-in;
a dwPriority parameter designating an integer value containing a priority position of the plug-in in a chain of currently enabled plug-ins;
a guidPluginType parameter designating a globally unique identifier that specifies a type for the plug-in;
a Clsid parameter designating a class identifier of the plug-in;
a cMediaType parameter designating a count of media types supported by the plug-in; and
a pMediaType parameter designating a pointer to an array of media types that enumerates supported media types for the plug-in. - View Dependent Claims (26, 27, 28, 29, 30)
-
-
31. A computer comprising:
-
means for constructing a filter graph to process a data stream from a source file;
means for processing the data stream through the filter graph;
means for receiving an instruction to load a new filter into the filter graph;
means for recognizing the new filter based on registration parameters stored in a registry; and
means for dynamically loading the new filter into the filter graph during the processing. - View Dependent Claims (32, 33, 34)
-
-
35. A filter graph comprising:
-
a first filter configured to process data by a first process, the first filter processing a first part of a data stream and a second part of the data stream;
a second filter loaded into the filter graph after the first part of the data stream is processed by the first filter, the second filter configured to process data by a second process, the second filter processing the second part of the data stream; and
a rendering filter configured to render the data stream, the rendering filter rendering the first part of the data stream processed by the first filter and rendering the second part of the data stream processed by both the first filter and the second filter. - View Dependent Claims (36, 37)
-
Specification