Hello,
I hope nothing in this message is obvious or dumb; I don't know MediaPortal, DirectShow, or Microsoft TV technologies all that well. However, I did find a problem and found a workaround for it, so maybe with some help we can find the right fix for it.
On my system with a Hauppauge WinTV-HVR-1600, it takes a very long time (probably 90 seconds), with the CPU maxed out, to bring up the Edit form for the analog side of my card in Televison->Capture Cards in MediaPortal Setup. It also take a long time, with a maxed out CPU, for MediaPortal to start up.
The line of code that takes a long time is line 297 in TVCapture/Graphs/Analog/SinkGraph.cs (from tag "Version 0.2.2", I'm trying to stay with the stable build)
int hr = _captureGraphBuilderInterface.RenderStream(cat, null/*new Guid[1]{ med}*/, _filterCapture, null, _mpeg2DemuxHelper.BaseFilter);
I don't know how to debug further down, since that's a call to Microsoft code. I did notice in my early investigation that there's lots of registry activity that looked consistent with DirectShow searching hard for matching filters.
It does eventually find a rendering (hr is 0 upon return), and everything works from there.
I saw that there is fallback code after the line above. So, I commented out the line (and the three lines after, and re-declared 'int hr') and let the fallback code try. It quickly finds an acceptable answer. After that change, the setup dialog comes up quickly, MediaPortal starts quickly, and analog TV is still available for viewing and tuning.
This problem may have become worse after I installed Nero ShowTime, which probably installs some DS filters. I'll have to try uninstalling that to see if that really was a factor.
What are some good next steps to narrow down this problem and find the right solution? Or, is there enough data here for someone else who knows this system better to fix it?
[By the way, in looking at this, I noticed that the FillInAll method in EditCaptureCardForm gets called three times in the process of bringing up the form. I suspect it really only needs to be called once, which would lessen the problems with the form coming up.]
Thanks,
Steven
I hope nothing in this message is obvious or dumb; I don't know MediaPortal, DirectShow, or Microsoft TV technologies all that well. However, I did find a problem and found a workaround for it, so maybe with some help we can find the right fix for it.
On my system with a Hauppauge WinTV-HVR-1600, it takes a very long time (probably 90 seconds), with the CPU maxed out, to bring up the Edit form for the analog side of my card in Televison->Capture Cards in MediaPortal Setup. It also take a long time, with a maxed out CPU, for MediaPortal to start up.
The line of code that takes a long time is line 297 in TVCapture/Graphs/Analog/SinkGraph.cs (from tag "Version 0.2.2", I'm trying to stay with the stable build)
int hr = _captureGraphBuilderInterface.RenderStream(cat, null/*new Guid[1]{ med}*/, _filterCapture, null, _mpeg2DemuxHelper.BaseFilter);
I don't know how to debug further down, since that's a call to Microsoft code. I did notice in my early investigation that there's lots of registry activity that looked consistent with DirectShow searching hard for matching filters.
It does eventually find a rendering (hr is 0 upon return), and everything works from there.
I saw that there is fallback code after the line above. So, I commented out the line (and the three lines after, and re-declared 'int hr') and let the fallback code try. It quickly finds an acceptable answer. After that change, the setup dialog comes up quickly, MediaPortal starts quickly, and analog TV is still available for viewing and tuning.
This problem may have become worse after I installed Nero ShowTime, which probably installs some DS filters. I'll have to try uninstalling that to see if that really was a factor.
What are some good next steps to narrow down this problem and find the right solution? Or, is there enough data here for someone else who knows this system better to fix it?
[By the way, in looking at this, I noticed that the FillInAll method in EditCaptureCardForm gets called three times in the process of bringing up the form. I suspect it really only needs to be called once, which would lessen the problems with the form coming up.]
Thanks,
Steven