Other Parts Discussed in Thread: AM5728
工具/软件:Linux
你好。 我在 AM5728上使用的是 ti-processor-sdk-linux-am57xx-evm-03.03.00.04。
我有具有离散同步的并行 RGB24 1024x768视频源。 我有了我的驱动程序、可以使用 ti-VIP 驱动程序捕获图像。 但我希望获得 UYVY 像素格式的图像。
我发现、TI VIP 模块可以执行此转换、但我找不到如何启用它。
当我呼叫时:
yavta -s1024x768 -C4 -n4 -Fres#.data -fRGB24 /dev/video2
我得到了 RGB24格式的正确帧。
当我呼叫时:
yavta -s1024x768 -C4 -n4 -Fres#.data -fuyvy /dev/video2
我在 RGB24和 dmesg 输出中得到了帧、我得到:
[453.468591] vip2-s1:vIP_open
[453.468610] my_cam:获取 fmt
[453.470722] vip2-s1:vip_init_port:g_MBUS_fmt subdev MBUS_code:100A fourcc:RGB3大小:1024x768
[453.47073] vip2-s1:Calc_format_size:FourCC:RGB3 size:1024x768 BPL:3072 img_size:2359296
[453.470746] vip2-s1:init_stream fourcc:RGB3大小:1024x768 BPL:3072 img_size:2359296
[453.47074] vip2-s1:init_stream vpdma 数据类型:0x16
[453.470763] vip2-s1:vip_init_stream:流实例0x00000001ecb99000
[453.470892] vip2-s1:s_fmt 输入 fourcc:UYVY 大小:1024x768
[453.470902] vip2-s1:try _fmt fourcc:UYVY 大小:1024x768
[453.470910] vip2-s1:找不到 FourCC 格式(0x59565955)。
[453.470917] VIP_CSC_DIRECTION VIP_CSC_NA
[453.474855] my_cam:枚举帧大小索引0
[453.487372] vip2-s1:try fmt loop:0 fourcc:RGB3大小:1024x768
[453.487383] vip2-s1:try fmt loop:0发现新的更大:1024x768
[453.487392] vip2-s1:try_fmt loop:0找到的最小值为1024x768
[453.487400] vip2-s1:try fmt loop:0发现了新的最佳结果:1024x768
[453.487408] vip2-s1:try fmt loop:0找到直接匹配:1024x768
[453.487417] vip2-s1:Calc_format_size:FourCC:RGB3 size:1024x768 BPL:3072 img_size:2359296
[453.487425] vip2-s1:s_fmt try_fmt fccc:RGB3大小:1024x768
[453.487430] VIP_CSC_DIRECTION VIP_CSC_NA
[453.491404] vip2-s1:s_fmt fourcc:RGB3大小:1024x768 BPL:3072 img_size:2359296
[453.491422] vip2-s1:s_fmt pix_TO_MBUS MBUS_code:100A 大小:1024x768
[453.491431] 设置格式1024x768
[453.494584] vip2-s1:s_fmt subdev fmt MBUS_code:100A 大小:1024x768
[453.494591] vip2-s1:s_fmt vpdma 数据类型:0x16
[453.494597] my_cam:get_selection
[453.498246] vip2-s1:g_fmt fourcc:RGB3代码:100A 大小:1024x768 BPL:3072 img_size:2359296
[453.498254] vip2-s1:g_fmt vpdma 数据类型:0x16
[453.498285] vip2-s1:获取4个大小均为2359296的缓冲器。
[453.505282] vip2-s1:vIP_set_slice_path:
[453.505296] vip2-s1:vip_set_slice_path:data_path_select (00000110):800080
[453.505304] vip2-s1:vIP_set_slice_path:
[453.505313] vip2-s1:vip_set_slice_path:data_path_select (00000110):40008080
[453.505594] SET_CROP_PARSER:左侧0、顶部0
[453.510007] my_cam:s_stream 启用1
[453.512998] vip2-s1:vip_load_vpdma_list_fifo:start_DMA VB2 buf idx:0
[453.514127] vip2-s1:vip_load_vpdma_list_fifo:start_DMA VB2 buf idx:1.
[453.916727] vip2-s1:vip_stop_streaming:
[453.916742] vip2-s1:vIP_DISABLE_SC_PATH:
[453.916752] my_cam:s_stream 启用0
[453.919773] vip2-s1:无通道编号:177
[453.921522] vip2-s1:vIP_release
[453.921537] vip2-s1:vip_release_stream:流实例0xee8adef0ecb99000
[453.921546] vip2-s1:vip_release_port:端口实例0xece3e780ecb67410
即 UYVY 被驱动器丢弃
在 my_cam 驱动程序 enum_MBUS_code 调用中,我设置了 code=media_bus_FMT_RGB888_1X24,或者 如果代码->index>=1,则返回-EINVAL
在 get_fmt 和 set_fmt 中:
fmt->format.width = 1024;
FMT->FORMAT.HEIGHT = 768;
fmt->format.colorspace = V4L2_colorspace_sRGB;
fmt->format.code = media_BUS_FMT_RGB888_1X24;
FMT->format.field = V4L2_field_none;
如何配置 VIP 流水线或更改驱动程序以从输入读取 RGB24并将 UYVY 写入内存? 我无法更改视频源像素的格式