Help - Search - Members - Calendar
Full Version: DWII Channel Change mechanism
DVB Owners Discussion Forum - dvbowners.com > Technical & Development Forums > DigitalWatch Development
Wi-Fi
Hi all:
Recently, I was interested in DWII and tried some functions of DWII especially for Timeshfiting.
I set the frequency of my country and could watch TV as normal. Because the speed of the channel change is somehow
slower than other player I used before, I tried some test for DWII.
The testing method can be described below:

1. double click DW.exe to run digital watch on my personal computer
2. select watch timeshift tv
3. click "enter" and the OSD show the channel list I could select
4. select another channel ( different frequency )
5. DWII completed channel change process

the channel change process need about 5 ~ 6 seconds. It even slower than startup the DWII until it can display tv
I tried to trace the log and the source file of DWII 2.0.7.6 and found that when I select another channel , it invoked BDADVBTimeshif setChannel and renderChaneel functions. In renderChannel, it destoryed source graph and sink graph and then rebuilded these graphs (that is this process reconstructed source and sink graph). Why don't we just putTuneRequect
to the NP?. why should we reconstruct the whole graph ? someone can provide the idea behind this process ?

cheers. Archer
bear
WiFi,
QUOTE
Why don't we just putTuneRequect
to the NP?. why should we reconstruct the whole graph ? someone can provide the idea behind this process ?
The need to rebuild the graph is related to DW's requirement to be able to use different stream types, DW can timeshift and record in ts as well as mpg.

The DWII was designed to operate on XP SP2 and with multiple tuners, when a channel is timeshifted and a new channel is selected the new graph is built prior to the display changing. Once you have both channels selected then changing back to the previous channel is almost seemless and returns you to the time when you channged. If all the tuners are in use, then the last selected channel is destroyed and the new channel graph is built.

The delay in changing channels you have is likely related to delays introduced by the OS(Permissions and virus checking), at the time DW was last modified the channel change was less than a second.
Wi-Fi
QUOTE (bear @ Feb 18 2009, 05:44 AM) *
WiFi,The need to rebuild the graph is related to DW's requirement to be able to use different stream types, DW can timeshift and record in ts as well as mpg.

The DWII was designed to operate on XP SP2 and with multiple tuners, when a channel is timeshifted and a new channel is selected the new graph is built prior to the display changing. Once you have both channels selected then changing back to the previous channel is almost seemless and returns you to the time when you channged. If all the tuners are in use, then the last selected channel is destroyed and the new channel graph is built.

The delay in changing channels you have is likely related to delays introduced by the OS(Permissions and virus checking), at the time DW was last modified the channel change was less than a second.


Thx for your explaination. Another question comes here.

If I want to implement my own DTV app, with TSfilesource filter(suppose single tuner card installed). How do I implement change channel? Can I just put tune_request to NP or I have to destroy whole graph as DWII ?

Thx
bear
The TSfilesource filter is designed to play files on the fly, that is you can change the file being played using the IFileSource::Load() function. The player filtergraph should stop, reconfigure and then play the new file. This is the best way to manage timeshift channel change. TsfileSource can play changing stream files but it is not recommended as the PCR values change.

To best manage a single tuner for this, all i can suggest is that you use a sink graph to timeshift the full ts, implement the tune request for the channel change, change the filename of the timeshift filter, and create a new file. Point the player to the file and then destroy the old one. Not sure on the success of this but worth a try.
Wi-Fi
QUOTE (bear @ Feb 24 2009, 09:42 PM) *
The TSfilesource filter is designed to play files on the fly, that is you can change the file being played using the IFileSource::Load() function. The player filtergraph should stop, reconfigure and then play the new file. This is the best way to manage timeshift channel change. TsfileSource can play changing stream files but it is not recommended as the PCR values change.

To best manage a single tuner for this, all i can suggest is that you use a sink graph to timeshift the full ts, implement the tune request for the channel change, change the filename of the timeshift filter, and create a new file. Point the player to the file and then destroy the old one. Not sure on the success of this but worth a try.


Wow!! Thanks for your suggestion.

I will give a try recently. if there are any progress, I will post the result here.

Best Regards
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2018 Invision Power Services, Inc.