On Tue, Jan 14, 2003 at 03:49:36PM +0100, Felix Domke wrote: > Johannes Stezenbach wrote: > > >Regardless what manual pages or POSIX say, the driver implements > >read() for section filters in such a way that you get either > >a full section, or nothing -- provided that the buffer you pass > >to read() is large enough for the section (else you will get > >partial sections, but never the end of one section and the start > >of the next section in one read). > > > Sorry, I think after a partitial section you read the same section > again, since otherwise the "read 3 bytes, determine length, read whole > section"-sheme wouldn't work. And exactly this leeds to EOVERFLOW, > since the buffer fills and fills and no section will ever be removed > from the buffer.
If this is true then it is a bug. The second read() should give you the remainder of the section, and the section should then be removed from the driver's buffer. DVB/doc/dvbapi/demux.tex documents this behaviour of the read() system call for section filters. But I must admit that I haven't tested this, I always use a large buffer and get full sections. Regards, Johannes -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.
