problème carte acquisition video MJPEG DC10

problème carte acquisition video MJPEG DC10 - Linux et OS Alternatifs

Marsh Posté le 16-03-2006 à 12:04:51    

Bonjour,
 
Je cherche Ã�  faire fonctionner une carte d'acquisition video nommÃ�©e miroVideoDC10
Elle est bas�©e sur le chip Zoran.
Il existe des drivers pour ce type de carte ici :
http://mjpeg.sourceforge.net/drive [...] nloads.php
 
Le site inclu aussi une liste de cartes compatibles avec le driver en d�©taillant les chips sur les diff�©rentes cartes.
Voici les 2 cartes qui correspondraient bien :

Citation :

Pinnacle/Miro DC10(old):
* Zoran zr36057 PCI controller
* Zoran zr36050 MJPEG codec
* Zoran zr36016 Video Front End or Fuji md0211 Video Front End (clone?)
* Micronas vpx3220a TV decoder
* mse3000 TV encoder or Analog Devices adv7176 TV encoder *
Drivers to use: videodev, i2c-core, i2c-algo-bit,
                videocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zoran
Inputs: Composite, S-video and Internal
Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
Card number: 0
 
Pinnacle/Miro DC30:
* Zoran zr36057 PCI controller
* Zoran zr36050 MJPEG codec
* Zoran zr36016 Video Front End
* Micronas vpx3225d/vpx3220a/vpx3216b TV decoder
* Analog Devices adv7176 TV encoder
Drivers to use: videodev, i2c-core, i2c-algo-bit,
                videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zoran
Inputs: Composite, S-video and Internal
Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps)
Card number: 3


 
Je suis sous une debian sarge stable avec noyau 2.6.15.1.
Dans la config du noyau, j'ai choisi:

Code :
  1. Video for linux
  2. Zoran ZR36057/36067
  3. Pinnacle/Miro DC30+ support


 
Dans l'info sur le module DC30, il est pr�©cis�© qu'il supporte aussi les vieilles cartes DC10 (comme j'ai) bas�©es sur le zr36050 codec et zr36016 VFE
 
Ce que j'ai fait :
J'ai compilÃ�© le noyau  avec le support de ces 3 modules.
J'ai fait un

Code :
  1. modprobe zr36067 card=3


Et c'est tout pour l'install.
 
Ensuite pour l'utiliser :
Sous mythtv, il a l'air de reconnaitre une carte sur /dev/video0, il m'indique bien les 3 types d'entr�©es
 
Lorsque je cherche Ã�  visualiser:

Sous mythtv, il m'affiche un �©cran noir et le backend m'envoie un tas de messages:

Code :
  1. VIDIOCMCAPTURE0: Argument invalide
  2. VIDIOCMCAPTURE1: Argument invalide
  3. VIDIOCMCAPTURE0: Argument invalide
  4. ...


 
Sous xdtv, c'est Ã�  peu prÃ�¨s pareil sauf que le message est :

Code :
  1. ioctrl VIDIOC_S_FMT: Argument invalide


 
Sous xawtv:
Il m'indique un seul message et l'�©cran noir :

Code :
  1. no way to get: 384x288 32 bit TrueColor (LE: bgr-)


 
Voila, je gal�¨re bien depuis 2 jours.
 
Si quelqu'un a des idd�©es ou si vous avez ou connaissez quelqu'un qui a ce type de carte.
J'aimerai avoir des infos sur les modules pour v�©rifier que ce soit les bons de charg�©s
 
J'ai l'impression que ca vient plus d'un probl�¨me cot�© applicatif que cot�© driver.
Au chargement du module, il ne met pas d'erreur (dans dmesg)

Code :
  1. ACPI: PCI interrupt for device 0000:01:01.0 disabled
  2. Zoran MJPEG board driver version 0.9.5
  3. ACPI: PCI Interrupt 0000:01:01.0[A] -> GSI 22 (level, low) -> IRQ 20
  4. MJPEG[0]: Zoran ZR36057 (rev 1) irq: 20, memory: 0xc7dde000.
  5. i2c_adapter i2c-0: sendbytes: error - bailout.
  6. ZORAN: 1 card(s) found
  7. DC10(old)[0]: zr36057_init() - initializing card[0], zr=f8bb52c0


Si j'utilise la carte, il me met :

Code :
  1. DC10(old)[0]: zoran_open(xdtv, pid=[4717]), users(-)=0
  2. DC10(old)[0]: UNKNOWN ioctl cmd: 0xc0cc5615
  3. DC10(old)[0]: v4l_set_format() - video buffer size (128 kB) is too small
  4. DC10(old)[0]: UNKNOWN ioctl cmd: 0x402c5639
  5. DC10(old)[0]: VIDIOC_REQBUFS - buffers allready allocated
  6. DC10(old)[0]: mmap(V4L) - buffer 0 already mapped
  7. DC10(old)[0]: mmap(V4L) - buffer 1 already mapped
  8. DC10(old)[0]: v4l2_buffer_status() - wrong number or buffers not allocated
  9. DC10(old)[0]: v4l_set_format() - video buffer size (128 kB) is too small
  10. DC10(old)[0]: v4l_set_format() - video buffer size (128 kB) is too small
  11. DC10(old)[0]: v4l_set_format() - video buffer size (128 kB) is too small
  12. DC10(old)[0]: v4l_set_format() - video buffer size (128 kB) is too small
  13. DC10(old)[0]: v4l_set_format() - video buffer size (128 kB) is too small
  14. DC10(old)[0]: v4l_set_format() - video buffer size (128 kB) is too small
  15. DC10(old)[0]: v4l_set_format() - video buffer size (128 kB) is too small
  16. DC10(old)[0]: zoran_close(xdtv, pid=[4717]), users(+)=1


 
Mickael

Reply

Marsh Posté le 16-03-2006 à 12:04:51   

Reply

Marsh Posté le 16-03-2006 à 20:14:17    

essayer de regarder les options de type gbuffers ou autre qui peuvent être passées au module (utilise modinfo).


---------------
-~- Libérez Datoune ! -~- Camarade, toi aussi rejoins le FLD pour que la flamme de la Révolution ne s'éteigne pas ! -~- A VENDRE
Reply

Marsh Posté le 17-03-2006 à 11:12:51    

Je n'ai plus d'erreur I2C.
 
Par contre suite aux erreurs

Citation :

DC10(old)[0]: v4l_set_format() - video buffer size (128 kB) is too small


 
J'ai cherché dans les paramètres de chargement du module zr36067
avec la commande :

Code :
  1. modinfo zr36067


Qui donne :

Citation :


filename:       /lib/modules/2.6.15.1-mkdebian2.8/kernel/drivers/media/video/zr36067.ko
description:    Zoran-36057/36067 JPEG codec driver
author:         Serguei Miridonov
license:        GPL
vermagic:       2.6.15.1-mkdebian2.8 SMP PENTIUM4 gcc-3.3
depends:        videocodec,videodev,i2c-algo-bit
alias:          pci:v000011DEd00006057sv*sd*bc*sc*i*
parm:           debug:Debug level (0-4) (int)
parm:           pass_through:Pass TV signal through to TV-out when idling (int)
parm:           jpg_bufsize:Maximum size per JPG buffer (in kB) (int)
parm:           jpg_nbufs:Maximum number of JPG buffers to use (int)
parm:           v4l_bufsize:Maximum size per V4L buffer (in kB) (int)
parm:           v4l_nbufs:Maximum number of V4L buffers to use (int)
parm:           video_nr:video device number (int)
parm:           default_norm:Default norm (0=PAL, 1=NTSC, 2=SECAM) (int)
parm:           default_input:Default input (0=Composite, 1=S-Video, 2=Internal) (int)
parm:           vidmem:ulong
parm:           decoder:i2c TV decoder (array of int)
parm:           encoder:i2c TV encoder (array of int)
parm:           card:The type of card (array of int)
parm:           lock_norm:Users can't change norm (int)
parm:           lml33dpath:Use digital path capture mode (on LML33 cards) (bool)


 
J'ai mis l'option

Citation :

v4l_bufsize=4096


 
Et je n'ai plus cette erreur. Mais ca ne marche toujours pas.
J'ai dans dmesg, cette erreur lorsque je lance xawtv :
et toujours écran noir, et ca freeze un peu.

Citation :


DC10(old)[0]: VIDIOC_REQBUFS - buffers allready allocated
DC10(old)[0]: mmap(V4L) - buffer 0 already mapped
DC10(old)[0]: mmap(V4L) - buffer 1 already mapped
DC10(old)[0]: VIDIOC_REQBUFS - buffers allready allocated
DC10(old)[0]: mmap(V4L) - buffer 0 already mapped
DC10(old)[0]: zoran_poll() - no buffers queued
DC10(old)[0]: zoran_poll() - no buffers queued
DC10(old)[0]: zoran_poll() - no buffers queued
DC10(old)[0]: zoran_poll() - no buffers queued
DC10(old)[0]: zoran_poll() - no buffers queued
DC10(old)[0]: zoran_poll() - no buffers queued
DC10(old)[0]: zoran_poll() - no buffers queued
DC10(old)[0]: zoran_poll() - no buffers queued
DC10(old)[0]: zoran_poll() - no buffers queued
DC10(old)[0]: zoran_poll() - no buffers queued
DC10(old)[0]: zoran_poll() - no buffers queued


 
Et la j'y comprends pas grand chose
Ya des infos sur les buffers ici:
http://mjpeg.sourceforge.net/drive [...] tation.php
Mais je comprends pas.


Message édité par mk3000 le 17-03-2006 à 11:13:15
Reply

Marsh Posté le 17-03-2006 à 11:37:55    

C'est là que ça se passe :
 

Code :
  1. static unsigned int
  2. zoran_poll (struct file *file,
  3.     poll_table  *wait)
  4. {
  5. struct zoran_fh *fh = file->private_data;
  6. struct zoran *zr = fh->zr;
  7. wait_queue_head_t *queue = NULL;
  8. int res = 0, frame;
  9. /* we should check whether buffers are ready to be synced on
  10.  * (w/o waits - O_NONBLOCK) here
  11.  * if ready for read (sync), return POLLIN|POLLRDNORM,
  12.  * if ready for write (sync), return POLLOUT|POLLWRNORM,
  13.  * if error, return POLLERR,
  14.  * if no buffers queued or so, return POLLNVAL
  15.  */
  16. down(&zr->resource_lock);
  17. switch (fh->map_mode) {
  18. case ZORAN_MAP_MODE_RAW:
  19.  if (fh->v4l_buffers.active == ZORAN_FREE ||
  20.      zr->v4l_pend_head == zr->v4l_pend_tail) {
  21.   dprintk(1,
  22.    "%s: zoran_poll() - no buffers queued\n",
  23.    ZR_DEVNAME(zr));
  24.   res = POLLNVAL;
  25.   goto poll_unlock_and_return;
  26.  }
  27.  queue = &zr->v4l_capq;
  28.  frame = zr->v4l_pend[zr->v4l_pend_tail & V4L_MASK_FRAME];
  29.  poll_wait(file, queue, wait);
  30.  if (fh->v4l_buffers.buffer[frame].state == BUZ_STATE_DONE)
  31.   res = POLLIN | POLLRDNORM;
  32.  break;
  33. case ZORAN_MAP_MODE_JPG_REC:
  34. case ZORAN_MAP_MODE_JPG_PLAY:
  35.  if (fh->jpg_buffers.active == ZORAN_FREE ||
  36.      zr->jpg_que_head == zr->jpg_que_tail) {
  37.   dprintk(1,
  38.    "%s: zoran_poll() - no buffers queued\n",
  39.    ZR_DEVNAME(zr));
  40.   res = POLLNVAL;
  41.   goto poll_unlock_and_return;
  42.  }
  43.  queue = &zr->jpg_capq;
  44.  frame = zr->jpg_pend[zr->jpg_que_tail & BUZ_MASK_FRAME];
  45.  poll_wait(file, queue, wait);
  46.  if (fh->jpg_buffers.buffer[frame].state == BUZ_STATE_DONE) {
  47.   if (fh->map_mode == ZORAN_MAP_MODE_JPG_REC)
  48.    res = POLLIN | POLLRDNORM;
  49.   else
  50.    res = POLLOUT | POLLWRNORM;
  51.  }
  52.  break;
  53. default:
  54.  dprintk(1,
  55.   "%s: zoran_poll() - internal error, unknown map_mode=%d\n",
  56.   ZR_DEVNAME(zr), fh->map_mode);
  57.  res = POLLNVAL;
  58.  goto poll_unlock_and_return;
  59. }


 
essaye de modifier jpg_bufsize.


Message édité par mirtouf le 17-03-2006 à 11:38:39

---------------
-~- Libérez Datoune ! -~- Camarade, toi aussi rejoins le FLD pour que la flamme de la Révolution ne s'éteigne pas ! -~- A VENDRE
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed