完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
去隔行在基于内核 5.10.35 的 Yocto Linux 上不起作用。
我们使用 MIPI-CSI 接口将 adv748x 连接到 i.MX8MP。 adv748x 接收 NTSC 信号并通过 CSI 接口将其传输到 i.MX8MP。 这是 media-ctl -p 命令的输出 媒体控制器 API 版本 5.10.35 媒体设备信息 ---------------------- 驱动程序 mxc-md 型号 FSL 捕获媒体设备 连续剧 公交信息 硬件修订版 0x0 驱动程序版本 5.10.35 设备拓扑 - 实体 1:mxc_isi.0(16 个焊盘,2 个链接) 类型 V4L2 子开发子类型未知标志 0 pad0:水槽 <-“mxc-mipi-csi2.0”:4 [启用] pad1:水槽 pad2:水槽 pad3:水槽 pad4:水槽 pad5:水槽 pad6:水槽 pad7:水槽 pad8:水槽 pad9:水槽 pad10:水槽 pad11:水槽 pad12:来源 -> “mxc_isi.0.capture”:0 [启用] pad13:来源 pad14:来源 pad15:水槽 - 实体 18:mxc_isi.0.capture(1 个焊盘,1 个链接) 类型节点子类型 V4L 标志 0 设备节点名称 /dev/video3 pad0:水槽 <-“mxc_isi.0”:12 [启用] - 实体 22:mxc-mipi-csi2.0(8 个焊盘,2 个链接) 类型节点子类型 V4L 标志 0 设备节点名称 /dev/v4l-subdev0 pad0:水槽 <-“adv748x 2-0070 txa”:1 [启用,不可变] pad1:水槽 pad2:水槽 pad3:水槽 pad4:来源 -> “mxc_isi.0”:0 [启用] pad5:来源 pad6:来源 pad7:来源 - 实体 31:adv748x 2-0070 txa(2 个垫,3 个链接) 类型 V4L2 子开发子类型未知标志 0 设备节点名称 /dev/v4l-subdev3 pad0:水槽 [fmt:UYVY8_2X8/720x240 字段:备用色彩空间:smpte170m] <-“adv748x 2-0070 安全”:8 [启用] <-“adv748x 2-0070 hdmi”:1 [] pad1:来源 [fmt:UYVY8_2X8/720x240 字段:备用色彩空间:smpte170m] -> "mxc-mipi-csi2.0":0 [启用,不可变] - 实体 34:adv748x 2-0070 afe(9 个焊盘,1 个链接) type V4L2 subdev subtype 解码器标志 0 设备节点名称 /dev/v4l-subdev1 pad0:水槽 pad1:水槽 pad2:水槽 pad3:水槽 pad4:水槽 pad5:水槽 pad6:水槽 pad7:水槽 pad8:来源 [fmt:UYVY8_2X8/720x240 字段:备用色彩空间:smpte170m] -> “adv748x 2-0070 txa”:0 [启用] 我可以使用命令 gst-launch-1.0 v4l2src device=/dev/video3 进行捕获!视频/x-raw,宽度=720,高度=240!队列 !kmssink 但是这个命令只捕获一半的图像 - 帧只有奇数或只有偶数行 (720x240 而不是 720x480)。 当我尝试启用去隔行时它失败了: # gst-launch-1.0 --gst-debug=v4l2src:5 v4l2src device=/dev/video3 ! 视频/x-raw,宽度=720,高度=240,交错模式=交错!队列 !kmssink 将管道设置为 PAUSED ... 管道是实时的,不需要 PREROLL ... 管道是 PREROLLED ... 将管道设置为 PLAYING ... 0:00:00.745451625 776 0xaaab147314c0 DEBUG v4l2src gstv4l2src.c:515:gst_v4l2src_negotiate: caps of src: video/x-raw(format:Interlaced), format=(string)YUY2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw, format=(string)YUY2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }; video/x-raw(format:Interlaced), format=(string)YUY2, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw(format:Interlaced), format=(string)BGRA, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw, format=(string)BGRA, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }; video/x-raw(format:Interlaced), format=(string)BGRA, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw(format:Interlaced), format=(string)BGRx, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw, format=(string)BGRx, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }; video/x-raw(format:Interlaced), format=(string)BGRx, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw(format:Interlaced), format=(string)BGR, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw, format=(string)BGR, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }; video/x-raw(format:Interlaced), format=(string)BGR, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw(format:Interlaced), format=(string)RGB, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw, format=(string)RGB, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }; video/x-raw(format:Interlaced), format=(string)RGB, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw(format:Interlaced), format=(string)NV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw, format=(string)NV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }; video/x-raw(format:Interlaced), format=(string)NV12, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw(format:Interlaced), format=(string)RGB16, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate; video/x-raw, format=(string)RGB16, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string){ progressive, interleaved }; video/x-raw(format:Interlaced), format=(string)RGB16, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 4096 ], height=(int)[ 1, 8192 ], interlace-mode=(string)alternate 新时钟:GstSystemClock 0:00:00.745651375 776 0xaaab147314c0 DEBUG v4l2src gstv4l2src.c:523:gst_v4l2src_negotiate: peer 的上限:video/x-raw, width=(int)720, height=(int)240, interlace-mode=(string )interlaced, format=(string){ BGRx, BGRA, RGBx, RGBA, NV12_10LE}, framerate=(fraction)[0/1, 2147483647/1] 0:00:01.078356375 776 0xaaab147314c0 调试 v4l2src gstv4l2src.c:529:gst_v4l2src_negotiate: 相交: 空 错误:来自元素 /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:内部数据流错误。 附加调试信息: ../git/libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: 流式传输已停止,原因未协商 (-4) 执行在 0:00:00.333395500 后结束 将管道设置为 NULL ... 释放管道... 我调查了 imx8-isi-hw.c 并没有找到去隔行扫描的实现。 有两个函数 mxc_isi_channel_deinterlace_init 和 mxc_isi_channel_set_deinterlace 但第一个是空的,第二个从未使用过。 也许我使用了错误的管道? 还有其他方法可以从捕获媒体设备获取隔行扫描图像吗? 是否实施了 ISI 去隔行扫描? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1935个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36430 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
5031 浏览 1 评论
6115 浏览 1 评论
6822 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4254 浏览 0 评论
655浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
646浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
647浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
737浏览 2评论
850浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 23:48 , Processed in 1.114821 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号