Andrew de Quincey wrote:
Yes, Andrew is right. The patch I posted doesnt compile on my x86: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?