v4l2架构专题模块crop及selection分析 --- 帧数据怎么处理?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了v4l2架构专题模块crop及selection分析 --- 帧数据怎么处理?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1870字,纯文字阅读大概需要3分钟。
内容图文
![v4l2架构专题模块crop及selection分析 --- 帧数据怎么处理?](/upload/InfoBanner/zyjiaocheng/1001/647c0163656d42779ecd17823045e02b.jpg)
Linux v4l2架构学习总链接
写到最后了,突然想起来帧数据是怎么处理的?从buffer中裁剪吗?
static int rkcif_stream_start(struct rkcif_stream *stream)
{
...
if (stream->crop_enable) {
dev->channels[stream->id].crop_en = 1;
dev->channels[stream->id].crop_st_x = stream->crop[CROP_SRC_ACT].left;
dev->channels[stream->id].crop_st_y = stream->crop[CROP_SRC_ACT].top;
dev->channels[stream->id].width = stream->crop[CROP_SRC_ACT].width;
dev->channels[stream->id].height = stream->crop[CROP_SRC_ACT].height;
} else {
dev->channels[stream->id].crop_st_y = 0;
dev->channels[stream->id].crop_st_x = 0;
dev->channels[stream->id].width = stream->pixm.width;
dev->channels[stream->id].height = stream->pixm.height;
dev->channels[stream->id].crop_en = 0;
}
rkcif_write_register(dev, CIF_REG_DVP_CROP,
dev->channels[stream->id].crop_st_y << CIF_CROP_Y_SHIFT |
dev->channels[stream->id].crop_st_x);
...
}
可以看到crop_enable满足的时候,代码中将值给了crop_st_x,crop_st_y,最后写到了CIF_REG_DVP_CROP寄存器中
所以这里可以认为是硬件操作
如果硬件不支持的话,会出现什么情况?
这里找到了imx6的代码,明确的写了不支持crop 功能...
static int mx6s_vidioc_cropcap(struct file *file, void *fh,
struct v4l2_cropcap *a)
{
struct mx6s_csi_dev *csi_dev = video_drvdata(file);
if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL;
dev_dbg(csi_dev->dev, "VIDIOC_CROPCAP not implemented\n");
return 0;
}
static int mx6s_vidioc_g_crop(struct file *file, void *priv,
struct v4l2_crop *a)
{
struct mx6s_csi_dev *csi_dev = video_drvdata(file);
if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL;
dev_dbg(csi_dev->dev, "VIDIOC_G_CROP not implemented\n");
return 0;
}
static int mx6s_vidioc_s_crop(struct file *file, void *priv,
const struct v4l2_crop *a)
{
struct mx6s_csi_dev *csi_dev = video_drvdata(file);
if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL;
dev_dbg(csi_dev->dev, "VIDIOC_S_CROP not implemented\n");
return 0;
}
内容总结
以上是互联网集市为您收集整理的v4l2架构专题模块crop及selection分析 --- 帧数据怎么处理?全部内容,希望文章能够帮你解决v4l2架构专题模块crop及selection分析 --- 帧数据怎么处理?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。