[linux-dvb] Re: V4 API proposal

2003-03-14 Thread emard
This autodetection is technically impossible. 
a) Not all hardware has the ability to provide a raw transport stream
b) If it had the capability, you would lose data between the time the
kernel creates the device and the user scans for directory entries.
Think of tables which are broadcasted at very low rates.
Besides that, I think you proposal is weird and I don't like it. :-)
If it is impossilble, how does this STB hardware scan channels to
search for stations? Does the user need to supply all freqency/
polarization/symbolrate parameters and pids for each channel
he wants to see? 

See above. Additionaly this would require the kernel to
a) know what types of pids do exist (audio (how about ac3 - non-ac3),
video, teletext, different kind of sections)
b) identify them
As above, I think it is weird and I don't like it.
Yes either the userspace decoder daemon should know
about all types of PIDs, or in case of hardware acceleration,
kernel has to know about PIDs, cooperate with hardware
and steer the hardware demux properly. 

Rarely broadcast tables have to be cached and channels
added when the daemon first sees them. Then it will write
configuration file so next time it can come up quickly. 

This approach can be wierd, but it's novel and up-to-date
with latest kernel technology. 

we have computers to do all the boring hex data housekeeping and
autodetection for us. 

It's also resource hungry but
will provide the maximum user luxury. One will be able to
simple tune and immediately see autodetected receptions,
record many channels simultaneously, and have features yet
unseen in single view STB's. 

Imagine having STB capable to display multiple PIDs from a tuned
frequency in a mosaic all in one screen and then choose
which one you want to view full screen. Make STB technically
years ahead of competition, set a bit higher price and win all
of the customers. 



--
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.


[linux-dvb] Re: V4 API proposal

2003-03-14 Thread Marcus Metzler
[EMAIL PROTECTED] writes:
   
   This autodetection is technically impossible. 
   a) Not all hardware has the ability to provide a raw transport stream
   b) If it had the capability, you would lose data between the time the
   kernel creates the device and the user scans for directory entries.
   Think of tables which are broadcasted at very low rates.
   Besides that, I think you proposal is weird and I don't like it. :-)

I can only support this statement.

  If it is impossilble, how does this STB hardware scan channels to
  search for stations? Does the user need to supply all freqency/
  polarization/symbolrate parameters and pids for each channel
  he wants to see? 

No the OEM provides the tables. Have you ever used a digital
receiver. Most of them come with preprogrammed transponder and channel
lists. Which are sometimes updated by a channel search by the user or
a firmware update by the OEM.

  
   See above. Additionaly this would require the kernel to
   a) know what types of pids do exist (audio (how about ac3 - non-ac3),
   video, teletext, different kind of sections)
   b) identify them
   As above, I think it is weird and I don't like it.

It may also cause security and stability problems.

  
  Yes either the userspace decoder daemon should know
  about all types of PIDs, or in case of hardware acceleration,
  kernel has to know about PIDs, cooperate with hardware
  and steer the hardware demux properly. 
  

The kernel should not care about the pids. The user space program sets
the demux filters and scans for new channels if needed. It's not the
job of the kernel to do that.


  Rarely broadcast tables have to be cached and channels
  added when the daemon first sees them. Then it will write
  configuration file so next time it can come up quickly. 
  

You don't write configuration files from kernel space.
Otherwise exactly this is done by user space programs.

  This approach can be wierd, but it's novel and up-to-date
  with latest kernel technology. 

What kernel have you been looking at? 
A PID is not a device like a USB device or a PCMCIA card.

  
  we have computers to do all the boring hex data housekeeping and
  autodetection for us. 
  

The user uses user space programs that are written by people who know
what they are doing and not the kernel directly.

  It's also resource hungry but
  will provide the maximum user luxury. One will be able to
  simple tune and immediately see autodetected receptions,
  record many channels simultaneously, and have features yet
  unseen in single view STB's. 
  
  Imagine having STB capable to display multiple PIDs from a tuned
  frequency in a mosaic all in one screen and then choose
  which one you want to view full screen. Make STB technically
  years ahead of competition, set a bit higher price and win all
  of the customers. 

For a mosaic you need several MPEG decoders. You either need special hardware
for that or very fast/ several CPUs. I don't know what you are
dreaming about. STBs are usually just normal CPUs (arm, mips, i386, ppc)
with some receiver hardware and maybe an MPEG decoder. The only thing
that is different from a PC is the box size, they can't use extra PCI
cards, the amount of memory, hard disk space and they may not have
quite the fastest CPU possible for a desktop (between 10% and
100%). The latter is compensated by special hardware which makes them
even faster for their specialized task than a PC.  


Marcus

-- 
/\
| Dr. Marcus O.C. Metzler|   |
||---|
| [EMAIL PROTECTED]| http://www.metzlerbros.de/|
\/



-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Pipe?

2003-03-14 Thread Andrea Gerardi
Hi list,
I need use pipe to analyze consecutive pid of ts. With this code:
if(pid=fork()0) perror(\nfork error\n);

else if (pid0)
{//parent
close(fd[0]);
//tuning operation and get fd_dvr handle
   close(fd[1]);
if (waitpid(pid,NULL,0)0) perror(waitpid error);
exit(0);
}
else if (pid==0)
{//child
close(fd[1]);
close(fd[0]);
exit(0);
}




_
Vinci la nuova Nissan Micra con MSN Messenger! http://www.msn.it/messenger/


--
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.


[linux-dvb] REPIPE

2003-03-14 Thread Andrea Gerardi
ReHI list,
excuse for mistake!!
So, I use a fork (such as you seen previously) to get ts from a pipe. But 
there is something wrong because that code run twice !!! Someone could help 
me? Code or something else? Tks.





_
Vinci la nuova Nissan Micra con MSN Messenger! http://www.msn.it/messenger/


--
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.


[linux-dvb] A/V sync problems with new drivers

2003-03-14 Thread Juri Haberland
Hi DVB driver developers,

this is a repost of a message that I send a week ago, but got no answers.
I send it yesterday to the VDR list and received a couple of answers.
Seems I'm not the only one with the following problem and it is not
limited to DVB-T cards - also -C and -S are affected.


With the new drivers 1.0.0-rc1 and -rc2 I experience desync of a/v in VDR
after viewing a recording (also on other occasions; viewing a recording
is just an easy way to reproduce. Sometimes it needs just a short
disturbance in the receiption to get out of sync.). This does not happen
with a driver from CVS as of 13. January. This is very reproducable. It
affects all programs on the same frequency (I use DVB-T) but vanishes, if
I switch to a channel on another frequency.
This happens also, if I use the old firmware (from the 13-01 driver) with
the new driver, so it seems to be not a problem of the new firmware.


Cheers,
Juri



-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: A/V sync problems with new drivers

2003-03-14 Thread Oliver Endriss
Juri Haberland wrote:
 Hi DVB driver developers,

 this is a repost of a message that I send a week ago, but got no
 answers. I send it yesterday to the VDR list and received a couple of
 answers. Seems I'm not the only one with the following problem and it
 is not limited to DVB-T cards - also -C and -S are affected.


 With the new drivers 1.0.0-rc1 and -rc2 I experience desync of a/v in
 VDR after viewing a recording (also on other occasions; viewing a
 recording is just an easy way to reproduce. Sometimes it needs just a
 short disturbance in the receiption to get out of sync.). This does
 not happen with a driver from CVS as of 13. January. This is very
 reproducable. It affects all programs on the same frequency (I use
 DVB-T) but vanishes, if I switch to a channel on another frequency.
 This happens also, if I use the old firmware (from the 13-01 driver)
 with the new driver, so it seems to be not a problem of the new
 firmware.

I also noticed a/v sync problems once or twice but I cannot reproduce 
it. On http://www.linuxdvb.tv/download/ there are daily snapshots of 
the driver. Could you please try to find out the *precise* date when 
this bug was introduced? If you could report this date I will check 
what has been changed...

Oliver


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: V4 API proposal

2003-03-14 Thread Franck Arnaud
  a) Not all hardware has the ability to provide a raw transport stream
 If it is impossilble, how does this STB hardware scan channels to
 search for stations?

You only need to look at the info PIDs (PAT SDT NIT, starts with 
well known fixed PIDs) to get all the channels and other 
transponders, so no need to ever look at the whole TS.

--
[EMAIL PROTECTED]



-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: V4 API proposal

2003-03-14 Thread Emard
 No the OEM provides the tables. Have you ever used a digital
 receiver. Most of them come with preprogrammed transponder and channel

I Never got any STB receiver really.

 lists. Which are sometimes updated by a channel search by the user or
 a firmware update by the OEM.

I see.

 It may also cause security and stability problems.

Security maybe. Stability stands on a clean design
and using already debugged building blocks instead of 
reimplemetation of the whell ...

 The kernel should not care about the pids. The user space program sets
 the demux filters and scans for new channels if needed. It's not the
 job of the kernel to do that.

Yes and no. For software only demux no. For hardware accelerated
chips yes, kernel must do it. Take your av7110 for example.
Channel scan has to be supported by the firmware, am I right?

 You don't write configuration files from kernel space.
 Otherwise exactly this is done by user space programs.

Configuration file is written by userspace daemon.
For hardware acclerated bypass, it has to provide 
vendor specific ioctl that can allow dumping something
to file from kernel space... sorry if I was rushing 
and not elaborating every signle detail. I know what 
I want as final functionality and try to map it in 
some simple way. 

 What kernel have you been looking at? 
 A PID is not a device like a USB device or a PCMCIA card.

Why not let it be like a USB video camera device with sound,
Recordable with streamer, instead of using some cumbersome
hardware specific applications like VDR.

 The user uses user space programs that are written by people who know
 what they are doing and not the kernel directly.

Right. But let the user choose among many simpler programs 
written by various people instead to force them to use only one
program written by someone who knows all the knowledge.

Unix philosophy is to use lots of simple elementary tools
with data throughput overhead, and not to bundle everything 
in one efficent huge monolythic program full of bugs noone 
is willing to fix.

 For a mosaic you need several MPEG decoders. You either need special hardware
 for that or very fast/ several CPUs. I don't know what you are

Very fast CPU will do.

 dreaming about. STBs are usually just normal CPUs (arm, mips, i386, ppc)

It's the future. With current low performance cpus I don't expect
anything better than they already do

Emard


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: WinTV-Nova-CI and remote control

2003-03-14 Thread michal
Holger Waechtler wrote:

michal wrote:

Sorry, my fault. Modules evdev and input were not loaded.

But another problems still remain:
1) Each key can be pressed only once. There is no reaction on further 
keypress...


Here you have to play and improve either the msp430_ir_debounce() and 
msp430_ir_interrupt() functions or (if the repeat events don't arrive 
there) somebody has to write a new IR protocol parser for the msp430.


There was missing add_timer(dev-timer) at the end of 
msp430_ir_interrupt() function. Now everything works fine.

static
void msp430_ir_interrupt (unsigned long data)
{
...

  /* initialize debounce and repeat */
   dev-repeat_key = code;
   /* Zenith remote _always_ sends 2 sequences */
   dev-rep[0] = ~0;
   /* 350 milliseconds */
   dev-timer.expires = jiffies + HZ * 350 / 1000;
   /* MAKE */
   input_event(dev, EV_KEY, key_map[code], !0);
-- add_timer(dev-timer);   --
   }
}
Michal



--
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.


[linux-dvb] Re: WinTV-Nova-CI and remote control

2003-03-14 Thread Jack Thomasson




i'd already found that, see Re:
TT budget / NOVA IR support.

:{)}





-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.



[linux-dvb] CRC32 errors in sections

2003-03-14 Thread Jeremy Hall
Hi,

In a quest to determine why the ARM is crashing during a section filter 
activity, I discovered I am getting several CRC32 checksum errors on 
sections, and thus they aren't being used, creating the appearance of a 
XRUN.

To combat this, I added DMX_CHECK_CRC to the section filter flags, but 
still continued to see the checksum errors.  What might be the cause of 
data corruption? When the driver gives you a section, does it at least 
sanity check the seclen to determine if it will make a memory out of 
bounds problem so it won't happily overwrite other memory?

_J


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: A/V sync problems with new drivers

2003-03-14 Thread Juri Haberland
Oliver Endriss wrote:

 I also noticed a/v sync problems once or twice but I cannot reproduce 
 it. On http://www.linuxdvb.tv/download/ there are daily snapshots of 
 the driver. Could you please try to find out the *precise* date when 
 this bug was introduced? If you could report this date I will check 
 what has been changed...

Phew, this will take some time, especially as the weekend has come, which
means that the machine is in production.

Cheers,
Juri



-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: WinTV-Nova-CI and remote control

2003-03-14 Thread Holger Waechtler
michal wrote:
Holger Waechtler wrote:

michal wrote:

Sorry, my fault. Modules evdev and input were not loaded.

But another problems still remain:
1) Each key can be pressed only once. There is no reaction on further 
keypress...


Here you have to play and improve either the msp430_ir_debounce() and 
msp430_ir_interrupt() functions or (if the repeat events don't arrive 
there) somebody has to write a new IR protocol parser for the msp430.


There was missing add_timer(dev-timer) at the end of 
msp430_ir_interrupt() function. Now everything works fine.

static
void msp430_ir_interrupt (unsigned long data)
{
...

  /* initialize debounce and repeat */
   dev-repeat_key = code;
   /* Zenith remote _always_ sends 2 sequences */
   dev-rep[0] = ~0;
   /* 350 milliseconds */
   dev-timer.expires = jiffies + HZ * 350 / 1000;
   /* MAKE */
   input_event(dev, EV_KEY, key_map[code], !0);
-- add_timer(dev-timer);   --
   }
}
applied to CVS.

Holger



--
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.


[linux-dvb] Re: CRC32 errors in sections

2003-03-14 Thread Holger Waechtler
Jeremy Hall wrote:
Hi,

In a quest to determine why the ARM is crashing during a section filter 
activity, I discovered I am getting several CRC32 checksum errors on 
sections, and thus they aren't being used, creating the appearance of a 
XRUN.

To combat this, I added DMX_CHECK_CRC to the section filter flags, but 
still continued to see the checksum errors.
The DMX_CHECK_CRC flag is not implemented for av7110 based cards right 
now. If you want to implement this follow the Budget codepath for an 
example.


What might be the cause of 
data corruption? 
Buffer overflows because the host did not fetched the data fast enough 
or uncorrectable block errrors in the MPEG stream. Maybe even a firmware 
bug under high load.


When the driver gives you a section, does it at least 
sanity check the seclen to determine if it will make a memory out of 
bounds problem so it won't happily overwrite other memory?
The read() function call will never read more bytes than you specified 
in the argument, so you'll never overwrite more memory than you passed 
as read()-buffer.

Holger



--
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.


[linux-dvb] Re: A/V sync problems with new drivers

2003-03-14 Thread Oliver Endriss
Juri Haberland wrote:
 Oliver Endriss wrote:
  I also noticed a/v sync problems once or twice but I cannot
  reproduce it. On http://www.linuxdvb.tv/download/ there are daily
  snapshots of the driver. Could you please try to find out the
  *precise* date when this bug was introduced? If you could report
  this date I will check what has been changed...

 Phew, this will take some time, especially as the weekend has come,
 which means that the machine is in production.

This is not as difficult as it looks. You reported that the driver 
13jan03 is ok and 13feb03 (1.0.0-pre1) isn't. Take the date in the 
middle of the interval and download this driver, let's say 29jan03. 
Test it. If it's ok take the middle of the interval (29jan, 13feb), if 
it's not ok take the middle of  (13jan, 29jan). And so on...
This way you will have to try only 5 drivers to find the date.

Good luck,

Oliver


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: CRC32 errors in sections

2003-03-14 Thread Jeremy Hall
In the new year, Holger Waechtler wrote:
 
 Jeremy Hall wrote:
 The DMX_CHECK_CRC flag is not implemented for av7110 based cards right 
 now. If you want to implement this follow the Budget codepath for an 
 example.
 
Where does that codepath start? Why has it not been implemented?

 
  What might be the cause of 
  data corruption? 
 
 Buffer overflows because the host did not fetched the data fast enough 
 or uncorrectable block errrors in the MPEG stream. Maybe even a firmware 
 bug under high load.
 
Would increasing the section buffer size help with this? How would I be 
able to find a firmware bug under high load? Both signal and SNR readings 
are good, so I doubt uncorrectable block errors would be a factor.

 
  When the driver gives you a section, does it at least 
  sanity check the seclen to determine if it will make a memory out of 
  bounds problem so it won't happily overwrite other memory?
 
 The read() function call will never read more bytes than you specified 
 in the argument, so you'll never overwrite more memory than you passed 
 as read()-buffer.
 
Is it a mmap'd read and you're actually accessing the incoming buffer, or 
does the driver copy a section to you? This question relates to the driver 
copying that data to userspace--how does it know how much to copy.  If the 
seclen is not correct, can the driver trash its memory structures?

_J

 Holger
 



-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: Driver problem with a Hauppauge Nova: Erroneous unsupported PLL synthesizer

2003-03-14 Thread Andrew de Quincey

   I investigated a bit. I added some trace statements and additional i2c
   bus accesses. I discovered that every SECOND i2c bus access succeded. I
   traced this down to saa7146_i2c.c/saa7146_i2c_transfer(). When it writes
   the data to the bus, it checks for errors. There is a special check for
   an i2c address-error... if this occurs, the write is abandoned with no
   retries and returns with EREMOTEIO. As a test, I disabled this piece of
   code, and now the tuner is detected fine.. I can even tune and use the
   card as normal.
  
   However, this is not a solution. To transfer something on the i2c bus,
   you have to write it twice every time (first time fails with an address
   error, second time succeeds). I assume this means something is slightly
   different about this newer board revision.

 Does this only happen on transfers to the PLL? If yes, is it done
 in two transfer steps or in one (double) transfer in the driver you
 are using? Otherwise I cannot think of much else that can go wrong.
 For me the SU1278/SH works fine on different kinds of hardware (KNC DVB-S
 with SAA7146 and Flyvideo DVB-S with SAA7130).

Its an SAA7146-based card, so its just using the standard i2c code in 
saa7146_i2c.c

I'm getting really really suspicious of that card:
a) It has this weird i2c problem

b) That machine has suddenly starting crashing an awful lot since I put the 
card in. A moment ago, I didn't even DO anything with the card.. I just 
insmod/rmmodded the drivers twice... I know this does some initialisation, 
but I've never seen this with my SAA7146-based DVB-T cards.

c) Apart from having the additional places for the CI stuff, that card is 
using the same chip revisions as everyone else's so there shouldn't *be* any 
problems.

Oh, I tried adding the PCI device id to dvb-budget.c to check it wasn't 
something odd the dvb-budget-ci.c was doing it still had the same 
problems.



Does anyone else have a Hauppauge Nova card working in parallel with a 
Hauppauge Nova-T card (or their equivalents)? I think this card is duff, and 
I just want to check that it IS supported (I _know_ it is, but I have to 
confirm it).


-- 
adq


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: CRC32 errors in sections

2003-03-14 Thread Holger Waechtler
Jeremy Hall wrote:
In the new year, Holger Waechtler wrote:

Jeremy Hall wrote:
The DMX_CHECK_CRC flag is not implemented for av7110 based cards right 
now. If you want to implement this follow the Budget codepath for an 
example.

Where does that codepath start? Why has it not been implemented?
in the interrupt handlers. vpeirq() and fidbirq() for budget cards and 
debiirq() for av7110 based cards.


When the driver gives you a section, does it at least 
sanity check the seclen to determine if it will make a memory out of 
bounds problem so it won't happily overwrite other memory?
The read() function call will never read more bytes than you specified 
in the argument, so you'll never overwrite more memory than you passed 
as read()-buffer.

Is it a mmap'd read and you're actually accessing the incoming buffer, or 
does the driver copy a section to you? This question relates to the driver 
copying that data to userspace--how does it know how much to copy.  If the 
seclen is not correct, can the driver trash its memory structures?
no. If this happens you definitely found a driver bug.

Holger



--
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.


[linux-dvb] Re: CRC32 errors in sections

2003-03-14 Thread Jeremy Hall
In the new year, Holger Waechtler wrote:
 
 Jeremy Hall wrote:
  In the new year, Holger Waechtler wrote:
  
 Jeremy Hall wrote:
 When the driver gives you a section, does it at least 
 sanity check the seclen to determine if it will make a memory out of 
 bounds problem so it won't happily overwrite other memory?
 
 The read() function call will never read more bytes than you specified 
 in the argument, so you'll never overwrite more memory than you passed 
 as read()-buffer.
 
  
  Is it a mmap'd read and you're actually accessing the incoming buffer, or 
  does the driver copy a section to you? This question relates to the driver 
  copying that data to userspace--how does it know how much to copy.  If the 
  seclen is not correct, can the driver trash its memory structures?
 
 no. If this happens you definitely found a driver bug.
 
Well, to put it another way, when the userspace program requests a section 
filter, and starts it, what exactly does the driver prepare for it? The 
user gets the section length from the second and third bytes of the 
section.  If those are corrupt, and they are still less than the buffer 
size, the userspace application will read however much data it was told to 
read, we can't recover from that.  Then when we've read part way into 
another section, how do we get resynched with section boundaries?

If they are corrupt and larger than the userspace buffer size, how does 
the userspace program know how far to read ahead to find the next section? 
If CRC failure is detected, is it best to close and reopen the filter?

_J

 Holger
 



-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: CRC32 errors in sections

2003-03-14 Thread Johannes Stezenbach
On Fri, Mar 14, 2003 at 12:40:17PM -0500, Jeremy Hall wrote:
 Well, to put it another way, when the userspace program requests a section 
 filter, and starts it, what exactly does the driver prepare for it? The 
 user gets the section length from the second and third bytes of the 
 section.  If those are corrupt, and they are still less than the buffer 
 size, the userspace application will read however much data it was told to 
 read, we can't recover from that.  Then when we've read part way into 
 another section, how do we get resynched with section boundaries?
 
 If they are corrupt and larger than the userspace buffer size, how does 
 the userspace program know how far to read ahead to find the next section? 
 If CRC failure is detected, is it best to close and reopen the filter?

The section length field has 12 bits, so if you use a buffer of
4096 bytes length for your read, you will alwas get one full section
per read() call (the API guarantees that). If you find the section to be
broken, throw it away and read the next one.

OTOH the API also guarantees that you never get broken sections
if you use DMX_CHECK_CRC (provided the section_syntax_indicator is 1).
The av7110 implementation must be fixed.

The reason that it's broken now is that the AV7110 has hardware for the
CRC check, but no one got around implementing the check in the
firmware. Or maybe the Metzlers tried and it didn't work. Anyway, it's
simpler to implement it on the PC now. If someone sometime implements
it in the firmware, the check on the PC can be eleminated...


Regards,
Johannes


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: Erroneous unsupported PLL synthesizer: found it!!

2003-03-14 Thread Andrew de Quincey

Hi, I've found the problem. It seems to be the same one as mentioned in 
dvb-kernel and alps_bsru6 not tuning from Matt Davis on Mon, 03 Feb 2003.

Basically, sending both i2c commands at the same time means the stv0299 bus 
repeater does not have enough time (the i2c device returns BUSY 'cos it 
hasn't finished with the first message). Adopting the same solution (breaking 
all the double-i2c PLL writes up into two single ones) makes the PLL work 
again.

Patch coming up in a sec. Er, should I just make it always use two i2c 
commands when writing to the PLL in the i2c code? Two double ones seem to be 
causing lots of issues what do people think?

-- 
adq


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: CRC32 errors in sections

2003-03-14 Thread Ralph Metzler
Johannes Stezenbach writes:
  On Fri, Mar 14, 2003 at 12:40:17PM -0500, Jeremy Hall wrote:
[...]
  The reason that it's broken now is that the AV7110 has hardware for the
  CRC check, but no one got around implementing the check in the
  firmware. Or maybe the Metzlers tried and it didn't work. Anyway, it's
  simpler to implement it on the PC now. If someone sometime implements
  it in the firmware, the check on the PC can be eleminated...

As far as I can see you are all using the firmware in TS mode since
last October or so. Thus, all problems with section filtering 
which you blame on the firmware are purely psychosomatic. 
The data path (including CRC checking) is exactly the same as in the 
case of the Nova cards.

Ralph
 


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: Erroneous unsupported PLL synthesizer: found it!!

2003-03-14 Thread Ralph Metzler
Andrew de Quincey writes:
  
  Hi, I've found the problem. It seems to be the same one as mentioned in 
  dvb-kernel and alps_bsru6 not tuning from Matt Davis on Mon, 03 Feb 2003.
  
  Basically, sending both i2c commands at the same time means the stv0299 bus 
  repeater does not have enough time (the i2c device returns BUSY 'cos it 
  hasn't finished with the first message). Adopting the same solution (breaking 
  all the double-i2c PLL writes up into two single ones) makes the PLL work 
  again.


Well, I did ask you yesterday if PLL writes are done in one transfer
or two in the driver you are using.


Ralph


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: CRC32 errors in sections

2003-03-14 Thread Jeremy Hall
In the new year, Johannes Stezenbach wrote:
 
 On Fri, Mar 14, 2003 at 12:40:17PM -0500, Jeremy Hall wrote:
  Well, to put it another way, when the userspace program requests a section 
  filter, and starts it, what exactly does the driver prepare for it? The 
  user gets the section length from the second and third bytes of the 
  section.  If those are corrupt, and they are still less than the buffer 
  size, the userspace application will read however much data it was told to 
  read, we can't recover from that.  Then when we've read part way into 
  another section, how do we get resynched with section boundaries?
  
  If they are corrupt and larger than the userspace buffer size, how does 
  the userspace program know how far to read ahead to find the next section? 
  If CRC failure is detected, is it best to close and reopen the filter?
 
 The section length field has 12 bits, so if you use a buffer of
 4096 bytes length for your read, you will alwas get one full section
 per read() call (the API guarantees that). If you find the section to be
 broken, throw it away and read the next one.
 
 OTOH the API also guarantees that you never get broken sections
 if you use DMX_CHECK_CRC (provided the section_syntax_indicator is 1).
 The av7110 implementation must be fixed.
 
 The reason that it's broken now is that the AV7110 has hardware for the
 CRC check, but no one got around implementing the check in the
 firmware. Or maybe the Metzlers tried and it didn't work. Anyway, it's
 simpler to implement it on the PC now. If someone sometime implements
 it in the firmware, the check on the PC can be eleminated...
 
I don't mind doing it in the PC, my goal right now is to figure out why 
the arm is crashing.

One thing I am looking at now is

line 1011 of av7110.c, 
if (av7110-handle2filter[handle])

Could this create a race condition with its counterpart 3 lines down? or 
could this be optimized to avoid the same call twice?

_J

 
 Regards,
 Johannes
 
 
 -- 
 Info:
 To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
 subject.
 



-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: CRC32 errors in sections

2003-03-14 Thread Jeremy Hall
Hi,

all I know is that when I'm processing sections, the arm may crash.  when 
I'm not, the arm will not crash.  The arm seems only to crash under high 
volumes of data, or, because there are more datapoints, there is more 
chance for error.

Using the DVB CVS tree, how do I determine whether the firmware is in TS 
mode or not?

_J

In the new year, Ralph Metzler wrote:
 
 Johannes Stezenbach writes:
   On Fri, Mar 14, 2003 at 12:40:17PM -0500, Jeremy Hall wrote:
 [...]
   The reason that it's broken now is that the AV7110 has hardware for the
   CRC check, but no one got around implementing the check in the
   firmware. Or maybe the Metzlers tried and it didn't work. Anyway, it's
   simpler to implement it on the PC now. If someone sometime implements
   it in the firmware, the check on the PC can be eleminated...
 
 As far as I can see you are all using the firmware in TS mode since
 last October or so. Thus, all problems with section filtering 
 which you blame on the firmware are purely psychosomatic. 
 The data path (including CRC checking) is exactly the same as in the 
 case of the Nova cards.
 
 Ralph
  
 
 
 -- 
 Info:
 To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
 subject.
 



-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: CRC32 errors in sections

2003-03-14 Thread Ralph Metzler
Jeremy Hall writes:
  all I know is that when I'm processing sections, the arm may crash.  when 
  I'm not, the arm will not crash.  The arm seems only to crash under high 
  volumes of data, or, because there are more datapoints, there is more 
  chance for error.

Sure, if the total data rate of the selected PIDs is too high, this
can probably happen. But I guess it does not really crash but might only
be too busy to react to any new commands. 

 
  Using the DVB CVS tree, how do I determine whether the firmware is in TS 
  mode or not?

By checking what filter mode is used in StartHWFilter in av7110.c or
however it is now called in CVS. If it only uses 0xb96a it is in TS mode. 


Ralph


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: CRC32 errors in sections

2003-03-14 Thread Jeremy Hall
In the new year, Ralph Metzler wrote:
 
 Jeremy Hall writes:
   all I know is that when I'm processing sections, the arm may crash.  when 
   I'm not, the arm will not crash.  The arm seems only to crash under high 
   volumes of data, or, because there are more datapoints, there is more 
   chance for error.
 
 Sure, if the total data rate of the selected PIDs is too high, this
 can probably happen. But I guess it does not really crash but might only
 be too busy to react to any new commands. 
 
It says arm crashed in the logs and all the filters stop feeding until 
they are created again, i.e. when vdr restarts.

The start mode is set to 0x96a in my tree.  The other one is commented. 
0x0320

What is the bw limit that can cause the arm to crash?

_J

  
   Using the DVB CVS tree, how do I determine whether the firmware is in TS 
   mode or not?
 
 By checking what filter mode is used in StartHWFilter in av7110.c or
 however it is now called in CVS. If it only uses 0xb96a it is in TS mode. 
 
 
 Ralph
 
 
 -- 
 Info:
 To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
 subject.
 



-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: Erroneous unsupported PLL synthesizer: found it!!

2003-03-14 Thread Andrew de Quincey
On Friday 14 March 2003 18:35, Ralph Metzler wrote:
 Andrew de Quincey writes:
   Hi, I've found the problem. It seems to be the same one as mentioned in
   dvb-kernel and alps_bsru6 not tuning from Matt Davis on Mon, 03 Feb
   2003.
  
   Basically, sending both i2c commands at the same time means the stv0299
   bus repeater does not have enough time (the i2c device returns BUSY 'cos
   it hasn't finished with the first message). Adopting the same solution
   (breaking all the double-i2c PLL writes up into two single ones) makes
   the PLL work again.

 Well, I did ask you yesterday if PLL writes are done in one transfer
 or two in the driver you are using.

Yeah, I wasn't quite sure what you meant. In hindsight, of course, it all 
makes sense now :)

Anyway, shall I just patch it in for my PLL chip in particular, or just change 
all the PLL code to use seperate i2c transmissions?


-- 
adq


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: DVB API registration info, please

2003-03-14 Thread Florian Schirmer
Hi,

I would like to start with getting the demux, dvr and frontend devices set
up 
so that the mpeg stream can be recorded and the channel can be changed.  A 
brief list of things I have to register with the dvb api in order to
achieve 
this, and a short description of what each bit does, would be incredibly 
useful to me, and greatly appreciated :)

http://cvs.berlios.de/cgi-bin/viewcvs.cgi/tuxbox/driver/dvb/drivers/media/dv
b/dummy/dummyadap.c?rev=1.4content-type=text/vnd.viewcvs-markup

This is a simple driver we've used to develop a full featured V3 driver.
Maybe it helps you a bit. You need to fill start/stop_feed + i2c_xfer with
the proper hw handling.

Bye,
   Florian




--
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.



[linux-dvb] Re: V4 API proposal

2003-03-14 Thread Emard
Please discard my proposal. Everything could be done
from user space with user space fs and a full TS dump 
card, no need for anything else in the API, I guess.

Emard


-- 
Info:
To unsubscribe send a mail to [EMAIL PROTECTED] with unsubscribe linux-dvb as 
subject.