• [^] # Re: Screenshot ?

    Posté par . En réponse au journal Si je peux le lire, je peux en faire ce que je veux. + Question gpg. Évalué à 4.

    Bonjour,

    Je n'ai pas de réponse parfaite à te fournir car je n'ai pas testé le truc, mais voici quelques pistes techniques, d'après mes experiences:

    - j'ai vu sur le site qu'il faut installer un plug-in, donc déjà avec un truc qui tourne sur la machine locale, ça aide beaucoup...

    - une technique "simple" serait de détourner l'utilisation des fonctions d'overlay des cartes graphiques;

    - on peut mettre des wrappers sur les appels systèmes des fonctions clés.

    Explications sur l'overlay:
    Afin d'accélérer les affichages vidéo, au lieu de copier le flux décodé dans la mémoire vidéo, on demande à la carte d'aller le chercher (et au passage d'appliquer une opération dessus, comme la conversion YUV->RGB) dans la mémoire centrale. C'est par exemple ce que fait l'extension xv sous Linux/X11.

    Pour ce faire, on met dans la fenêtre en question seulement un fond d'une couleur donnée (la chroma-key), et la carte s'occupe du reste. L'effet secondaire, c'est que lors d'une copie d'écran... on ne capture que la chroma-key et pas la vidéo...

    Explications sur les wrappers:
    Je me souviens que sous Windows on peut installer des hooks, c'est à dire des fonctions à sois que le système va appeler lors d'un appel à une fonction donnée pour pré-/post-traiter les infos.

    Par exemple, on peut le faire sous linux avec LD_PRELOAD, ce qui est moins coopératif que la demande par les fonctions *Hook* de Windows, mais tellement plus souple.