> 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?

> 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.

vdr mailing list

Reply via email to