This comes down to one question, how long do we wait?
10 minutes seems to be a long time already. Do you think you can speed up EPG Collector a big?
I will change it to 20 minutes for the next build.
Thanks Yaobing.
I have thought about the issue of how long MC should wait, and there is no simple answer.
For the "internal" MC option, "Download EPG automatically", ten minutes should be plenty of time. Well, depending on server load at the source I guess. I can't use it so I can't test it.
I'm not sure for the mc2xml option, as I haven't used it. It does use an external program, but it is downloading formatted XMLTV files from known sources, and should be quick. So ten minutes should be fine in most cases.
However the XMLTV option uses a fully external and unknown program. It could take any amount of time to complete, and JRiver can't really predict how long that is going to be.
For example, as I mentioned above the basic EPG data collection using EPG Collector (EPGC) takes less than 3 minutes for my 34 channels. But what if I had 300 channels, like some people do? EPGC supports OTA, Cable, and Satellite providers, so 300 channels would be quite possible.
On top of that, if an EPGC user wants to improve their EPG data and they turn on Metadata Lookup, as I did, the time is extended tenfold. EPGC takes a lot longer to run the Metadata Lookup initially, as it builds a database of programs it has previously looked up and only goes to the internet when it doesn't already have the information for a program. Initially, for my 1 week, 34 channel EPG, the Metadata Lookup took 30 minutes or so.
If I have to refresh the EPGC Metadata Databases for any reason, my EPG run would take about 35 minutes for the first few runs. Currently it is stabilising at between 16 and 18 minutes. So 20 minutes is barely enough for me right now, and would not be long enough if anything changes.
But wait, there is more. EPGC also allows the possibility of combining multiple sources of EPG data together as part of its run. I considered using a local high quality EPG data source, but as it doesn't provide data for all my channels, I would still need to look up the remaining channels using the OTA transmission, and then combine the data. That would add still more time.
Finally, it would not be good to have a long global wait time in MC, because if something went wrong it would be a long time before the process is shut down and therefore a long time the user had to wait if they were monitoring the process or testing it as I have been. Not to forget, what would happen if it was still running and a TV recording was due to start?
I think the answer to your question; "How long do we wait?" comes down to; "We don't know."
Therefore, at least for the XMLTV option, I think the best answer is to provide a Wait Parameter, specifying how long MC should wait for the process to complete. I suggest that it could be put into the Load Program Guide dialogue along with the external program settings.
Other issues:
Another question you may ask is; Why is there no process termination time when the EPG process is run manually from within MC, but a process termination time is imposed when it is run on schedule. There must have been some recognition that the EPG collection could take longer than 10 minutes, and when running it manually it should be allowed to run until completion, no matter how long that took.
What other processes are affected by having the Load Program Guide process run a long time? Can the Guide be updated while it is in use? I'm sure you have considered all those sorts of issues in the past Yaobing. I have little idea of the implications.
Why must the EPG data collection wait until no programs are recording? If there are spare tuners, as there are in my case, couldn't it just run anyway? If I run EPGC externally on a Windows Scheduler Task, EPGC just takes the next available tuner anyway.
If a TV recording is due to start, and all tuners will be required by MC and the EPG data collection is still running, should the EPG data collection be terminated and restarted at a time there will be free tuners? If so, how big a gap between recordings is required? Could a Wait Parameter as suggested above be used as the required gap?
Why doesn't MC wake the HTPC from sleep to run the Load Program Guide process? After all, it can wake the HTPC to record a program.
Once again, forgive my long response. But the devil is in the detail, so I need to explain my thought process in asking for changes. Thanks for putting up with me.