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
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
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
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 #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
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; i___ 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
[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 diff -ur rotor-0.1.4/filter.c rotor-0.1.4_vdr-1.5.10/filter.c --- rotor-0.1.4/filter.c2007-10-14 11:37:13.0 +0200 +++ rotor-0.1.4_vdr-1.5.10/filter.c 2007-10-15 22:56:43.0 +0200 @@ -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 -ur rotor-0.1.4/menu.c rotor-0.1.4_vdr-1.5.10/menu.c --- rotor-0.1.4/menu.c 2007-10-14 11:37:12.0 +0200 +++ rotor-0.1.4_vdr-1.5.10/menu.c 2007-10-15 22:55:27.0 +0200 @@ -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; i___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr