BUG: DVB-T and DVB-S[2] do not work with VDR & multiproto [Was: Two VDR's on one machine]

Message ID 4787C1A0.8050106@gmx.de
State New
Headers

Commit Message

Reinhard Nissl Jan. 11, 2008, 7:21 p.m. UTC
  Hi,

Reinhard Nissl schrieb:

> So it seems to me that either the emulation layer has a bug for
> DVB-T or the patched VDR passes incorrect data to the new API.

Looks like the latter is true: Marco Schlüßler informed me that
the mapping of TransmissionModes in nit.c for DVB-T is wrong.

I've created the attached patch according to his' instructions.

Please give the patch a try and report success or failure.

Bye.
  

Comments

Morfsta Jan. 12, 2008, 2:44 p.m. UTC | #1
Hi,

Thanks for speaking with Marco, Reinhard - its appreciated.

Unfortunately, the patch does not fix the problem. Still no picture on
DVB-T transmissions.

Regards

On Jan 11, 2008 7:21 PM, Reinhard Nissl <rnissl@gmx.de> wrote:
> Hi,
>
> Reinhard Nissl schrieb:
>
> > So it seems to me that either the emulation layer has a bug for
> > DVB-T or the patched VDR passes incorrect data to the new API.
>
> Looks like the latter is true: Marco Schlüßler informed me that
> the mapping of TransmissionModes in nit.c for DVB-T is wrong.
>
> I've created the attached patch according to his' instructions.
>
> Please give the patch a try and report success or failure.
>
>
> Bye.
> --
> Dipl.-Inform. (FH) Reinhard Nissl
> mailto:rnissl@gmx.de
>
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>
>
  
Stefan Lucke Jan. 12, 2008, 3:37 p.m. UTC | #2
On Saturday 12 January 2008, Morfsta wrote:
> Hi,
> 
> Thanks for speaking with Marco, Reinhard - its appreciated.
> 
> Unfortunately, the patch does not fix the problem. Still no picture on
> DVB-T transmissions.

Same here.
Which DVB-T device do you use ? I'm using a cinergyT2.

Ioctl's for this device are not passed
via the common frontend interface. The new "API" has to get
integrated into the cinergyT2 driver or client programs like vdr etc.
have to recognize the driver supported API ;-) .

> 
> Regards
> 
> On Jan 11, 2008 7:21 PM, Reinhard Nissl <rnissl@gmx.de> wrote:
> > Hi,
> >
> > Reinhard Nissl schrieb:
> >
> > > So it seems to me that either the emulation layer has a bug for
> > > DVB-T or the patched VDR passes incorrect data to the new API.
> >
> > Looks like the latter is true: Marco Schlüßler informed me that
> > the mapping of TransmissionModes in nit.c for DVB-T is wrong.
> >
> > I've created the attached patch according to his' instructions.
> >
> > Please give the patch a try and report success or failure.
> >
> >
> > Bye.

Stefan Lucke
  
Morfsta Jan. 12, 2008, 4:28 p.m. UTC | #3
On Jan 12, 2008 3:37 PM, Stefan Lucke <stefan@lucke.in-berlin.de> wrote:
> Same here.
> Which DVB-T device do you use ? I'm using a cinergyT2.
>
> Ioctl's for this device are not passed
> via the common frontend interface. The new "API" has to get
> integrated into the cinergyT2 driver or client programs like vdr etc.
> have to recognize the driver supported API ;-) .
>

I am using two Hauppauge Nova-T (tda1004x and cx2388x).

Manu said in an earlier thread that there should be compatibility with
the old API so he doesn't think that should be a problem. The driver
in the multiproto tree for my devices have not been changed so should
work through the compatibility layer.

The odd thing is that when I use an older pre-compiled VDR 1.4.x with
the new multiproto drivers everything works fine but when I compile
1.5.12 with multiproto includes it doesn't work.
  

Patch

--- ../vdr-1.5.12-dvbs2-other/nit.c	2008-01-01 22:55:18.000000000 +0100
+++ nit.c	2008-01-11 20:15:15.000000000 +0100
@@ -239,7 +239,7 @@  void cNitFilter::Process(u_short Pid, u_
                  int CodeRateLP = CodeRates[sd->getCodeRateLP()];
                  static int GuardIntervals[] = { DVBFE_GUARD_INTERVAL_1_32, DVBFE_GUARD_INTERVAL_1_16, DVBFE_GUARD_INTERVAL_1_8, DVBFE_GUARD_INTERVAL_1_4 };
                  int GuardInterval = GuardIntervals[sd->getGuardInterval()];
-                 static int TransmissionModes[] = { DVBFE_TRANSMISSION_MODE_2K, DVBFE_TRANSMISSION_MODE_4K, DVBFE_TRANSMISSION_MODE_8K, DVBFE_TRANSMISSION_MODE_AUTO };
+                 static int TransmissionModes[] = { DVBFE_TRANSMISSION_MODE_2K, DVBFE_TRANSMISSION_MODE_8K, DVBFE_TRANSMISSION_MODE_4K, DVBFE_TRANSMISSION_MODE_AUTO };
                  int TransmissionMode = TransmissionModes[sd->getTransmissionMode()];
                  static int Alphas[] = { DVBFE_ALPHA_1, DVBFE_ALPHA_2, DVBFE_ALPHA_4 };
                  static int Priorities[] = { DVBFE_STREAM_PRIORITY_LP, DVBFE_STREAM_PRIORITY_HP };