Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Scade

Pages: [1]
1
Graphique / Problème de tearing
« le: Août 21, 2014, 10:13:41 am »
Bien l'bonjour.

Je m'amuse actuellement à créer une surcouche moteur à la SFML pour ajouter des fonctionnalités dont j'ai besoin. Dans cet objectif, je me suis mis à coder un petit lecteur vidéo utilisant FFMPEG.

Ça se passe plutôt bien à part que je me retrouve avec un tearing tout laid (Cf. http://scadapop.free.fr/tearing.jpg).

J'ai essayé d'activer la VSync mais à part me pomper 50% de CPU en plus, ça n'a rien changé au souci. Forcer le framerate à 60 n'a pas davantage arrangé les choses.

Grosso modo ce que je fais, c'est que tout ce qui est capture d'event, clear et display de la fenêtre, et draw du sprite de la vidéo est fait dans le thread principal.

À côté de ça, dans un autre thread, j'ai une fonction qui s'occupe d'update régulièrement la texture du sprite pour y placer les frames de la vidéo.

Par mesure de sécurité, j'ai mis un mutex autour de l'update de la texture et du draw du sprite.

J'ai pas trop l'impression que ce soit un souci de performance, ça tourne en général autour des 20/30% de CPU et 230/240K de mémoire quand je met un framerate de 60.

Bref voila je ne comprends pas vraiment ce qui ne va pas. Entre les threads et la mise à jour très régulière de la texture, j'ai peut-être raté un détail important à propos du fonctionnement de la SFML qui justifierait ce souci ?

Si quelqu'un a des idées, des pistes, n'importe quoi, je suis preneur :D

2
Général / SfeMovie plante à la sortie
« le: Janvier 09, 2014, 12:52:13 am »
Bien l'bonjour.

Je suis en train de réaliser un projet d'étude avec SFML, et il me faut intégrer une petite vidéo d'intro.
J'ai tenté SfTheora mais pas moyen de le faire tourner.

Du coup en cherchant un peu sur le forum je suis tombé sur SfeMovie qui fonctionne fort bien, à l'exception près qu'au moment où je quitte l'appli (et ce à quelque moment que ce soit, pas forcément pendant la vidéo), j'ai une exception : Exception non gérée à 0x7579A4B9 (ole32.dll) dans appli.exe : 0xC0000005 : Violation d'accès lors de la lecture de l'emplacement 0xFEEEFEEE.

J'avais pas ce problème avant, et si je commente tout ce qui est relatif à SfeMovie, l'exception disparaît.

Est-ce que quelqu'un aurait une solution svp ?  :-[

Edit : En attendant, j'ai retenté avec SfTheora, et j'ai un peu progressé, jusqu'au moment où il me sort que la bibliothèque sfTheora.lib est obsolète car compilée avec un compilo antérieur (Je suis sous visual studio 2013). J'ai bien essayé de récupérer le code source de la version full ppour recompiler, mais là il m'engueule parce qu'il lui manque libtheoraplayer.lib T_T

Edit 2 : J'ai tenté de compiler avec CMake mais la lib qui en sort créé plein d'erreurs "symbole externe non résolu" quand je l'intègre à mon projet.
Je suis parvenu à trouver libtheoraplayer.lib et à l'ajout à la solution de ShTheora, ce qui m'a enfin permis de compiler la lib depuis une solution classique. Celle-là ne fait aucune erreur quand intégrée à mon projet, par contre elle déclenche un point d'arrêt directement au load, ne me laissant même pas l'occasion de récupérer une erreur.

Je ne fais pourtant que : m_vidIntro.load("../data/video/intro.ogv");, et à moins que SfTheora ne parte d'un dossier bien spécifique et étrange, je suis certain du chemin du fichier et de son existence.

3
Fenêtrage / Re : Rapidement récupérer le buffer
« le: Juin 28, 2013, 02:26:22 pm »
Ok je vais me pencher de ce côté là alors.

Merci beaucoup pour cette réponse rapide ! ;)

4
Fenêtrage / Rapidement récupérer le buffer
« le: Juin 28, 2013, 09:56:22 am »
Salut à tous !

Je suis stagiaire dans une entreprise qui m'a donné pour tâche  de réaliser un mur d'écrans.
L'objectif serait de faire tourner un appli codée avec sfml, de récupérer le rendu, et d'en envoyer des bouts via un réseau local à d'autres machines qui se chargeraient de les afficher.

Donc mon premier objectif est de parvenir à chopper le buffer pour pouvoir ensuite en faire ce que je veux.

Pour l'heure, mes recherches m'ont orienté sur la récupération de la texture du rendertarget. Seulement elle n'est pas exploitable directement, car sur le GPU, ce qui oblige à faire un copyToImage pour la rendre exploitable, opération uber longue...

Même en le faisant sur un thread à part, je ne parviens à récupérer que deux ou trois images par seconde.

Est-ce qu'à tout hasard, vous auriez en tête une solution plus efficace pour parvenir à mes fins siouplaît ? :3

(Et désolé si j'ai pas posté dans la bonne catégorie, vu que ça en concerne plusieurs, j'ai pas trop su quoi faire)

Pages: [1]
anything