Проблемы с изображением веб-камеры Logitech Orbicam

У меня проблема с этой веб-камерой (ID - 046d:0892, драйвер gspca) на Acer Travelmate 8200 с Ubuntu 14.04.

При использовании cheese или skype с предварительно загруженной библиотекой v4l1compat.so у него плохое изображение - у него много горизонтальных линий, и мое лицо утраивается на экране. Но когда я использую guvcview для просмотра потока с камеры и выбираю один конкретный (YVYU) формат пикселей, он выглядит идеально. Я пытался установить или принудительно установить этот формат пикселей для таких приложений, как сыр или скайп, но безуспешно. Я также пытался изменить его, используя свойства gstreamer на вкладке "Видео", используя множество вариантов пользовательской строки конвейера (устройство v4l2src =/dev/video0! Video/x-raw,format=YVYU и т. Д.), Но ни один из них не сработал - он говорит мне, что неверный синтаксис или предпросмотр изображения по-прежнему мусор.

Кто-нибудь есть идеи, как решить эту проблему, пожалуйста?

1 ответ

Это ошибка в драйвере ядра gspca/vc032x, которая устанавливает неправильный байтовый сплайн (640 вместо 1280). Проблема возникла с последней версией v4l-utils (>=0.9.1), потому что новые библиотеки учитывают bytesperline. Я открыл ошибку на bugzilla.kernel.org. Вы можете исправить это самостоятельно, перекомпилировав ядро ​​после применения следующего патча:

--- драйверы / медиа /usb/gspca/vc032x.c.orig   2014-08-04 00:25:02.000000000 +0200
+++ драйверы / медиа / usb / gspca / vc032x.c 2015-01-11 23: 52: 51.249386410 +0100
@@ -68,12 +68,12 @@

 static const struct v4l2_pix_format vc0321_mode [] = {
    {320, 240, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
-.bytesperline = 320,
+.bytesperline = 320 * 2,.sizeimage = 320 * 240 * 2,.colorspace = V4L2_COLORSPACE_SRGB,.priv = 1},
    {640, 480, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
-.bytesperline = 640,
+.bytesperline = 640 * 2,.sizeimage = 640 * 480 * 2,.colorspace = V4L2_COLORSPACE_SRGB,.priv = 0},
@@ -97,12 +97,12 @@
 };
 static const struct v4l2_pix_format bi_mode [] = {
    {320, 240, V4L2_PIX_FMT_YUYV, V4L2_FIELD_NONE,
-.bytesperline = 320,
+.bytesperline = 320 * 2,.sizeimage = 320 * 240 * 2,.colorspace = V4L2_COLORSPACE_SRGB,.priv = 2},
    {640, 480, V4L2_PIX_FMT_YUYV, V4L2_FIELD_NONE,
-.bytesperline = 640,
+.bytesperline = 640 * 2,.sizeimage = 640 * 480 * 2,.colorspace = V4L2_COLORSPACE_SRGB,.priv = 1},
Другие вопросы по тегам