On 11/01/2015 09:13 PM, Ran Shalit wrote: >> Don't use videobuf! Use videobuf2, just like the skeleton driver. >> >> The old videobuf framework is deprecated and you shouldn't use it as it is >> horrible. >> >> Why on earth are you trying to use videobuf if the skeleton driver clearly >> uses vb2? >> > > Right, > I now see that I was examining code which is quite old (2.6.37 from > SDK I'm using). > > In case we only need read/write operation, do we still need to > implement all videobuf2 APIs ? vb2 only got merged in 2.6.39. For what kernel are you doing this? 2.6.37 is ancient. Anyway, for read/write you implement exactly the same vb2 callbacks as for stream I/O. Read/write is implemented in the vb2 framework on top of stream I/O. Typically drivers will have to implement queue_setup, buf_queue and start/stop_streaming at minimum. The wait_prepare/finish callbacks are also needed, but you can typically use the vb2_ops_wait_prepare/finish helper functions for that. Again, follow what the skeleton driver does. Regards, Hans > > > Regards, > Ran > > >> >>> When the documentation refers to " I/O stream" , does it also include >>> the read/write operation or only streaming I/O method ? >>> >>> In case I am using only read/write, do I need to implement all these 4 APIs: >>> >>> struct videobuf_queue_ops { >>> int (*buf_setup)(struct videobuf_queue *q, >>> unsigned int *count, unsigned int *size); >>> int (*buf_prepare)(struct videobuf_queue *q, >>> struct videobuf_buffer *vb, >>> enum v4l2_field field); >>> void (*buf_queue)(struct videobuf_queue *q, >>> struct videobuf_buffer *vb); >>> void (*buf_release)(struct videobuf_queue *q, >>> struct videobuf_buffer *vb); >>> }; >>> >>> Are these APIs relevant for both read/write and streaminf I/O ? >>> >>> Best Regards, >>> Ran >>> -- >>> To unsubscribe from this list: send the line "unsubscribe linux-media" in >>> the body of a message to majordomo@xxxxxxxxxxxxxxx >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> >> -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html