Доброго времени суток!
Имеется 548-й BlackFin c uClinux'ом на борту. К нему подключен кодек adv212 + в линуксе стоит соответствующий драйвер. Так вот не могу получить поток кадров с кодека, а единичный кадр - без проблем. Использую стандартный пример capture.c, включенный в Qt'шный проект. Нашел место где возникает ошибка:
Код
CLEAR (buf);
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory = V4L2_MEMORY_MMAP;
[u]if (-1 == xioctl (fd, VIDIOC_DQBUF, &buf)) {[/u]
switch (errno) {
case EAGAIN:
return 0;
case EIO:
/* Could ignore EIO, see spec. */
/* fall through */
default:
errno_exit ("VIDIOC_DQBUF");}}
assert (buf.index < n_buffers);
//printf("len %d\n",buffers[buf.index].length);
process_image (buffers[buf.index].start,buf.length);
[u]if (-1 == xioctl (fd, VIDIOC_QBUF, &buf))[/u]
errno_exit ("VIDIOC_QBUF");
Получение первого кадра проходит успешно, почти))
Код
xioctl (fd, VIDIOC_DQBUF, &buf)
возвращает код ошибки 107(все нормально), затем
Код
xioctl (fd, VIDIOC_QBUF, &buf)
возвращает код 2 (No such file or directory), и последующие вызовы возвращают 11(Try again) и соответственно кадры не получаются. В чем может быть причина? Сам пока не пойму.....
«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»