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

DirectX Discussion :

Windows mobile : capture caméra et openGL ES


Sujet :

DirectX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Windows mobile : capture caméra et openGL ES
    je suis en train de me baser su un sample du windows mobile 6 sdk pour pouvoir afficher l'image perçue par la caméra d'un smartphone. l'exemple utilisé permet de capturer une image ou une vidéo. je voudrais pouvoir obtenir le buffer de l'image courante pour l'afficher en openGL (ES).

    le code pour capturer une photo est le suivant :

    //---------------------------------------------------------------------------------------------------------------------------------------
    HRESULT Video::captureStillImageInternal()
    {
    HRESULT hr = S_OK;
    CComPtr<IFileSinkFilter> pFileSink;
    CComPtr<IUnknown> pUnkCaptureFilter;
    CComPtr<IPin> pStillPin;
    CComPtr<IAMVideoControl> pVideoControl;
    m_pImageSinkFilter.QueryInterface( &pFileSink );
    pFileSink->SetFileName( L"\\test.jpg", NULL );
    m_pVideoCaptureFilter.QueryInterface( &pUnkCaptureFilter );
    m_pCaptureGraphBuilder->FindPin( pUnkCaptureFilter, PINDIR_OUTPUT, &PIN_CATEGORY_STILL, &MEDIATYPE_Video, FALSE, 0, &pStillPin );
    m_pVideoCaptureFilter.QueryInterface( &pVideoControl );
    pVideoControl->SetMode( pStillPin, VideoControlFlag_Trigger );
    return hr;
    }


    comment faire pour juste récupérer le buffer image ?

  2. #2
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    Je pense que le principe est le même que pour Directshow avec XP, Vista, etc..

    Tu dois développer un filtre de rendu video personnalisé. Honnêtement sur ce type d'OS, je ne connais ni les possibilités ni les limitations.

    L'idée c'est que dans ton filtre de rendu tu recevras directement les frames video et après libre à toi d'en faire ce que tu veux (affichage OpenGL). Sauf que tu vas avoir des limitations (par exemple la video tourne à X fps et le rendu OpenGL à Y fps : conclusion, il faut synchroniser tout ça). Pour comprendre le principe et les difficultés tu as tout ce qui concerne le vmr9 dans le SDK directshow.

    Sous openGl, il y a une méthode qui tourne sur le net: l'idée c'est un filtre du type sampleGrabber qui récupère les frames video en dehors du graphe (le graphe tourne mais n'est pas affiché) et ensuite les frames sont affichées dans un environnement OpenGl. (google: tutorial + opengl + avi).

Discussions similaires

  1. pocket access avec windows mobile 2005
    Par gascou dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 03/08/2006, 17h09
  2. Différence windows et windows mobile
    Par FamiDoo dans le forum Windows
    Réponses: 1
    Dernier message: 07/06/2006, 10h00
  3. [WINDOWS MOBILE]Pocket PC 2002
    Par Zep3k!GnO dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 22/02/2006, 14h13
  4. Réponses: 7
    Dernier message: 15/06/2005, 15h24

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