Mailing List archive

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

[linux-dvb] Re: [PATCH] fix for stream corruption on budget /Nova-T cards



Jon Burgess wrote:
Holger Waechtler wrote:


why do you want to do PID filtering on the RPS? it's done in software in the current Nova driver anyway...

I thought Robert was hinting that you could get the device to DMA the data straight into an output buffer which then gets returned to usermode, without needing to do any data copying. This sounds feasible for receiving the whole TS.

The usermode code could directly mmap() the DMA buffer. The userspace would need to be made aware of the circular nature of the buffer unless the driver can play games with file pointer to make it look like a linear file. A backwards seek() would be impossible if the data has already been overwritten and data would get lost if the usermode didn't keep up with the stream.
A mode like this was discussed as part of the v4 API but we didn't specified an exact mmap() behaviour. If you are willing to do so and to provide a reference implementation you're welcome! More sophisticated hardware is even able to copy also filtered data to the mapped buffers (which can again be kiobufs of the filesystem layer or skb buffers of the network code) -- this would provide an almost-zero-load recorder/playback/network implementation even for high datarates.

keep in mind that you need to implement memcpy()-based fallbacks for cards that are not flexible enough to provide all the API functionality.

Holger



--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index