RE: CR: Bug 237651 Failure to initialize inputs upon first encode attempt.

"Eric Hyche" <[email protected]>
Newsgroups gmane.comp.multimedia.helix.devel
Organization RealNetworks, Inc.
Message-ID <006b01c9b209$744ddf00$5ce99d00$@com>
Nice catch, Sujeet. This looks good for checkin.

Eric

=======================================
Eric Hyche ([email protected])
Principal Engineer
RealNetworks, Inc.


>-----Original Message-----
>From: [email protected] [mailto:[email protected]]
>On Behalf Of Sujeet Kharkar
>Sent: Friday, March 27, 2009 7:23 PM
>To: [email protected]; [email protected]
>Subject: [Helix-client-dev] CR: Bug 237651 Failure to initialize inputs upon first encode attempt.
>
>Synopsis
>
>============
>
>Bug 237651 Failure to initialize inputs upon first encode attempt.
>
>Producer Fails to encode on first encode.
>
>
>
>Suggested Reviewer: Eric Hyche
>
>
>
>Branches
>
>=========
>
>Head
>
>
>
>Description
>
>==============
>
>Cause:
>
>=======
>
>In Media Platforms Init() call. There is call to Plugin2Handler::RefreshPluginInfo, which reads
>registry for plugin's cached information.
>
>
>
>Default key used with producer is
>HKEY_CURRENT_USER\Software\Helix\HelixSDK\1.0\Preferences\MountPoints.
>
>This registry contains details about each plugin like dll name mount point and other details including
>GUID of plugin.
>
>During reading PluginHandler will create internal index, which will map plugins properties from
>registry like GUID to actual plugin.
>
>At the end PluginHandler scans actual dll present in mount point to confirm, if any of loaded DLL are
>not present in registry it re-writes registry entry. At this point it checks if plugin implements
>IHXComponentPlugin, in yes then other plugin properties like GUID are added to index.
>
>
>
>During first encode, there is no registry entry so PluginHandler will not update it's internal index
>of GUID to plugin as most of producer plugins do not implement IHXComponentPlugin, hence when producer
>SDK tries to create plugin from GUID it will fail.
>
>
>During second encode and hence forth these enteries are created, so everything works.
>
>
>
>Fix
>
>===
>
>Fix was to add additional plugin values to index even though plugin does not implement
>IHXComponentPlugin.
>
>
>
>
>
>Files affected
>
>==================
>
>client/common/container/plghand2.cpp,v
>
>
>
>
>
>Testing
>
>=================
>
>Verfied with deleting registry entry producer is still able to encode.
>
>
>
>QA Hints
>
>=============
>
>None
>
>
>
>Diff
>
>=======
>
>Index: plghand2.cpp
>
>===================================================================
>
>RCS file: /cvsroot/client/common/container/plghand2.cpp,v
>
>retrieving revision 1.59
>
>diff -u -r1.59 plghand2.cpp
>
>--- plghand2.cpp  19 Jan 2009 23:35:18 -0000    1.59
>
>+++ plghand2.cpp  27 Mar 2009 22:11:48 -0000
>
>@@ -582,6 +582,7 @@
>
>                 {
>
>                     pPlugin->GetValuesFromDLL(pIHXPlugin);
>
>                     m_PluginList.AddTail(pPlugin);
>
>+                    AddPluginToIndices(pPlugin);
>
>
>
>                     // Print out some log info about the plugin we just loaded
>
>                 {
>
>
>
>
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.