Re: [vdr] Rotor patch for 1.5.12
Has anyone managed to get the signal strength, SNR and lock functions working with multiproto and rotor 1.5.12? I took a look at menu.c and compared it with szap2 but couldn't find much difference! On Jan 11, 2008 10:21 PM, Reinhard Nissl [EMAIL PROTECTED] wrote: Hi, lucian orasanu schrieb: Hy again! thanks for the patch and cmd line, but afther patching vdr with that patch i get the following error when compiling vdr: dvbdevice.c:946: error: no 'bool cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd)' member function declared in class 'cDvbDevice' Hmm, the patched VDR compiled flawlessly. And the last chunk of the patch adds the function declaration to dvbdevice.h. So I don't see how you can get this error. Are there any other reports? Bye. -- Dipl.-Inform. (FH) Reinhard Nissl mailto:[EMAIL PROTECTED] ___ 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] Rotor patch for 1.5.12
On Thursday 10 January 2008, Reinhard Nissl wrote: Hi, lucian orasanu schrieb: it is changed after patch with function above and in menu.c at line 304 is expecting another function like this: SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol ,Symbolrate,FEC_AUTO); so i modified this line in menu.c like this: SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol ,Symbolrate,Symbolrate,Symbolrate,Symbolrate,Symbolrate); Try changing it to: SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol,S ymbolrate,DVBFE_FEC_AUTO,DVBFE_MOD_AUTO,DVBFE_DELSYS_DVBS,DVBFE_ROLLOFF_UNKN OWN); You'll need to apply the attached VDR patch instead of the one included with vdr-rotor. Hi, I've tested it, it seems that it works - but I have motor behind the switch (port D of 4port) and in some cases the dish doesn't went back to east (with SS1, old driver, old rotor, vdr-1.5.12 no such problem detected). In that case I have to switch to channel which is not behind portD and then back to portD and the dish begin to move. I'm using gotoX functionality. I'm using for testing: - Debian Lenny - TT S2-3200 - HH120 - vdr-1.5.13 patched by vdr-1.5.12-dvbs2-h264-syncearly-framespersec-audioindexer-fielddetection-speedup.diff, vdr-1.5.12-speedup-fix1.diff and vdr-1.5.12-speedup-fix2.diff. - rotor version vdr-rotor-0.1.4-vdr1.5.7.tgz patched by Rotor-0.1.4-vdr1.5.10.diff and vdr-1.5.12-dvbs2-h264-other-rotor.diff and with changes of SChannel-cChannel::SetSatTransponderData proposed above by Reinhard. Reinhard, if you agree I'm ready to cooperate in testing. Ales Please keep in mind that I cannot test this patch. The suggested line above will only support DVB-S. For DVB-S2 and H.264 support, a lot more needs to be changed. Bye. ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] Rotor patch for 1.5.12
On Sunday 13 January 2008, Morfsta wrote: Has anyone managed to get the signal strength, SNR and lock functions working with multiproto and rotor 1.5.12? I took a look at menu.c and compared it with szap2 but couldn't find much difference! Hi, I've tried to pass through the source code and it seems to me that problem is that multiproto driver for dvb-s2 frontend return SNR and STR in 0.1dB and the value is by vdr-rotor (and by vdr-femon) then recalculated to dB once more. Ales ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] Rotor patch for 1.5.12
Hi, lucian orasanu schrieb: Hy again! thanks for the patch and cmd line, but afther patching vdr with that patch i get the following error when compiling vdr: dvbdevice.c:946: error: no 'bool cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd)' member function declared in class 'cDvbDevice' Hmm, the patched VDR compiled flawlessly. And the last chunk of the patch adds the function declaration to dvbdevice.h. So I don't see how you can get this error. Are there any other reports? Bye. -- Dipl.-Inform. (FH) Reinhard Nissl mailto:[EMAIL PROTECTED] ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] Rotor patch for 1.5.12
Hi, lucian orasanu schrieb: it is changed after patch with function above and in menu.c at line 304 is expecting another function like this: SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol,Symbolrate,FEC_AUTO); so i modified this line in menu.c like this: SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol,Symbolrate,Symbolrate,Symbolrate,Symbolrate,Symbolrate); Try changing it to: SChannel-cChannel::SetSatTransponderData(RotorPos-R_Code(),Frequenz,Pol,Symbolrate,DVBFE_FEC_AUTO,DVBFE_MOD_AUTO,DVBFE_DELSYS_DVBS,DVBFE_ROLLOFF_UNKNOWN); You'll need to apply the attached VDR patch instead of the one included with vdr-rotor. Please keep in mind that I cannot test this patch. The suggested line above will only support DVB-S. For DVB-S2 and H.264 support, a lot more needs to be changed. Bye. -- Dipl.-Inform. (FH) Reinhard Nissl mailto:[EMAIL PROTECTED] --- ../vdr-1.5.12-dvbs2-other/device.h 2007-10-21 11:21:52.0 +0200 +++ device.h 2008-01-10 22:09:12.0 +0100 @@ -23,6 +23,7 @@ #include spu.h #include thread.h #include tools.h +#include linux/dvb/frontend.h #define MAXDEVICES 16 // the maximum number of devices in the system #define MAXPIDHANDLES 64 // the maximum number of different PIDs per device @@ -261,6 +266,7 @@ public: virtual bool HasProgramme(void); /// Returns true if the device is currently showing any programme to /// the user, either through replaying or live. + virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd) {return false;} // PID handle facilities --- ../vdr-1.5.12-dvbs2-other/dvbdevice.c 2008-01-01 22:55:18.0 +0100 +++ dvbdevice.c 2008-01-10 22:13:39.0 +0100 @@ -71,6 +71,7 @@ static int DvbOpen(const char *Name, int class cDvbTuner : public cThread { private: enum eTunerStatus { tsIdle, tsSet, tsTuned, tsLocked }; + bool SendDiseqc; int fd_frontend; int cardIndex; int tuneTimeout; @@ -83,6 +84,7 @@ private: cMutex mutex; cCondVar locked; cCondVar newSet; + dvb_diseqc_master_cmd diseqc_cmd; bool GetFrontendStatus(fe_status_t Status, int TimeoutMs = 0); bool SetFrontend(void); virtual void Action(void); @@ -91,12 +93,14 @@ public: virtual ~cDvbTuner(); bool IsTunedTo(const cChannel *Channel) const; void Set(const cChannel *Channel, bool Tune); + bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd); bool Locked(int TimeoutMs = 0); }; cDvbTuner::cDvbTuner(int Fd_Frontend, int CardIndex, dvbfe_delsys FrontendType) { fd_frontend = Fd_Frontend; + SendDiseqc = false; cardIndex = CardIndex; frontendType = FrontendType; tuneTimeout = 0; @@ -145,6 +149,17 @@ bool cDvbTuner::Locked(int TimeoutMs) return tunerStatus = tsLocked; } +bool cDvbTuner::SendDiseqcCmd(dvb_diseqc_master_cmd cmd) +{ + cMutexLock MutexLock(mutex); + if (!(frontendType (DVBFE_DELSYS_DVBS | DVBFE_DELSYS_DVBS2)) || SendDiseqc) +return false; + diseqc_cmd=cmd; + SendDiseqc=true; + newSet.Broadcast(); + return true; +} + bool cDvbTuner::GetFrontendStatus(fe_status_t Status, int TimeoutMs) { if (TimeoutMs) { @@ -348,6 +363,10 @@ void cDvbTuner::Action(void) if (GetFrontendStatus(NewStatus, 10)) Status = NewStatus; cMutexLock MutexLock(mutex); +if (SendDiseqc) { + CHECK(ioctl(fd_frontend, FE_DISEQC_SEND_MASTER_CMD, diseqc_cmd)); + SendDiseqc=false; + } switch (tunerStatus) { case tsIdle: break; @@ -918,6 +950,11 @@ bool cDvbDevice::HasLock(int TimeoutMs) return dvbTuner ? dvbTuner-Locked(TimeoutMs) : false; } +bool cDvbDevice::SendDiseqcCmd(dvb_diseqc_master_cmd cmd) +{ + return dvbTuner-SendDiseqcCmd(cmd); +} + int cDvbDevice::GetAudioChannelDevice(void) { if (HasDecoder()) { --- ../vdr-1.5.12-dvbs2-other/dvbdevice.h 2008-01-01 22:55:18.0 +0100 +++ dvbdevice.h 2008-01-10 22:09:12.0 +0100 @@ -66,11 +67,13 @@ public: virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); public: virtual bool HasLock(int TimeoutMs = 0); + virtual bool SendDiseqcCmd(dvb_diseqc_master_cmd cmd); // PID handle facilities ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] Rotor patch for 1.5.12
Did you had to adapt manually the patch, because when i try this patch on vdr 1.5.12 everything is rejected ? Thanks, serge -Oorspronkelijk bericht- Van: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Namens Arthur Konovalov Verzonden: maandag 7 januari 2008 20:57 Aan: VDR Mailing List Onderwerp: Re: [vdr] Rotor patch for 1.5.12 [EMAIL PROTECTED] wrote: I am looking for the patch to compile the rotor plugin together with vdr-1.5.12. Does anyone achieved to compile it with 1.5.12 I had success with attached patch. Regards, AK ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] Rotor patch for 1.5.12
serge pecher wrote: Did you had to adapt manually the patch, because when i try this patch on vdr 1.5.12 everything is rejected ? Previosly mentioned patch applied to attached version of rotor plugin. I suspect that I found it in vdr-portal.de Fresh generated patch attached also. Regards, AK vdr-rotor-0.1.4-vdr1.5.tgz Description: application/compressed diff -Nur old/filter.c new/filter.c --- old/filter.c2006-01-09 22:41:50.0 +0200 +++ new/filter.c2007-10-16 08:21:54.0 +0300 @@ -368,12 +368,15 @@ int Ppid = pmt.getPCRPid(); int Apids[MAXAPIDS + 1] = { 0 }; int Dpids[MAXDPIDS + 1] = { 0 }; +int Spids[MAXDPIDS + 1] = { 0 }; #if VDRVERSNUM = 10332 char ALangs[MAXAPIDS + 1][MAXLANGCODE2] = { }; char DLangs[MAXDPIDS + 1][MAXLANGCODE2] = { }; +char SLangs[MAXDPIDS + 1][MAXLANGCODE2] = { }; #else char ALangs[MAXAPIDS + 1][4] = { }; char DLangs[MAXDPIDS + 1][4] = { }; +char SLangs[MAXDPIDS + 1][4] = { }; #endif int Tpid = 0; int NumApids = 0; @@ -448,7 +451,7 @@ delete d; } } -Menu-SetPids(pmt.getServiceId(),Vpid, Vpid ? Ppid : 0, Apids, ALangs, Dpids, DLangs, Tpid); +Menu-SetPids(pmt.getServiceId(),Vpid, Vpid ? Ppid : 0, Apids, ALangs, Dpids, DLangs, Spids, SLangs, Tpid); Menu-SetCaIds(pmt.getServiceId(),CaDescriptors-CaIds()); Menu-SetCaDescriptors(pmt.getServiceId(),CaDescriptorHandler.AddCaDescriptors(CaDescriptors)); } diff -Nur old/menu.c new/menu.c --- old/menu.c 2007-07-06 23:52:57.0 +0300 +++ new/menu.c 2007-10-16 08:21:54.0 +0300 @@ -406,12 +406,15 @@ channel-SetId(Channel[Num].Nid(),Channel[Num].Tid(),Channel[Num].Sid(),channel-Rid()); int Apids[MAXAPIDS + 1] = { 0 }; int Dpids[MAXDPIDS + 1] = { 0 }; +int Spids[MAXDPIDS + 1] = { 0 }; #if VDRVERSNUM=10332 char ALangs[MAXAPIDS + 1][MAXLANGCODE2] = { }; char DLangs[MAXDPIDS + 1][MAXLANGCODE2] = { }; +char SLangs[MAXDPIDS + 1][MAXLANGCODE2] = { }; #else char ALangs[MAXAPIDS + 1][4] = { }; char DLangs[MAXDPIDS + 1][4] = { }; +char SLangs[MAXDPIDS + 1][4] = { }; #endif int CaIds[MAXCAIDS+1] = { 0 }; for (int i=0; i=MAXAPIDS; i++) @@ -426,7 +429,7 @@ } for (int i=0; i=MAXCAIDS; i++) CaIds[i]=Channel[Num].Ca(i); - channel-SetPids(Channel[Num].Vpid(),Channel[Num].Ppid(),Apids,ALangs,Dpids,DLangs,Channel[Num].Tpid()); + channel-SetPids(Channel[Num].Vpid(),Channel[Num].Ppid(),Apids,ALangs,Dpids,DLangs,Spids,SLangs,Channel[Num].Tpid()); channel-SetCaIds(CaIds); } else @@ -456,7 +459,7 @@ } #if VDRVERSNUM=10332 -void cMenuScan::SetPids(int Sid,int Vpid, int Ppid, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int Tpid) +void cMenuScan::SetPids(int Sid,int Vpid, int Ppid, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid) #else void cMenuScan::SetPids(int Sid,int Vpid, int Ppid, int *Apids, char ALangs[][4], int *Dpids, char DLangs[][4], int Tpid) #endif @@ -464,7 +467,7 @@ for (int i=0; inum; i++) if (Sid==Channel[i].Sid()) { - Channel[i].SetPids(Vpid,Ppid,Apids,ALangs,Dpids,DLangs,Tpid); + Channel[i].SetPids(Vpid,Ppid,Apids,ALangs,Dpids,DLangs,Spids,SLangs,Tpid); display(i); } } diff -Nur old/menu.h new/menu.h --- old/menu.h 2007-07-06 23:57:42.0 +0300 +++ new/menu.h 2007-10-16 08:21:54.0 +0300 @@ -116,7 +116,7 @@ virtual eOSState ProcessKey(eKeys Key); void AddChannel(int Num); void NewChannel(const cChannel *Transponder, const char *Name, const char *ShortName, const char *Provider, int Nid, int Tid, int Sid); - void SetPids(int Sid,int Vpid, int Ppid, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int Tpid); + void SetPids(int Sid,int Vpid, int Ppid, int *Apids, char ALangs[][MAXLANGCODE2], int *Dpids, char DLangs[][MAXLANGCODE2], int *Spids, char SLangs[][MAXLANGCODE2], int Tpid); void SetCaIds(int Sid,const int *CaIds); void SetCaDescriptors(int Sid,int Level); cChannel* GetChannel(int Sid); ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr