Skip to content

uvc摄像头例子通讯报错 (AEGHB-844) #157

@Gornerrrrr

Description

@Gornerrrrr

开发板:esp32s2-Saola-v1.2
开发环境:win10 + IDFv4.4 + esp iot solution
摄像头:USB2.0 uvc免驱支持MJPEG摄像头

我根据摄像头描述符配置了usb_camera_wifi_transfer例程的参数后烧写测试,发现在通讯之后报错“SWAP NO EOF ”。

运行log

I (816) UVC_STREAM: UVC Streaming Config Succeed
I (866) UVC_STREAM: UVC Streaming Starting
I (896) UVC_STREAM: Port=1 init succeed
I (896) UVC_STREAM: Waitting USB Connection
I (1146) UVC_STREAM: line 353 HCD_PORT_EVENT_CONNECTION
I (1146) UVC_STREAM: Resetting Port
I (1206) UVC_STREAM: Setting Port FIFO
I (1206) UVC_STREAM: Getting Port Speed
I (1206) UVC_STREAM: Port speed = 1
I (1206) UVC_STREAM: USB Speed: full-speed
I (1206) UVC_STREAM: Set Device Addr = 1
I (1226) UVC_STREAM: Set Device Addr Done
I (1226) UVC_STREAM: Set Device Configuration = 1
I (1236) UVC_STREAM: Set Device Configuration Done
I (1236) UVC_STREAM: SET_CUR Probe
I (1236) UVC_STREAM: SET_CUR Probe Done
I (1236) UVC_STREAM: GET_CUR Probe
bmHint: 0001
bFormatIndex: 2
bFrameIndex: 5
dwFrameInterval: 10000000
wKeyFrameRate: 0
wPFrameRate: 0
wCompQuality: 0
wCompWindowSize: 0
wDelay: 0
dwMaxVideoFrameSize: 614400
dwMaxPayloadTransferSize: 800
dwClockFrequency: 0
bmFramingInfo: 0
bPreferredVersion: 0
bMinVersion: 0
bMaxVersion: 0
bInterfaceNumber: 0
I (1276) UVC_STREAM: GET_CUR Probe Done, actual_num_bytes:64
I (1276) UVC_STREAM: SET_CUR COMMIT
I (1286) UVC_STREAM: SET_CUR COMMIT Done
I (1286) UVC_STREAM: Set Device Interface = 1, Alt = 4
I (1296) UVC_STREAM: Set Device Interface Done
I (1296) UVC_STREAM: Sample processing task started
I (1356) UVC_STREAM: Camera Start Streaming
W (5346) UVC_STREAM: SWAP NO EOF 9412
W (5846) UVC_STREAM: SWAP NO EOF 9536
W (6336) UVC_STREAM: SWAP NO EOF 9656

我的配置:

    uvc_config_t uvc_config = {
        .dev_speed = USB_SPEED_FULL, //固定为 USB_SPEED_FULL
        .configuration = 1, //配置描述符编号,一般为 1
        .format_index = 2, // MJPEG 对应的 bFormatIndex, bFormatIndex: 0x02 (2)
        .frame_width = 160, // MJPEG 横向像素,例如 320
        .frame_height = 120, // MJPEG 纵向像素,例如 240
        .frame_index = 5, //MJPEG 320*240 对应的 bFrameIndex, bFrameIndex: 0x05
        .frame_interval = 333333, //可选的帧率 dwFrameInterval,例如 30fps
        .interface = 1, // 可选的视频流接口 bInterfaceNumber,一般为 1
        .interface_alt = 4, // 接口选项 bAlternateSetting, bAlternateSetting: 0x04
        .isoc_ep_addr = 0x82, // 接口选项对应的 bEndpointAddress, bEndpointAddresS: 0x82 (Direction=IN EndpointID=2)
        .isoc_ep_mps = 512, // 接口选项的确定的 MPS, 例如为 512
        .xfer_buffer_size = 20*1024, //单帧图像大小,需要根据实际测试确定,320*240 一般小于 35KB
        .xfer_buffer_a = pointer_buffer_a, // 已经申请的 buffer 指针
        .xfer_buffer_b = pointer_buffer_b, // 已经申请的 buffer 指针
        .frame_buffer_size = 20*1024, //单帧图像大小,需要根据实际测试确定
        .frame_buffer = pointer_frame_buffer, // 已经申请的 buffer 指针
    };

摄像头描述符,我是用win10的软件获取的,比较多
摄像头描述符.txt

请问可能是什么问题导致的?uvc协议还在学习中不是很明白,是描述符配置的不对还是摄像头本身就不支持?或者说例程需要改动?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions