Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-10 Thread Frank Schmirler
On Wed, 8 Jun 2011 20:43:38 +0200, Martin Dauskardt wrote
 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.

Streamdev-client won't forward calls to SetChannelDevice and ProvidesChannel
to the server, if the current channel and the requested new channel are on the
same transponder. Instead it will just go ahead and later add the PIDs of the
new channel to the current connection.

Pvrinput obviously uses the same frequencies (i.e. transponder) and even the
same PIDs for different channels, so streamdev-clients current behaviour is
bound to fail. According to an other posting in this thread, it is not
possible to use different frequencies, so it seems the problem needs to be
fixed in streamdev-client. Please try the following patch:

--- a/common.h
+++ b/common.h
@@ -23,7 +23,7 @@
 #  define Dprintf(x...)
 #endif
 
-#define TRANSPONDER(c1, c2) (c1-Transponder() == c2-Transponder())
+#define TRANSPONDER(c1, c2) (c1-Transponder() == c2-Transponder() 
!c1-IsSourceType('V'))
 
 #define MAXPARSEBUFFER KILOBYTE(16)

AFAIKT the problem is streamdev-client only. So HTTP streaming with e.g. VLC
is not affected.
 
Regards,
Frank

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-10 Thread Rob Davis

On 06/10/2011 02:26 AM, Frank Schmirler wrote:

On Wed, 8 Jun 2011 20:43:38 +0200, Martin Dauskardt wrote

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.

Streamdev-client won't forward calls to SetChannelDevice and ProvidesChannel
to the server, if the current channel and the requested new channel are on the
same transponder. Instead it will just go ahead and later add the PIDs of the
new channel to the current connection.

Pvrinput obviously uses the same frequencies (i.e. transponder) and even the
same PIDs for different channels, so streamdev-clients current behaviour is
bound to fail. According to an other posting in this thread, it is not
possible to use different frequencies, so it seems the problem needs to be
fixed in streamdev-client. Please try the following patch:

--- a/common.h
+++ b/common.h
@@ -23,7 +23,7 @@
  #  define Dprintf(x...)
  #endif

-#define TRANSPONDER(c1, c2) (c1-Transponder() == c2-Transponder())
+#define TRANSPONDER(c1, c2) (c1-Transponder() == c2-Transponder()
!c1-IsSourceType('V'))

  #define MAXPARSEBUFFER KILOBYTE(16)

AFAIKT the problem is streamdev-client only. So HTTP streaming with e.g. VLC
is not affected.


I need to put something else somewhere else:

g++ -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -fPIC -c 
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE 
-DCONFDIR=\/etc/vdr\ -DUSE_ALTERNATECHANNEL -DUSE_CHANNELBIND 
-DUSE_MCLI -DUSE_PINPLUGIN -DUSE_PLUGINMISSING -DUSE_YAEPG -D_GNU_SOURCE 
-DPLUGIN_NAME_I18N='streamdev-client' -I/usr/include 
-I/usr/include/vdr/include -I.. -I/usr/include/vdr -o device.o device.c
device.c: In member function ‘virtual bool 
cStreamdevDevice::IsTunedToTransponder(const cChannel*)’:

device.c:78:14: error: expected ‘;’ before ‘-’ token
device.c:80:13: warning: statement has no effect
device.c:78:7: error: label ‘Channel’ used but not defined
device.c: In member function ‘virtual bool 
cStreamdevDevice::ProvidesChannel(const cChannel*, int, bool*) const’:

device.c:109:38: error: expected primary-expression before ‘)’ token
device.c:109:38: error: expected ‘;’ before ‘)’ token
device.c: In member function ‘virtual bool 
cStreamdevDevice::SetChannelDevice(const cChannel*, bool)’:

device.c:135:14: error: expected ‘;’ before ‘-’ token
device.c:137:14: warning: statement has no effect
device.c:135:7: error: label ‘Channel’ used but not defined
make[1]: *** [device.o] Error 1
make[1]: Leaving directory `/usr/src/vdr-src/vdr-plugin-streamdev/client'
make: *** [client] Error 2



___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-10 Thread Rob Davis

On 06/10/2011 07:12 PM, Rob Davis wrote:


AFAIKT the problem is streamdev-client only. So HTTP streaming with 
e.g. VLC

is not affected.



I need to put something else somewhere else:


Ooops, my fault.  I forgot to take a bracket out.

Patch works..

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-09 Thread Martin Dauskardt
  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.
 
   The frequency matters since he is using the tuner input.
 
 Lars.

I think Rob's version of pvrinput has already the code for calling the 
externchannelswitch-script in case eTelevision and not only in case 
eExternalInput. (Otherwise it wouldn't work at startup).

The code in ProvidesChannel() and SetChannelDevice checks not only for the 
same frequency, but also for the channel number:

if ((Channel-Number() == CurrentChannel.Number())  (CurrentFrequency == 
Channel-Frequency())  (CurrentInput == input)  (CurrentNorm == norm)) 

When Rob switches to another channel number, pvrinput should return
needsDetachReceivers = true
in ProvidesChannel(). It should also get a call for SetChannelDevice().

The problem is that both functions are never called - but obviously only in 
combination with running streamdev.

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-09 Thread Rainer Blickle
Hi Rob,

 Can we put a check in streamdev to check if it's a pvrinput device and
 recall even if the frequency is the same?


if i got it right the pvr devices hasn't to be retuned when switching
the channel, but the externchannelswitch-script has to be executed.

IMO it isn't a good idea to check for a pvrinput device in the
softdevice server. These two plug-ins shouldn't have any dependencies.
What you really need is that the external channel script gets executed
If some constraints are fullfilled. My first idea is to extend the
core vdr for a callback function which informs plugins about
attaching/detaching receivers to/from a device and retuning of a
device.

With this informations a plugin could execute such externchannelswitch-scripts.

But i think there is a problem that can't be fixed with this approach:
When watch live tv on channel 1 and streamdev requests channel 2, vdr
cannot handle this. Why? : vdr/streamdev doesn't know that 2 different
pvrinput-devices are needed. Correct me if i'm wrong

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-09 Thread Rainer Blickle
Hi Rob,

for your (and only for your) problem there could be an easier solution:

When doing a channel switch streamdev queries for a new device while
the current device is still active (means receivers are attached to
the device). If no device could be found, streamdev detaches itself
and queries again.

If streamdev only queries for a device after detaching itself, the
pvrinput device gets closed and reopened again incl. executing the
channel switch thing. This is a really hack with some disadvantages
(e.g. like larger channel switch times in case of multiple channels in
a transponder) but i guess this would help.

I guess doing the following line should be sufficient in
server/connection.c (streamdev-version 0.5.0-CVS):

bool cServerConnection::ProvidesChannel(const cChannel *Channel, int Priority)
{
const cChannel *current = 
Channels.GetByNumber(cDevice::CurrentChannel());
const cChannel *current = 
Channels.GetByNumber(cDevice::CurrentChannel());

 cDevice *device = CheckDlevice(Channel, Priority, false);
 cDevice *device = 0;
if (!device || (device == cDevice::ActualDevice()
 !cSuspendCtl::IsActive()
 StreamdevServerSetup.SuspendMode != smAlways
 current != NULL
 !TRANSPONDER(Channel, current))) {
// mustn't switch actual device
// maybe a device would be free if THIS connection did turn off 
its streams?
Detach();
device = CheckDevice(Channel, Priority, false);
Attach();




2011/6/9 Rainer Blickle rainer.blic...@googlemail.com:
 Hi Rob,

 Can we put a check in streamdev to check if it's a pvrinput device and
 recall even if the frequency is the same?


 if i got it right the pvr devices hasn't to be retuned when switching
 the channel, but the externchannelswitch-script has to be executed.

 IMO it isn't a good idea to check for a pvrinput device in the
 softdevice server. These two plug-ins shouldn't have any dependencies.
 What you really need is that the external channel script gets executed
 If some constraints are fullfilled. My first idea is to extend the
 core vdr for a callback function which informs plugins about
 attaching/detaching receivers to/from a device and retuning of a
 device.

 With this informations a plugin could execute such 
 externchannelswitch-scripts.

 But i think there is a problem that can't be fixed with this approach:
 When watch live tv on channel 1 and streamdev requests channel 2, vdr
 cannot handle this. Why? : vdr/streamdev doesn't know that 2 different
 pvrinput-devices are needed. Correct me if i'm wrong


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-09 Thread Rob Davis
Ok, will try this out tonight when I get home.

For info.  PVRInput should treat every channel as a seperate transponder
(imho).

I think you hit the nail on the head though, it's not detaching the first
stream before starting the second, which is why changing channel on the
remote frontend from say 5 to 8 leaves the backend locked on channel 5.

Conversely, the vomp plugin always seems to detach, which probably leads
to longer channel change times, but works with pvrinput.

Could the patch below work for everyone if a conditional check for tuner
type P was put in?

 Hi Rob,

 for your (and only for your) problem there could be an easier solution:

 When doing a channel switch streamdev queries for a new device while
 the current device is still active (means receivers are attached to
 the device). If no device could be found, streamdev detaches itself
 and queries again.

 If streamdev only queries for a device after detaching itself, the
 pvrinput device gets closed and reopened again incl. executing the
 channel switch thing. This is a really hack with some disadvantages
 (e.g. like larger channel switch times in case of multiple channels in
 a transponder) but i guess this would help.

 I guess doing the following line should be sufficient in
 server/connection.c (streamdev-version 0.5.0-CVS):

 bool cServerConnection::ProvidesChannel(const cChannel *Channel, int
 Priority)
 {
   const cChannel *current =
 Channels.GetByNumber(cDevice::CurrentChannel());
   const cChannel *current =
 Channels.GetByNumber(cDevice::CurrentChannel());

cDevice *device = CheckDlevice(Channel, Priority, false);
cDevice *device = 0;
   if (!device || (device == cDevice::ActualDevice()
!cSuspendCtl::IsActive()
StreamdevServerSetup.SuspendMode != smAlways
current != NULL
!TRANSPONDER(Channel, current))) {
   // mustn't switch actual device
   // maybe a device would be free if THIS connection did turn off 
 its
 streams?
   Detach();
   device = CheckDevice(Channel, Priority, false);
   Attach();




 2011/6/9 Rainer Blickle rainer.blic...@googlemail.com:
 Hi Rob,

 Can we put a check in streamdev to check if it's a pvrinput device and
 recall even if the frequency is the same?


 if i got it right the pvr devices hasn't to be retuned when switching
 the channel, but the externchannelswitch-script has to be executed.

 IMO it isn't a good idea to check for a pvrinput device in the
 softdevice server. These two plug-ins shouldn't have any dependencies.
 What you really need is that the external channel script gets executed
 If some constraints are fullfilled. My first idea is to extend the
 core vdr for a callback function which informs plugins about
 attaching/detaching receivers to/from a device and retuning of a
 device.

 With this informations a plugin could execute such
 externchannelswitch-scripts.

 But i think there is a problem that can't be fixed with this approach:
 When watch live tv on channel 1 and streamdev requests channel 2, vdr
 cannot handle this. Why? : vdr/streamdev doesn't know that 2 different
 pvrinput-devices are needed. Correct me if i'm wrong


 ___
 vdr mailing list
 vdr@linuxtv.org
 http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr




___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-09 Thread Rob Davis

On 09/06/11 01:53, Rainer Blickle wrote:


cDevice *device = CheckDlevice(Channel, Priority, false);

cDevice *device = 0;


With this there is some improvement, however, its calling the old 
channel again, so if I change from channel 4 to channel 6 then external 
channel is called, but changes it to channel 4.  I wonder is 
streamdev-client needs something similar to differentiate channels.



--

Rob Davis

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-09 Thread Rob Davis

On 06/09/2011 05:23 PM, Rob Davis wrote:

On 09/06/11 01:53, Rainer Blickle wrote:


cDevice *device = CheckDlevice(Channel, Priority, false);

cDevice *device = 0;


With this there is some improvement, however, its calling the old 
channel again, so if I change from channel 4 to channel 6 then 
external channel is called, but changes it to channel 4.  I wonder is 
streamdev-client needs something similar to differentiate channels.



Here is  a logfile..  Started remote vdr on channel 4, switched to 
channel 5.


Somehow the channel settings are being lost when the channel is called..

sudo tail -f /var/log/vdr.log
Jun  9 21:12:15 oac vdr: [1696] cPvrReadThread::Action() stopped on 
/dev/video1
Jun  9 21:12:15 oac vdr: [1696] PvrReadThread of /dev/video1 thread 
ended (pid=1310, tid=1696)
Jun  9 21:12:15 oac vdr: [1695] cPvrDevice::SetEncoderState (Stop) for 
/dev/video1 (PVR500#1)
Jun  9 21:12:15 oac vdr: [1675] streamdev-writer thread ended (pid=1310, 
tid=1675)

Jun  9 21:12:15 oac vdr: [1386] buffer stats: 379008 (10%) used
Jun  9 21:12:15 oac vdr: [1386] buffer stats: 0 (0%) used
Jun  9 21:12:15 oac vdr: [1695] SetVBImode(525, 0) on /dev/video1 (PVR500#1)
Jun  9 21:12:15 oac vdr: [1695] receiver on device 10 thread ended 
(pid=1310, tid=1695)
Jun  9 21:12:16 oac vdr: [1386] streamdev: closing streamdev connection 
to 192.168.2.13:34100

Jun  9 21:12:16 oac vdr: [1386] buffer stats: 0 (0%) used
Jun  9 21:12:38 oac vdr: [1376] [discovery] BROADCAST: VDR xineliboutput 
DISCOVERY 1.0
Jun  9 21:12:39 oac vdr: [1386] Streamdev: Accepted new client (VTP) 
192.168.2.13:38657
Jun  9 21:12:39 oac vdr: [1386] ParseChannel TV input -1, 
norm=0xb000, card 999
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: input -1 
unknown on /dev/video0 (HDPVR)
Jun  9 21:12:39 oac vdr: [1386] ParseChannel TV input 0, 
norm=0xb000, card 999
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: /dev/video1 
(PVR500#1): Channel 4 (4-WTVO ABC_Affiliate ntsc) 67.25MHz, - true
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: 
/dev/video1: Receiving()=false, needsDetachReceivers=true, Priority=0, 
hasPriority=true
Jun  9 21:12:39 oac vdr: [1386] ParseChannel TV input 0, 
norm=0xb000, card 999
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: /dev/video2 
(PVR500#2): Channel 4 (4-WTVO ABC_Affiliate ntsc) 67.25MHz, - true
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: 
/dev/video2: Receiving()=true, needsDetachReceivers=true, Priority=0, 
hasPriority=true
Jun  9 21:12:39 oac vdr: [1386] ParseChannel TV input 0, 
norm=0xb000, card 999
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: /dev/video3 
(HVR1600): Channel 4 (4-WTVO ABC_Affiliate ntsc) 67.25MHz, - false
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: 
/dev/video3: Receiving()=true, needsDetachReceivers=true, Priority=0, 
hasPriority=false

Jun  9 21:12:39 oac vdr: [1386] IPTV: cIptvDevice::ProvidesChannel(0)
Jun  9 21:12:39 oac vdr: [1386] IPTV: cIptvDevice::ProvidesTransponder(0)
Jun  9 21:12:39 oac vdr: [1386] IPTV: cIptvDevice::ProvidesSource(0)
Jun  9 21:12:39 oac vdr: [1386] IPTV: cIptvDevice::ProvidesChannel(1)
Jun  9 21:12:39 oac vdr: [1386] IPTV: cIptvDevice::ProvidesTransponder(1)
Jun  9 21:12:39 oac vdr: [1386] IPTV: cIptvDevice::ProvidesSource(1)
Jun  9 21:12:39 oac vdr: [1310] connect from 192.168.2.13, port 33742 - 
accepted
Jun  9 21:12:39 oac vdr: [1386] ParseChannel TV input -1, 
norm=0xb000, card 999
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: input -1 
unknown on /dev/video0 (HDPVR)
Jun  9 21:12:39 oac vdr: [1386] ParseChannel TV input 0, 
norm=0xb000, card 999
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: /dev/video1 
(PVR500#1): Channel 4 (4-WTVO ABC_Affiliate ntsc) 67.25MHz, - true
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: 
/dev/video1: Receiving()=false, needsDetachReceivers=true, Priority=0, 
hasPriority=true
Jun  9 21:12:39 oac vdr: [1386] ParseChannel TV input 0, 
norm=0xb000, card 999
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: /dev/video2 
(PVR500#2): Channel 4 (4-WTVO ABC_Affiliate ntsc) 67.25MHz, - true
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: 
/dev/video2: Receiving()=true, needsDetachReceivers=true, Priority=0, 
hasPriority=true
Jun  9 21:12:39 oac vdr: [1386] ParseChannel TV input 0, 
norm=0xb000, card 999
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: /dev/video3 
(HVR1600): Channel 4 (4-WTVO ABC_Affiliate ntsc) 67.25MHz, - false
Jun  9 21:12:39 oac vdr: [1386] cPvrDevice::ProvidesChannel: 
/dev/video3: Receiving()=true, needsDetachReceivers=true, Priority=0, 
hasPriority=false

Jun  9 21:12:39 oac vdr: [1386] IPTV: cIptvDevice::ProvidesChannel(0)
Jun  9 21:12:39 oac vdr: [1386] IPTV: cIptvDevice::ProvidesTransponder(0)
Jun  9 21:12:39 oac vdr: [1386] IPTV: cIptvDevice::ProvidesSource(0)
Jun  9 21:12:39 oac vdr: [1386] IPTV: 

Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-08 Thread Martin Dauskardt

 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
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-08 Thread Rob Davis

 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


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-08 Thread Rainer Blickle
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 r...@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


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-08 Thread Rob Davis
 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.



ok, that makes sense to me...

I am using a brain dead cable box which are being given away by the cable
company, these have RF out only on either US Channel 3 or 4. I have two of
these wired together with a signal combiner (To minimize the side band
intererence).  For pvrinput they all need this frequency.. (now at Ch 4),
if device 1 is busy I hacked pvrinput to flip the frequency to channel 3,
but streamdev would never know this.

Can we put a check in streamdev to check if it's a pvrinput device and
recall even if the frequency is the same?


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Streamdev to Streamdev with PVRInput card

2011-06-08 Thread L. Hanisch

Hi,

Am 08.06.2011 22:25, schrieb Rainer Blickle:

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.


 The frequency matters since he is using the tuner input.

Lars.




Regards, Rainer

2011/6/8 Rob Davisr...@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



___
vdr mailing list
vdr@linuxtv.org