Problemas com a imagem da webcam da Logitech Orbicam

0

Eu tenho um problema com esta webcam (ID-046d: 0892, driver gspca) no Acer Travelmate 8200 com o Ubuntu 14.04.

Ao usar queijo ou skype com a biblioteca v4l1compat.so pré-carregada, ela tem imagem ruim - tem muitas linhas horizontais e meu rosto é triplicado na tela. Mas quando eu uso o guvcview para ver o fluxo da câmera e eu escolho um formato de pixel específico (YVYU), ele parece perfeito. Tentei definir ou forçar esse formato de pixel de alguma forma para aplicativos como queijo ou skype, mas sem sucesso. Eu também tentei alterá-lo usando gstreamer-properties na guia Video usando muitas variações de string de pipe personalizado (v4l2src device = / dev / video0! Video / x-raw, format = YVYU e assim por diante), mas nenhuma delas funcionou - diz-me que a sintaxe inválida ou a imagem pré-visualizada ainda é lixo.

Alguém tem alguma ideia de como resolver isso, por favor?

    
por kolage 15.07.2014 / 15:03

1 resposta

0

É um bug no gspca / vc032x do driver do kernel, que configura bytesperline errado (640 em vez de 1280). O problema levantado com a versão recente do v4l-utils (> = 0.9.1), porque as novas bibliotecas levam na conta bytesperline. Eu abri um bug no bugzilla.kernel.org. Você pode consertar você mesmo recompilando o kernel depois de aplicar o seguinte patch:

--- drivers/media/usb/gspca/vc032x.c.orig   2014-08-04 00:25:02.000000000 +0200
+++ drivers/media/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},
    
por Luca 12.01.2015 / 00:22