Hello,
I'm trying to add to the command-line producer the hability
of sending RM Events along with the audio/video live stream.
So, I've modified the CSDKSession class to have the option
of setting up parallel inputs, like the example code in the
advencoder app.
The problem is: When I try to get an Input of type
InputMediaSink, the BuildInstance() method fails to get an
instance of the input. Below is the piece of code used to
get this input instance.
//...
if(SUCCEEDED(res))
{
res = m_spFactory->CreateInstance(IID_IHXTPropertyBag,
(IUnknown**) &pBag);
if(SUCCEEDED(res))
{
res = pBag->SetString(kPropPluginType,
kValuePluginTypeInputMediaSink);
}
if (SUCCEEDED(res)) {
res = pBag->SetBool(kPropIsRealTime, FALSE);
}
if(SUCCEEDED(res))
{
IHXTInput* pInput = NULL;
res = m_spFactory->BuildInstance(IID_IHXTInput, pBag,
(IUnknown**) &pInput);
//...
I've traced the execution with the debbuger and found that
the function Plugin2Handler::FindGroupOfPluginsUsingValues()
[copied below] does not find the input media sink plugin,
and return HXR_FAIL.
HX_RESULT
Plugin2Handler::FindGroupOfPluginsUsingValues(IHXValues*
pValues,
REF(CPluginEnumerator*) pEnumerator)
{
CHXSimpleList::Iterator i = m_PluginList.Begin();
pEnumerator = NULL;
for(; i!= m_PluginList.End(); ++i)
{
Plugin2Handler::Plugin* pPlugin =
(Plugin2Handler::Plugin*) *i;
if (pPlugin->DoesMatch(pValues))
{
if (!pEnumerator)
{
pEnumerator = new CPluginEnumerator();
}
pEnumerator->Add(pPlugin);
}
}
if (!pEnumerator)
{
return HXR_FAIL;
}
return HXR_OK;
}
I added a line of code inside the DoesMatch() function, to
print the pluginName of all the compared plugins, and as you
can see in the plugin list below, it looks like there is no
input media sink plugin. I suppose I should see on this list
a plugin named "rn-input-mediasink", for this to
succeed, rigth? Should not the input media sink plugin have
already been loaded? Or, what could I do so that it gets
loaded?
This is plugin list I've got:
rn-prefilter-audiodelaycomp
rn-transform-audioformatconv
rn-prefilter-audiogain
rn-audiocodec-lossless
rn-prefilter-levelmeter
rn-transform-resamplerexact
rn-avfile-aviuncompressed
rn-capture-av
rn-avfile-directshow
rn-transform-realevent
rn-avfile-movuncompressed
rn-packetizer-mpeg4audio
rn-avfile-qt
rn-server-rbs
rn-rm-session-format
rn-file-realmedia
rn-audiocodec-realaudio
rn-packetizer-realaudio
rn-videocodec-realvideo
rn-packetizer-realvideo
rn-prefilter-inputcropping
rn-prefilter-dupframedropper
rn-prefilter-blacklevel
rn-prefilter-videonoisereduction
rn-prefilter-deinterlace
rn-prefilter-videoresize
rn-avfile-wavuncompressed
Thanks,
Anderson Luiz Brunozi
_______________________________________________
Helix-producer-dev mailing list
Helix-producer-dev helixcommunity.org
http://lists.helixcommunity.org/mailman/listi
nfo/helix-producer-dev
|