Message ID | 20110610065555.M59726@linogate.de |
---|---|
State | New |
Headers |
Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.69) (envelope-from <vdr@schmirler.de>) id 1QUw6x-0004eo-8t for vdr@linuxtv.org; Fri, 10 Jun 2011 09:26:31 +0200 X-tubIT-Incoming-IP: 213.179.141.2 Received: from mail.linogate.de ([213.179.141.2]) by mail.tu-berlin.de (exim-4.75/mailfrontend-1) with esmtps [TLSv1:AES256-SHA:256] for <vdr@linuxtv.org> id 1QUw6w-0000c2-Kw; Fri, 10 Jun 2011 09:26:30 +0200 Received: from andreas-mair.de (localhost [127.0.0.1]) by mail.linogate.de with ESMTP id p5A7QRqo030479 for <vdr@linuxtv.org>; Fri, 10 Jun 2011 09:26:27 +0200 From: "Frank Schmirler" <vdr@schmirler.de> To: VDR Mailing List <vdr@linuxtv.org> Date: Fri, 10 Jun 2011 09:26:27 +0200 Message-Id: <20110610065555.M59726@linogate.de> In-Reply-To: <201106082043.38744.md001@gmx.de> References: <201106082043.38744.md001@gmx.de> X-Mailer: OpenWebMail 2.53 20070812 X-OriginatingIP: 213.179.141.1 (schmirl) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.0 (mail.linogate.de [127.0.0.1]); Fri, 10 Jun 2011 09:26:27 +0200 (CEST) X-PMX-Version: 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2011.6.10.71814 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1700_1799 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, ECARD_WORD 0, NO_URI_FOUND 0, WEBMAIL_SOURCE 0, WEBMAIL_XMAILER 0, WEBMAIL_XOIP2 0, WEBMAIL_X_IP_HDR 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __CT 0, __CT_TEXT_PLAIN 0, __HAS_MSGID 0, __HAS_X_MAILER 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __PHISH_SPEAR_STRUCTURE_1 0, __PHISH_SPEAR_STRUCTURE_2 0, __SANE_MSGID 0, __SUBJECT_ENDING_IN_LATIN_OR_NUMERALS 0, __TO_MALFORMED_2 0' X-LSpam-Score: -4.8 (----) X-LSpam-Report: No, score=-4.8 required=5.0 tests=AWL=1.798, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4 autolearn=ham Subject: Re: [vdr] Streamdev to Streamdev with PVRInput card X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: VDR Mailing List <vdr@linuxtv.org> List-Id: VDR Mailing List <vdr.linuxtv.org> List-Unsubscribe: <http://www.linuxtv.org/cgi-bin/mailman/options/vdr>, <mailto:vdr-request@linuxtv.org?subject=unsubscribe> List-Archive: <http://www.linuxtv.org/pipermail/vdr> List-Post: <mailto:vdr@linuxtv.org> List-Help: <mailto:vdr-request@linuxtv.org?subject=help> List-Subscribe: <http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr>, <mailto:vdr-request@linuxtv.org?subject=subscribe> X-List-Received-Date: Fri, 10 Jun 2011 07:26:31 -0000 Status: O X-Status: X-Keywords: X-UID: 24824 |
Commit Message
Frank Schmirler
June 10, 2011, 7:26 a.m. UTC
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: AFAIKT the problem is streamdev-client only. So HTTP streaming with e.g. VLC is not affected. Regards, Frank
Comments
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
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..
--- 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)