IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres éditeurs Discussion :

Utilisation de la librairie ng sous FreeBSD


Sujet :

Autres éditeurs

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 272
    Points : 166
    Points
    166
    Par défaut Utilisation de la librairie ng sous FreeBSD
    Bonjour,

    J'utilise la librairie ng pour prendre une image d'une camera raccorde a une carte Pinnacle PCTV et en faire un jpeg. Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    const struct ng_vid_driver  *drv;
    void                        *h_drv;
     
    void main()
    {
       drv = ng_vid_open( "/dev/bktr0" ,NULL , NULL, 0, &h_drv );
       if ( drv == NULL )
       {
          perror ( "Can't open device" );
          exit(1);
       }
    }
    Bien que la compilation passe sans probleme, au lancement j'ai l'erreur:

    Can't open device: Unknown error: 0

    Pourtant xawtv et webcam qui utilisent cette meme librairie fonctionnent correctement, de plus ayant regarde dans le code source de webcam.c, je fais la meme chose dans mon code.

    /dev/bktr0 existe et est utilise par xawtv et webcam.

    Y'a-t-il quelque chose de special a ajouter sous FreeBSD ?

    Merci par avance.

  2. #2
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 338
    Points : 130 370
    Points
    130 370
    Billets dans le blog
    1
    Par défaut
    Je ne connais pas les outils sus-mentionnés, mais cela ressemble à un problème de droits. Peut-être que xawtv et webcam ont le bit Set UID activé, ce qui expliquerait pourquoi eux fonctionnent et pas ton programme ?
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 272
    Points : 166
    Points
    166
    Par défaut Oui mais non
    Salut,

    J'ai essaye le bit IUD, mais sans resultat, d'ailleurs j'execute ce prog en root et je n'ai pas d'erreur genre "Acces denied"

    Quand on lance le make install, sur xawtv, il fait un patch FreeBSD, comment retrouver la chaine gcc avec les parametres pour la compilation de webcam.c par exemple ?

    Merci par avance.

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 272
    Points : 166
    Points
    166
    Par défaut En ajoutant un ng_init();
    Re,

    En fouillant dans webcam.c founit avec xawtv, j'ai ajouter un ng_init(); ( en autre )

    Voici mon nouveau code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <errno.h>
    #include <fcntl.h>
    #include <limits.h>
    #include <pthread.h>
    #include <math.h>
    #include <sys/time.h>
    #include <sys/mman.h>
    #include <sys/ioctl.h>
    #include <sys/stat.h>
     
    #include "grab-ng.h"
     
    #include "jpeglib.h"
    #include "list.h"
     
    main()
    {
       const struct ng_vid_driver  *drv;
       void                        *h_drv;
     
       struct stat st;
     
       int i, fh;
     
       ng_init();
       ng_debug = 1;
     
       for ( i = 0; ng_dev.video_scan[i] != NULL; i++ )
       {
     
          if (-1 == lstat(ng_dev.video_scan[i],&st))
          {
             if (ENOENT == errno)
                continue;
             fprintf(stderr,"%s: %s\n",ng_dev.video_scan[i],strerror(errno));
             continue;
          }
          fh = open(ng_dev.video_scan[i],O_RDWR);
     
          if (-1 == fh)
          {
             if (ENODEV == errno)
                continue;
             fprintf(stderr,"%s: %s\n",ng_dev.video_scan[i],strerror(errno));
             continue;
          }
          close(fh);
     
          drv = ng_vid_open(ng_dev.video_scan[i], NULL, NULL, 0, &h_drv);
          if (NULL == drv)
          {
             fprintf(stderr,"%s: initialization failed\n",ng_dev.video_scan[i]);
             perror ( "Impossible d'ouvrir le dev" );
             continue;
          }
     
          printf ( "trouve: [%s] suite\n", ng_dev.video_scan[i] );
     
       }
    }
    A la compilation, avec:


    gcc -O2 -I/usr/include -I/usr/local/include -I/usr/src/lib/libio -I/usr/ports/multimedia/xawtv/work/xawtv-3.90/libng -L/usr/local/lib -L/usr/ports/multimedia/xawtv/work/xawtv-3.90/libng -L/usr/X11R6/lib/xawtv -o test test.c -ljpeg -lng


    Pas d'erreur, mais a l'execution j'ai:


    dlopen: /usr/X11R6/lib/xawtv/bilinear.so: Undefined symbol "ng_filter_register"
    dlopen: /usr/X11R6/lib/xawtv/conv-mjpeg.so: Undefined symbol "ng_jpeg_quality"
    dlopen: /usr/X11R6/lib/xawtv/cubic.so: Undefined symbol "ng_filter_register"
    dlopen: /usr/X11R6/lib/xawtv/drv0-bsd.so: Undefined symbol "ng_ratio_fixup"
    dlopen: /usr/X11R6/lib/xawtv/flt-disor.so: Undefined symbol "sqrt"
    dlopen: /usr/X11R6/lib/xawtv/flt-gamma.so: Undefined symbol "ng_filter_register"
    dlopen: /usr/X11R6/lib/xawtv/flt-invert.so: Undefined symbol "ng_filter_register"
    dlopen: /usr/X11R6/lib/xawtv/flt-smooth.so: Undefined symbol "ng_filter_register"
    dlopen: /usr/X11R6/lib/xawtv/linear-blend.so: Undefined symbol "ng_filter_register"
    dlopen: /usr/X11R6/lib/xawtv/linedoubler.so: Undefined symbol "ng_filter_register"
    dlopen: /usr/X11R6/lib/xawtv/read-avi.so: Undefined symbol "ng_vfmt_to_desc"
    dlopen: /usr/X11R6/lib/xawtv/snd-oss.so: Undefined symbol "ng_dev"
    dlopen: /usr/X11R6/lib/xawtv/write-avi.so: Undefined symbol "ng_writer_register"
    WARNING: no plugins found [/usr/X11R6/lib/xawtv]
    /dev/bktr0: initialization failed
    Impossible d'ouvrir de dev: Unknonw error: 0


    Je pense qu'il me manque un lien vers une ou plusieurs lib dans la chaine gcc, mais je ne vois pas lesquelles.

    Une idée ?

    Merci par avance !

Discussions similaires

  1. Utilisation d'une librairie externe sous VS2012
    Par morgan_2956 dans le forum Débuter
    Réponses: 6
    Dernier message: 28/10/2014, 11h58
  2. Utilisation de la librairie Wininet.dll sous windows 7
    Par Cravis dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 17/11/2011, 11h58
  3. Réponses: 2
    Dernier message: 13/09/2011, 12h38
  4. Problème utilisation librairie libxml2 sous BC6
    Par ben_reveur dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/03/2010, 18h09
  5. Utilisation sous FreeBSD
    Par Evanok dans le forum OpenCV
    Réponses: 0
    Dernier message: 02/04/2009, 18h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo