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

SDL Discussion :

[SDL 1.3] Comment remplir une texture YUV ?


Sujet :

SDL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 9
    Points : 8
    Points
    8
    Par défaut [SDL 1.3] Comment remplir une texture YUV ?
    Bonjour a tous,

    Je suis en train de créer un lecteur multimédia avec SDL 1.3, j'arrive a faire un Update d'une texture avec des données RGB32, mai sje ne comprend pas comment faire un Update d'une texture YUV avec mes buffers.

    Avez vous quelques informations qui pourraient m'être utiles ?

    Merci

    Cyrille

  2. #2
    Membre averti
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Octobre 2008
    Messages
    187
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Octobre 2008
    Messages : 187
    Points : 448
    Points
    448
    Par défaut
    C'est difficile de t'aider si tu donne si peu d'informations... Quelles fonctions appelle-tu pour faire l'update de ta texture ? Quand tu dis que ça ne marche pas, est-ce qu'il ne se passe rien, ou est-ce que ton programme crashe, ou encore a tu des erreurs de compilation ?

    N'hésite pas à poster le code qui te pose problèmes.

  3. #3
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Hello, je te propose deux solutions :

    La première c'est d'utiliser les SDL_Overlay, c'est pratique et facile, par contre, deux problèmes : ce n'est pas vraiment "SDL 1.3 Core", c'est plus une fonction qui reste là pour que les programmes en SDL 1.2 puisse continuer à fonctionner (vu qu'elle est située dans un fichier qui se nomme SDLcompat ... et qu'elle à besoin d'être utilisée avec des structures et fonctions que l'on est plus vraiment censé utiliser), et tu es obligé de dessiner dans la surface créer par SDL_SetVideoMode et pas dans n'importe quelle surface ce qui peut être assez génant.

    La seconde, écrire toi même la conversion à la main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    float Y, U, V;
    uchar* rgbIterator = rgbBuffer;
     
    for(int y = 0; y < size.y ; ++y)
        for(int x = 0; x < size.x ; ++x)
        {
            Y = *(yuvBuffer[0].data + x     + (yuvBuffer[0].stride *  (size.y - 1 - y)     ));
            U = *(yuvBuffer[2].data + x / 2 + (yuvBuffer[2].stride * ((size.y - 1 - y) / 2)));
            V = *(yuvBuffer[1].data + x / 2 + (yuvBuffer[1].stride * ((size.y - 1 - y) / 2)));
     
            *rgbIterator++ = (uchar) clamp((int) (1.164f * Y + 2.03211f * (U - 128))                        , 0, 255);
            *rgbIterator++ = (uchar) clamp((int) (1.164f * Y - 0.39465f * (U - 128)	- 0.58060f * (V - 128))	, 0, 255);
            *rgbIterator++ = (uchar) clamp((int) (1.164f * Y                        + 1.13983f * (V - 128))	, 0, 255);
        }
    Une fois les optimisations du compilateur activées cette fonction et rapide est permet un affichage temps réel sans utiliser de cache (mais je conseil fortement d'en avoir un !).

Discussions similaires

  1. [VBA-E] Comment remplir une ComboBox ?
    Par yaya54 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2006, 09h03
  2. comment remplir une table
    Par donny dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/07/2005, 11h22
  3. Comment remplire une CList ?
    Par stof dans le forum MFC
    Réponses: 23
    Dernier message: 02/02/2005, 17h33
  4. [SWT] Comment remplir une Table ?
    Par simon77 dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 23/08/2004, 10h31
  5. comment modifier une texture?
    Par tibyann dans le forum DirectX
    Réponses: 6
    Dernier message: 16/06/2004, 15h27

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