Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: DVB driver bug, fixed it (quick hack)




Thanks - a few issues though:

> > convergence.de uses 32 bit buffer......
> > this returned int, changed to long!
> > static inline long

"long" by itself is signed. In fact on x86 long == int ==32bit signed integer. 

On AMD64 however, long == 64bit signed while int == 32bit signed. What 
platform are you using?

> > dvb_dmxdev_buffer_write(dmxdev_buffer_t *buf, uint8_t
> > *src, size_t len)
> > {
> > unsigned int split; // changed was int
> > unsigned int free; // changed, was int
> > unsigned int todo; // changed, was int
> >
> > if(! len)  return 0;
> >
> > if(! buf->data) return 0;
> >
> > free = buf->pread - buf->pwrite;
> >
> > split = 0;
> > if(free == 0)

You're using an old version of the driver. In CVS, this line is changed to 
if (free <=0)

I dunno if this solves your problem though... can you try CVS head and report 
back please?




Home | Main Index | Thread Index