2 / 2 / 0
Регистрация: 24.02.2017
Сообщений: 130
|
|||||||||||
1 | |||||||||||
ioctl Не работает на Raspberry с Ubuntu18.08.2022, 09:24. Показов 872. Ответов 11
Есть Raspberry Pi 4 (aarch64 Cortex-A72) с установленной 64-битной ОС Ubuntu 22.04 LTS. Пытаюсь прочитать кадр с веб-камеры. Когда я запускаю этот код, чтобы записать буфер:
V4lNode failed dequeue frame from buffer: Resource temporarily unavailable При этом когда я открываю устройство:
V4lNode open files discription: Success При запуске тестов V4l: Код
pi@pi:~$ v4l2-compliance v4l2-compliance 1.22.1, 64 bits, 64-bit time_t Compliance test for uvcvideo device /dev/video0: Driver Info: Driver name : uvcvideo Card type : Intel F450 Bus info : usb-0000:01:00.0-1.1 Driver version : 5.15.39 Capabilities : 0x84a00001 Video Capture Metadata Capture Streaming Extended Pix Format Device Capabilities Device Caps : 0x04200001 Video Capture Streaming Extended Pix Format Media Driver Info: Driver name : uvcvideo Model : Intel F450 Serial : 00.00.01 Bus info : usb-0000:01:00.0-1.1 Media version : 5.15.39 Hardware revision: 0x00000100 (256) Driver version : 5.15.39 Interface Info: ID : 0x03000002 Type : V4L Video Entity Info: ID : 0x00000001 (1) Name : Intel F450 Function : V4L2 I/O Flags : default Pad 0x01000007 : 0: Sink Link 0x02000010: from remote pad 0x100000a of entity 'Extension 3' (Video Pixel Formatter): Data, Enabled, Immutable Required ioctls: test MC information (see 'Media Driver Info' above): OK test VIDIOC_QUERYCAP: OK test invalid ioctls: OK Allow for multiple opens: test second /dev/video0 open: OK test VIDIOC_QUERYCAP: OK test VIDIOC_G/S_PRIORITY: OK test for unlimited opens: OK Debug ioctls: test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported) test VIDIOC_LOG_STATUS: OK (Not Supported) Input ioctls: test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported) test VIDIOC_ENUMAUDIO: OK (Not Supported) test VIDIOC_G/S/ENUMINPUT: OK test VIDIOC_G/S_AUDIO: OK (Not Supported) Inputs: 1 Audio Inputs: 0 Tuners: 0 Output ioctls: test VIDIOC_G/S_MODULATOR: OK (Not Supported) test VIDIOC_G/S_FREQUENCY: OK (Not Supported) test VIDIOC_ENUMAUDOUT: OK (Not Supported) test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported) test VIDIOC_G/S_AUDOUT: OK (Not Supported) Outputs: 0 Audio Outputs: 0 Modulators: 0 Input/Output configuration ioctls: test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported) test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported) test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported) test VIDIOC_G/S_EDID: OK (Not Supported) Control ioctls (Input 0): fail: v4l2-test-controls.cpp(246): missing control class for class 00980000 test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: FAIL test VIDIOC_QUERYCTRL: OK test VIDIOC_G/S_CTRL: OK warn: v4l2-test-controls.cpp(757): g_ext_ctrls(0) invalid error_idx 0 test VIDIOC_G/S/TRY_EXT_CTRLS: OK test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK test VIDIOC_G/S_JPEGCOMP: OK (Not Supported) Standard Controls: 1 Private Controls: 0 Format ioctls (Input 0): test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK test VIDIOC_G/S_PARM: OK test VIDIOC_G_FBUF: OK (Not Supported) test VIDIOC_G_FMT: OK test VIDIOC_TRY_FMT: OK warn: v4l2-test-formats.cpp(1036): Could not set fmt2 test VIDIOC_S_FMT: OK test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported) test Cropping: OK (Not Supported) test Composing: OK (Not Supported) test Scaling: OK (Not Supported) Codec ioctls (Input 0): test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported) test VIDIOC_G_ENC_INDEX: OK (Not Supported) test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported) Buffer ioctls (Input 0): test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK test VIDIOC_EXPBUF: OK test Requests: OK (Not Supported) Total for uvcvideo device /dev/video0: 46, Succeeded: 45, Failed: 1, Warnings: 2 Код
Control ioctls (Input 0): fail: v4l2-test-controls.cpp(246): missing control class for class 00980000 test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: FAIL Код
(Not Supported)
0
|
18.08.2022, 09:24 | |
Ответы с готовыми решениями:
11
Кросс компиляция для Raspberry Pi 4 (Raspberry Pi OS 10 Buster) Raspberry PI zero W + ЦАП PCM5102 не работает Cannot get serial info: Inappropriate ioctl for device Обработка фильтр-драйвером IOCTL запросов |
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
|||||||||||
18.08.2022, 11:33 | 2 | ||||||||||
а если просто
0
|
2 / 2 / 0
Регистрация: 24.02.2017
Сообщений: 130
|
||||||
18.08.2022, 12:29 [ТС] | 3 | |||||
Humanoid, выполнил сразу после open с флагом
Код
O_RDONLY Код
fd = open(path.c_str(), O_RDONLY); struct v4l2_fmtdesc formats = {}; formats.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; uint32_t idx = 0; while(true) { formats.index = idx; if (ioctl(_fd, VIDIOC_ENUM_FMT, &formats) == -1) { std::cout << "V4lNode open files discription: " << strerror(errno) << std::endl; break; } printf("Format idx:%d, flags:%#x, pixfmt:%#x, desc:%s\n", formats.index, formats.flags, formats.pixelformat, formats.description); idx++; } Format idx:0, flags:0, pixfmt:0x56595559, desc:YUYV 4:2:2 V4lNode open files discription: Invalid argument Вывожу в терминале: Код
pi@pi:~$ v4l2-ctl --list-formats ioctl: VIDIOC_ENUM_FMT Type: Video Capture [0]: 'YUYV' (YUYV 4:2:2) Humanoid, если Ваш код выполнять сразу после открытия с флагами
Код
Format idx:0, flags:0, pixfmt:0x56595559, desc:YUYV 4:2:2 V4lNode open files discription: Invalid argument Добавлено через 6 минут Humanoid, UPD с флагом Код
O_RDONLY Код
O_RDWR | O_NONBLOCK
0
|
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
||||||
18.08.2022, 12:59 | 4 | |||||
Хорошо, формат он нормально передал. Может, какие-то проблемы с выделением буфера.
0
|
2 / 2 / 0
Регистрация: 24.02.2017
Сообщений: 130
|
|
18.08.2022, 14:35 [ТС] | 5 |
Humanoid, запустил ваш код в мейн. Вывод следующий
Resolution: 352x640Size: 450560 (0) Size: 450560 (0) V4lNode VIDIOC_DQBUF: Resource temporarily unavailable Добавлено через 48 минут Humanoid, код по выделению буфера, открытию девайса. Это API RealSenseID: https://github.com/IntelRealSe... Capture.cc https://raw.githubusercontent.... ecture.png Добавлено через 13 минут Humanoid, собственно у меня и не работает апи камеры. Само апи собирается как библиотека. Я начал дебажить апи и уперся в то, что проблемы с драйверами (апи это надстройка более высокоуровневая, как видно из доков https://raw.githubusercontent.... ecture.png) Добавлено через 22 минуты Humanoid, я нагуглил несколько решений: https://forums.raspberrypi.com... 8&t=197089 https://stackoverflow.com/ques... leshooting https://community.volumio.org/... clicks/784 только я не понимаю как тоже самое сделать на Код
Ubuntu Код
/boot/cmdline.txt
0
|
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
|
18.08.2022, 14:37 | 6 |
А в dmesg при этом ничего не выводит?
В общем, у меня идей нет. Этот код у меня с обычной USB-камерой работает. Вообще, интересно... ведь это стерео-камера... куда она выводит второй поток? Или в этом 352x640 два склеенных потока? Может она не хочет только один поток отдавать и там надо как-то второй поток включить?
0
|
2 / 2 / 0
Регистрация: 24.02.2017
Сообщений: 130
|
|
18.08.2022, 16:39 [ТС] | 7 |
Humanoid, в dmesg выводит такие вот ошибки:
Код
[ 8478.380582] uvcvideo 1-1.1:1.1: Failed to resubmit video URB (-1). [ 8683.241048] uvcvideo 1-1.1:1.1: Failed to resubmit video URB (-1). [19271.194222] uvcvideo 1-1.1:1.1: Failed to resubmit video URB (-1). [31073.561566] uvcvideo 1-1.1:1.1: Failed to resubmit video URB (-1). [31073.561571] uvcvideo 1-1.1:1.1: Failed to resubmit video URB (-1). [31073.561602] uvcvideo 1-1.1:1.1: Failed to resubmit video URB (-1). [31073.561626] uvcvideo 1-1.1:1.1: Failed to resubmit video URB (-1). [31073.561627] uvcvideo 1-1.1:1.1: Failed to resubmit video URB (-1). [103193.316506] usb 1-1.3: device descriptor read/64, error -32 Humanoid, нашел файл /boot/cmdline.txt. Попробую Добавлено через 36 минут Humanoid, Добавление https://stackoverflow.com/ques... leshooting не помогло. При открытии камеры в стороннем приложении, она открывается, при этом сыпется куча ошибок Код
pi@pi:~$ guvcview V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.V4L2_CORE: Unable to find parent usb device.GUVCVIEW: version 2.0.7 GUVCVIEW: couldn't open /home/pi/.config/guvcview2/video0 for read: No such file or directory V4L2_CORE: (UVCIOC_CTRL_MAP) Error: No such file or directory V4L2_CORE: (UVCIOC_CTRL_MAP) Error: No such file or directory V4L2_CORE: (UVCIOC_CTRL_MAP) Error: No such file or directory V4L2_CORE: (UVCIOC_CTRL_MAP) Error: No such file or directory V4L2_CORE: (UVCIOC_CTRL_MAP) Error: No such file or directory V4L2_CORE: (UVCIOC_CTRL_MAP) Error: No such file or directory V4L2_CORE: (UVCIOC_CTRL_MAP) Error: No such file or directory V4L2_CORE: (UVCIOC_CTRL_MAP) Error: No such file or directory V4L2_CORE: (UVCIOC_CTRL_MAP) Error: No such file or directory ALSA lib confmisc.c:855:(parse_card) cannot find card '0' ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM sysdefault ALSA lib confmisc.c:855:(parse_card) cannot find card '0' ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_inum returned error: No such file or directory ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM sysdefault ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.front ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround21 ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround40 ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround41 ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround50 ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround51 ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71 ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.iec958 ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0 ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0 ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0 ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0 Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0 ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0 ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0 ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0 ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card' ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card' ALSA lib confmisc.c:855:(parse_card) cannot find card '0' ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_card_id returned error: No such file or directory ALSA lib confmisc.c:422:(snd_func_concat) error evaluating strings ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory ALSA lib confmisc.c:1334:(snd_func_refer) error evaluating name ALSA lib conf.c:5178:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5701:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2664:(snd_pcm_open_noupdate) Unknown PCM dmix Cannot connect to server socket err = No such file or directory Cannot connect to server request channel jack server is not running or cannot be started JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock Humanoid, В общем дело не в камере. Побробовал с другой вебкой запустить тесты в терминале. Те же самые ошибки. И код в мейн Ваш запускаю вс етоже самое. Значит проблема на уровне взаимодействия драйвера и железа. Видимо v4l2 не нравится Распберри
0
|
2 / 2 / 0
Регистрация: 24.02.2017
Сообщений: 130
|
|
19.08.2022, 11:18 [ТС] | 8 |
Humanoid, есть небольшой апдейт. Доп инфа (может она наведет вас на мысли):
1. На выходе ничего. Картинки нет Код
pi@pi:~$ sudo LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libv4l/v4l2convert.so fswebcam -S 2 -d v4l1:/dev/video0 /home/pi/image.jpeg --- Opening v4l1:/dev/video0... /dev/video0 opened. /dev/video0: Not a V4L device? VIDIOCGCAP: Inappropriate ioctl for device /dev/video0 closed. Код
pi@pi:~$ sudo LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libv4l/v4l1compat.so fswebcam -S 2 -d v4l1:/dev/video0 /home/pi/image.jpeg --- Opening v4l1:/dev/video0... /dev/video0 opened. Requested height too small. Adjusting 288 -> 640. No input was specified, using the first. Setting input to 0. Using palette YUYV. Error while requesting buffer 0 to capture an image. VIDIOCMCAPTURE: Invalid argument Unable to use mmap. Using read instead. --- Capturing frame... Skipping 2 frames... Didn't read a frame. read: Resource temporarily unavailable Capturing 1 frames... Captured frame in 0.00 seconds. /dev/video0 closed. --- Processing captured image... Writing JPEG image to '/home/pi/image.jpeg'. Код
pi@pi:~$ sudo LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libv4l/v4l2convert.so fswebcam --read -S 2 /home/pi/image.jpeg --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. Adjusting resolution from 384x288 to 352x640. --- Capturing frame... Skipping 2 frames... Unable to read a frame. read: Resource temporarily unavailable Capturing 1 frames... Captured frame in 0.00 seconds. --- Processing captured image... Writing JPEG image to '/home/pi/image.jpeg'. Код
pi@pi:~$ sudo LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libv4l/v4l1compat.so fswebcam --read -S 2 /home/pi/image.jpeg --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. Adjusting resolution from 384x288 to 352x640. --- Capturing frame... Skipping 2 frames... Unable to read a frame. read: Resource temporarily unavailable Capturing 1 frames... Captured frame in 0.00 seconds. --- Processing captured image... Writing JPEG image to '/home/pi/image.jpeg'. Код
pi@pi:~$ sudo LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libv4l/v4l2convert.so fswebcam -S 2 /home/pi/image.jpeg --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. Adjusting resolution from 384x288 to 352x640. --- Capturing frame... Skipping 2 frames... Capturing 1 frames... Captured 3 frames in 0.14 seconds. (21 fps) --- Processing captured image... Writing JPEG image to '/home/pi/image.jpeg'. Код
pi@pi:~$ sudo LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libv4l/v4l1compat.so fswebcam -S 2 /home/pi/image.jpeg --- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. Adjusting resolution from 384x288 to 352x640. --- Capturing frame... Skipping 2 frames... Capturing 1 frames... Captured 3 frames in 0.13 seconds. (22 fps) --- Processing captured image... Writing JPEG image to '/home/pi/image.jpeg'. Добавлено через 8 минут Есть еще такая инфа. Не знаю о чем она говорит Код
pi@pi:~$ sudo ldconfig -v | grep v4l /sbin/ldconfig.real: Can't stat /usr/local/lib/aarch64-linux-gnu: No such file or directory /sbin/ldconfig.real: Path `/usr/lib/aarch64-linux-gnu' given more than once (from /etc/ld.so.conf.d/aarch64-linux-gnu.conf:4 and /etc/ld.so.conf.d/aarch64-linux-gnu.conf:3) /sbin/ldconfig.real: Path `/lib/aarch64-linux-gnu' given more than once (from <builtin>:0 and /etc/ld.so.conf.d/aarch64-linux-gnu.conf:3) /sbin/ldconfig.real: Path `/usr/lib/aarch64-linux-gnu' given more than once (from <builtin>:0 and /etc/ld.so.conf.d/aarch64-linux-gnu.conf:3) /sbin/ldconfig.real: Path `/usr/lib' given more than once (from <builtin>:0 and <builtin>:0) libgviewv4l2core-2.0.so.2 -> libgviewv4l2core-2.0.so.2.0.0 libv4l2rds.so.0 -> libv4l2rds.so.0.0.0 libv4l1.so.0 -> libv4l1.so.0.0.0 libv4l2.so.0 -> libv4l2.so.0.0.0 libv4lconvert.so.0 -> libv4lconvert.so.0.0.0 /sbin/ldconfig.real: /lib/aarch64-linux-gnu/ld-linux-aarch64.so.1 is the dynamic linker, ignoring
0
|
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
||||||
19.08.2022, 13:48 | 9 | |||||
А если v4l2:/dev/video0
На сколько я понял, нормально работает, когда автоматически выбирает режим... и использует V4L2. Хотя и мы использовали V4L2. Кстати, есть несколько способов получения кадров. Мы использовали User pointer... возможно, будет работать через Memory mapping. А какое ядро у вас используется? Можно посмотреть командой
0
|
2 / 2 / 0
Регистрация: 24.02.2017
Сообщений: 130
|
|
19.08.2022, 14:16 [ТС] | 10 |
Humanoid,
Код
pi@pi:~$ uname -a Linux pi 5.15.0-1013-raspi #15-Ubuntu SMP PREEMPT Mon Aug 8 06:33:06 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
0
|
2 / 2 / 0
Регистрация: 24.02.2017
Сообщений: 130
|
||||||
22.08.2022, 12:17 [ТС] | 11 | |||||
Humanoid,
В чем разница между Вашим кодом и кодом ниже? Почему с кодом приведенным ниже я могу получить фрейм с расширением 352х640, а с Вашим кодом нет с тем же расширением?
Humanoid, Судя по этому посту: https://stackoverflow.com/ques... using-v4l2 Я не могу запросить разрешение выше, чем выдает список поддерживающих форматов: Код
pi@pi:~$ v4l2-ctl -d /dev/video0 --list-formats-ext ioctl: VIDIOC_ENUM_FMT Type: Video Capture [0]: 'YUYV' (YUYV 4:2:2) Size: Discrete 352x640 Interval: Discrete 0.033s (30.000 fps) Size: Discrete 704x1280 Interval: Discrete 0.125s (8.000 fps) А АПИ камеры видимо запрашивает разрешение и формат, отличающийся от того, что дает девайс: https://github.com/IntelRealSe... nverter.cc. Я хочу поправить АПИ и привести его в соответствие с тем форматом, который может быть запрошен. Но видимо изменением только разрешения здесь не обойтись.
0
|
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
||||||
22.08.2022, 21:28 | 12 | |||||
Вот как раз, о чём писал выше: код, который я предлагал использует User pointer, а в вашем коде Memory mapping. Видимо, по какой-то причине, User pointer не работает.
По идее должно работать 704x1280:
0
|
22.08.2022, 21:28 | |
22.08.2022, 21:28 | |
Помогаю со студенческими работами здесь
12
Пример использования mmap и реализация ioctl Cannot get serial info: Inappropriate ioctl for device - Arduino Linux: Создать.удалить виртуальную сетевую карточку по IOCTL запросу к драйверу Apache+Ubuntu не работает/работает не корректно Установить/войти в Ubuntu. Есть windows и ubuntu. В ubuntu зайти не получается Не работает Ubuntu Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |