Re: CN: www/2009/devdocs/XFP-SOD-CrossFadePlayer.doc
Nicholas Hart <[email protected]>
| Newsgroups | gmane.comp.multimedia.helix.devel |
|---|---|
| Message-ID | <[email protected]> |
I have one more question about this. I've setup the plugin as described and the IHXCrossFadePlayer implements IHXContextUser. Its RegisterContext() is called, but when I try to QI the IUnknown context for IHXClientEngine I get a "no interface" error. Is there something else I should do to get the client engine? Or should I use a different mechanism to pass the client engine in to the crossfade player? thanks! Eric Hyche wrote: > Nick, > > Sorry for the delay in providing feedback. Here's mine: > > 1) I like client/xfadeplayer instead of client/xfadeplugin, > although whatever you choose will be fine. > > 2) Inside of client/xfadeplayer, I would have two sub-Umakefil's: > one that builds the IHXCrossFadePlayer into a static lib, > and the other sub-Umakefil that builds an Atlas component > plugin (and links in the static lib built in the other > sub-Umakefil). > > A component plugin is one that implements IHXComponentPlugin. > This interface tells the media platform that this plugin > can create certain CLSID_xxx's. It specifies how many CLSID_xxx's > it can create via IHXComponentPlugin::GetNumComponents() > and it provides the list of CLSID_xxx's via > IHXComponentPlugin:: GetComponentInfoAtIndex(). > > The IHXCrossFadePlayer object should also implement IHXContextUser. > That way, when the plugin handler creates it, it will automatically > pass it the context via IHXContextUser::RegisterContext. > > See client/netwksvc/hxnetwksvcpln.cpp, client\autoupgdmgr\autoupgdpln.cpp, > client\downloadmgr\downloadpln.cpp, or client\core\hxmedengpln.cpp > for examples of component plugins. > > 3) When an application uses an IHXPlayer, then it: > > - loads the media platform > - QI's the media platform for CCF > - uses CCF to create IHXClientEngine > - uses IHXClientEngine to create IHXPlayer > > So for IHXCrossFadePlayer, it will: > > - load the media platform > - QI the media platform for CCF > - use CCF to create IHXCrossFadePlayer. The plugin > handler will make sure that the object gets a context > via its IHXContextUser::RegisterContext() method. > The context that it is passed will *be* the media > platform. > > There is no need to specifically have the application create > a client engine and pass it to the IHXCrossFadePlayer object. > The crossfade player object has a context, so it can create > a client engine internally itself and then manage the > lifetime of that client engine. > > 4) Under "Testing Provisions", I would suggest a command-line > test app in client/xfadeplayer/test. You could use splay > as a starting point for that, or better yet, use my dirt-simple > SHAPE (Simplest Helix Audio Player Ever) player at > clientapps\samples\shape as a starting point. > > > Eric > > ======================================= > Eric Hyche ([email protected]) > Principal Engineer > RealNetworks, Inc. > > >> -----Original Message----- >> From: [email protected] [mailto:[email protected]] >> On Behalf Of Nicholas Hart >> Sent: Wednesday, February 18, 2009 4:48 PM >> To: [email protected] >> Subject: Re: [Helix-client-dev] CN: www/2009/devdocs/XFP-SOD-CrossFadePlayer.doc >> >> there has been zero commentary on this proposal. >> >> I'm at a point where I'd like to start checking in some files. The >> project is by no means finished, but I'd like the security of keeping my >> work in CVS in case my hard drive gets fried. >> >> Should I start submitting some code reviews to this alias? >> >> Thanks! >> >> >> >> >> Nicholas Hart wrote: >>> Modified by: [email protected] >>> Reviewed by: >>> Date: 2/11/09 >>> Project: internal RealNetworks product >>> >>> Synopsis: SOD for client feature to enable cross-fade and gap-less >>> playback of audio clips >>> >>> Overview: I've committed a SOD for a new player object which uses the >>> client engine to perform a cross-fade between two audio clips. >>> >>> Files Added: >>> [File 1] >>> https://helixcommunity.org/viewcvs/helix-client/www/2009/devdocs/XFP-SOD- >> CrossFadePlayer.doc?view=log >>> - SOD for this feature >>> >>> Platforms and Profiles Affected: >>> none - SOD only >>> >>> Platforms and Profiles Functionality verified: >>> none - SOD only >>> >>> Branch: HEAD >>> >>> Copyright assignment: >>> >>> 4. I am a RealNetworks employee or contractor >>> >>> >>> >>> _______________________________________________ >>> Helix-client-dev mailing list >>> [email protected] >>> http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev >>> >>> >> _______________________________________________ >> Helix-client-dev mailing list >> [email protected] >> http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev > > >