ms media foundation - Are custom sources supported with the IMFCaptureEngine? -
i've got custom source seams work simple topology. when queryinterface gets called stack looks this:
mysource.dll!mysource::queryinterface(const _guid & riid, void * * ppv) line 83 c++ mfcore.dll!cmediaeventptr::getunknown(struct imfmediaevent *,struct _guid const &,void * *) unknown mfcore.dll!cmpsourcemanager::onnewstream() unknown mfcore.dll!cmpsourcemanager::onsourceevent() unknown mfcore.dll!cmpsourcemanager::onsourceeventasynccallback::invoke(struct imfasyncresult *) unknown
using same custom source without topology, letting imfcaptureengine deal that. when queryinterface gets called stack looks this:
mysource.dll!mysource::queryinterface(const _guid & riid, void * * ppv) line 42 c++ mfcore.dll!cmediaeventptr::getunknown(struct imfmediaevent *,struct _guid const &,void * *) unknown mfcore.dll!cseqsourcewrap::handleupdatedstream(struct imfmediaevent *) unknown mfcore.dll!cseqsourcewrap::onsourceevent() unknown mfcore.dll!cseqsourcewrap::onsourceeventasynccallback::invoke(struct imfasyncresult *) unknown
in topo case, call getstreamdescriptor , requestsample , works.
mysourcecpp_com.dll!mystream::getstreamdescriptor(imfstreamdescriptor * * ppstreamdescriptor) line 187 c++ mfcore.dll!cmpsourcemanager::onnewstream() unknown mfcore.dll!cmpsourcemanager::onsourceevent() unknown mfcore.dll!cmpsourcemanager::onsourceeventasynccallback::invoke(struct imfasyncresult *) unknown mysourcecpp_com.dll!mystream::requestsample(iunknown * ptoken) line 208 c++ mfcore.dll!cmpsourcenodeinfo::requestsample() unknown mfcore.dll!cmpsourcenodeinfo::generatedata() unknown mfcore.dll!cmpsourcenodeinfo::processsample() unknown mfcore.dll!cmpwalker::processcommands() unknown mfcore.dll!cmfmediaprocessor::processsample() unknown mfcore.dll!cmfmediaprocessorstream::_requestsample() unknown mfcore.dll!cmfmediaprocessorstream::requestsample(struct iunknown *) unknown mfcore.dll!cbitpump::handlesinkrequestsample() unknown mfcore.dll!cbitpump::onsinkevent() unknown mfcore.dll!cbitpump::onsinkeventasynccallback::invoke(struct imfasyncresult *) unknown
in imfcaptureengine case never either call data never flows. see difference cmpsourcemanager vs. cseqsourcewrap.
Comments
Post a Comment