Hi Rob,
I also don't think its a pvrinput problem because: streamdev doesn't query for a new device if the current and the next channel has the same transponder. This is checked via the following define:
channels.h:#define ISTRANSPONDER(f1, f2) (abs((f1) - (f2)) < 4) //XXX
All the channels in channel.conf have the same frequency, so streamdev only changes the receivers but doesn't query for a device. I havent understand exactly what you are doing. Do you use an analogue input (like scart) of the pvr500 card and the channel switch script changes the channel of another device ? If so, i could imagine the frequency in channels.conf doesn't matter and you could simply modify the frequencies.
Regards, Rainer
2011/6/8 Rob Davis rob@davis-family.info:
I have a PVR500 with the PVRInput plugin running on my Backend.
I am using an old Hauppauge FF DVB-s card just as a frontend on another
low powered system in order to throw the PVRInput channels to the kitchen. On the backend it's all working, however, switching between channels doesn't quite work, as the streamdev server will give the client the same channel over and over again regardless of what it requested, unless the device changes (ie, if I go from /dev/video1 to /dev/video2 it'll change channel).
how do you force switching the video device?
i hacked device.c.. But don't tell anyone.. :-)
An example of the channel list is:
2-WTTW PBS_Affiliate ntsc;WTTW:67250:TV|NTSC:V:0:301+101=2:300=@4:0:0:30020:32:32:0 3-WREX NBC_Affiliate ntsc;WREX:67250:TV|NTSC:V:0:301+101=2:300=@4:305:0:30030:48:48:0 4-WTVO
ABC_Affiliate
ntsc;WTVO:67250:TV|NTSC:V:0:301+101=2:300=@4:0:0:30040:64:64:0 5-WIFR CBS_Affiliate ntsc;WIFR:67250:TV|NTSC:V:0:301+101=2:300=@4:0:0:30050:80:80:0 6-WQRF Fox_Affiliate ntsc;WQRF:67250:TV|NTSC:V:0:301+101=2:300=@4:0:0:30060:96:96:0
But, obviously all on the same line. I think this is probably an issue
with streamdev rather than pvrinput as it works with Vomp happily.
I need it to detach and change channel in order to trigger the external
channel changer script.
pvrinput does its channel settings (this includes executing the externchannelswitch-script) inside its function OpenDvr() while the encoder is still stopped. The settings will only be done if the bool ChannelSettingsDone is false.
This
bool is always false at first plugin start. I guess this is the reason
why your channel settings were done once:
Jun 7 19:13:24 oac vdr: [8795] entering cPvrDevice::OpenDvr: Dvr of
/dev/video1 (PVR500#1) is closed
Jun 7 19:13:24 oac vdr: [8795] entering cPvrDevice::CloseDvr: Dvr of
/dev/video1 (PVR500#1) is closed
Jun 7 19:13:24 oac vdr: [8795] cPvrDevice::ResetBuffering(): tsBuffer
prefill = 314524 for /dev/video1 (PVR500#1)
Jun 7 19:13:24 oac vdr: [8795] channel is television. Jun 7 19:13:24 oac vdr: [8795] OpenDvr: calling /etc/vdr/plugins/pvrinput/externchannelswitch.sh 30040 4 1 67250 Jun 7
19:13:25 oac vdr: [8795] OpenDvr: returned from
/etc/vdr/plugins/pvrinput/externchannelswitch.sh 30040 4 1 67250 Jun 7
19:13:25 oac vdr: [8795] OpenDvr: sleeping for 3 seconds... Jun 7 19:13:28 oac vdr: [8795] OpenDvr: waking up
Jun 7 19:13:28 oac vdr: [8795] SetVBImode(525, 0) on /dev/video1
When leaving OpenDvr, the bool is set to true. It will only become false again during runtime, if vdr calls the
pvrinput- function SetChannelDevice() and determines the needed settings.
And this is your problem. There are no debug messages from pvrinput's
SetChannelDevice() or ProvidesChannel(), so vdr never calls these pvrinput
functions - although a channel switch for a pvrinput device is requested.
But why? I have no idea. It works for you with vomp. It worked for me
with streamdev when I tested this last year. But I had only streamdev-server running and used vlc to switch channels.
Maybe a streamdev developer reads this and has an idea or can explain
possible
interactions between streamdev-client, vdr and a receiving device.
I think this is a streamdev issue not a pvrinput one, as if I change from channel 5 to 6 on the remote streamdev client it will continue to display channel 5. If both my tuners are busy then it will lock to channel 5 on my backend if I test it with xineliboutput. Not lock to channel 6. I had a look at the http::// streamdev playlist settings and it sees different channel pids. Streamdev to vlc would work as it breaks the streamdev connection when you change channel. But streamdev-server to streamdev-client doesn't seem to break the connection, just request a second channel as it releases the first.
vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr