CR: Bug 237651 Failure to initialize inputs upon first encode attempt.
"Sujeet Kharkar" <[email protected]>
| Newsgroups | gmane.comp.multimedia.helix.devel |
|---|---|
| Message-ID | <004401c9af32$ef9eb0f0$8c8c17ac@sujeetlaptop> |
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
{
_______________________________________________
Helix-client-dev mailing list
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/helix-client-dev