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
> 
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.