在Raspberry-Pi码中,有一个s5p-jpeg
编解码器驱动程序.
drivers/media/platform/s5p-jpeg/jpeg-core.c
有人能告诉我在哪里可以找到如何使用它的例子吗?或者其他v4l2编解码器驱动程序?
我搜索过它,但是我找不到任何使用v4l2编解码驱动程序的例子。
发布于 2013-12-19 09:41:11
(添加另一个答案,因为它完全不同:-)
V4L2规范中的"codec“API指的是硬件编解码器。这种编解码器是一种具有下列功能的设备:
/dev/videoX
设备。V4L2_CAP_VIDEO_OUTPUT
功能和V4L2_CAP_VIDEO_CAPTURE
功能。有许多应用程序可以将视频写入v4l2输出设备,下面是我所知道的几个应用程序:
v4l2sink
元afaik,这些应用程序没有任何特定的代码来处理"v4l2编解码设备“,但是可以从v4l2设备中写入/读取,这就是您应该需要的。
还可以检查v4l-utils.git:在utils/V4L2-ctl/V4L2-ctl-Streing.cpp中查看
发布于 2013-12-17 09:43:24
当涉及到格式时,v4l2是非常自由的:例如,捕获设备可以提供几乎任何格式的帧。
因此,如果您正在编写一个用户土地工具(应用程序、库、.,而不是内核驱动程序),尽管不应该篡改编解码器(如果可以避免的话)。想象一下世界上每一个想要读取V4L2流的应用程序,必须添加代码来解码SQ905C
或MJPEG
中的帧或类似的编解码器(每个应用程序都添加了自己的一组buggy实现)。
相反,聪明人创建了一个库,它将解压缩捕获设备提供的帧,并以标准方式提供这些帧:libv4l2。
顺便说一句,如果您坚持编写自己的代码,libv4l2
是一个很好的参考实现。
哦,如果你想把一个模块加载到内核空间的编码/解码中(例如,你有摄像头"foo“,它以"XYZ”格式交付图像,但你希望它通过添加一个内核模块以"ABC“格式传送图像),那么你就倒霉了。
Linus .已经非常清楚地忽略了编解码器转换代码不能在内核空间中运行的引用。
https://stackoverflow.com/questions/20436592
复制相似问题