首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在这里我可以找到使用v4l2编解码器驱动程序的例子。

在这里我可以找到使用v4l2编解码器驱动程序的例子。
EN

Stack Overflow用户
提问于 2013-12-07 01:52:28
回答 3查看 4.1K关注 0票数 4

在Raspberry-Pi码中,有一个s5p-jpeg编解码器驱动程序.

代码语言:javascript
运行
复制
drivers/media/platform/s5p-jpeg/jpeg-core.c

有人能告诉我在哪里可以找到如何使用它的例子吗?或者其他v4l2编解码器驱动程序?

我搜索过它,但是我找不到任何使用v4l2编解码驱动程序的例子。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-19 09:41:11

(添加另一个答案,因为它完全不同:-)

V4L2规范中的"codec“API指的是硬件编解码器。这种编解码器是一种具有下列功能的设备:

  • 硬件编解码器显示为/dev/videoX设备。
  • 它有一个视频输入,在这里你的用户应用程序可以发送一个视频流,例如包含JPEG编码的视频帧,所以它具有V4L2_CAP_VIDEO_OUTPUT功能和
  • 它有一个视频输出,用户应用程序可以从其中读取视频流(例如包含未压缩的帧),因此它还具有V4L2_CAP_VIDEO_CAPTURE功能。

有许多应用程序可以将视频写入v4l2输出设备,下面是我所知道的几个应用程序:

  • GStreamer's v4l2sink
  • LiVeS
  • 创业板
  • ..。

afaik,这些应用程序没有任何特定的代码来处理"v4l2编解码设备“,但是可以从v4l2设备中写入/读取,这就是您应该需要的。

还可以检查v4l-utils.git:在utils/V4L2-ctl/V4L2-ctl-Streing.cpp中查看

票数 3
EN

Stack Overflow用户

发布于 2013-12-17 09:43:24

当涉及到格式时,v4l2是非常自由的:例如,捕获设备可以提供几乎任何格式的帧。

因此,如果您正在编写一个用户土地工具(应用程序、库、.,而不是内核驱动程序),尽管不应该篡改编解码器(如果可以避免的话)。想象一下世界上每一个想要读取V4L2流的应用程序,必须添加代码来解码SQ905CMJPEG中的帧或类似的编解码器(每个应用程序都添加了自己的一组buggy实现)。

相反,聪明人创建了一个库,它将解压缩捕获设备提供的帧,并以标准方式提供这些帧:libv4l2

顺便说一句,如果您坚持编写自己的代码,libv4l2是一个很好的参考实现。

哦,如果你想把一个模块加载到内核空间的编码/解码中(例如,你有摄像头"foo“,它以"XYZ”格式交付图像,但你希望它通过添加一个内核模块以"ABC“格式传送图像),那么你就倒霉了。

Linus .已经非常清楚地忽略了编解码器转换代码不能在内核空间中运行的引用。

票数 2
EN

Stack Overflow用户

发布于 2021-03-03 07:03:08

代码这里访问v4l2编解码器驱动程序。

它索引检查V4L2_CAP_VIDEO_M2M上限

它基于内核捕获示例,但是有一些额外的代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20436592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档