[linux] Uniquemenr Les Vidéos Sur Le Second écran


Messages recommandés

Bonjour,

Je suis un nouvel arrivant dans l'univers xbmc et j'y suis arrivé par la voie linux (je n'ai pas de xbox). Simplement ce media center me plait beaucoup et j'attend beaucoup de son portage sur mon os favoris.

J'ai déjà posté un message similaire sur le forum officiel anglophone (http://xbmc.org/forum/showthread.php?t=32277) mais afin de multiplier mes chances d'arriver à mes fins je poste aussi ici.

Donc, étant utilisateur de linux et ayant une télé et un écran plat de bureau relié à mon pc j'ai l'habitude d'utiliser la variable d'environnement

env DISPLAY=:0.1

pour lancer mes films depuis mon petit écran pour les regarder sur la télé. A noter que la variable propre à mplayer

-display :0.1

marche aussi.

Or je voudrais faire la même chose avec xbmc, c'est à dire lancer un film depuis xbmc sur mon petit écran et le regarder sur la télé (tout en gardant le dash de xbmc sur le petit).

J'ai principalement tenté deux axes de recherches (tous sans succès) :

- par le fichier contenu dans BUILD/system/players/mplayer/mplayer.conf en lui rajoutant la variable

display=:0.1

- par le fichier /XBMC/xbmc/XBVideoconfig.cpp puis en recompilant :

- changement de SDL_VIDEO_FULLSCREEN_HEAD par SDL_VIDEO_FULLSCREEN_HEAD=1

- changement de SDL_VIDEO_FULLSCREEN_HEAD par

env DISPLAY=:0.1

- changement de int screen = DefaultScreen(pRootDisplay) par int screen = Screen1(pRootDisplay) -> erreurs de compilation

- changement int desired = 0 par int desired = 1

J'ai tenté de mélanger tous ces essais entre eux mais rien à faire, j'ai toujours la vidéo sur le premier écran. Il me reste bien sûr l'option de lancer directement xbmc sur la télé mais ça n'est pas vraiement ce que je veux.

Quelqu'un qui connaitrait bien la manière dont est codé xbmc pourrait-il me donner un petit coup de main?

Merci d'avance.

Modifié par SeBaB
Lien vers le commentaire
Partager sur d'autres sites

Salut

Une petite réponse, non pas pour t'aider dans ta question, mais plutôt pour te renvoyer vers un site qui vient de faire son apparition et qui pourrait t'être d'une plus grande aide puisqu'il parle (ou parleras) particulièrement de XBMC sur les différentes "nouvelles" plateformes dont linux.

(comme ca tu ratisseras large dans ta requête et tu participeras à l'explosion d'un nouveau site ;) )

EDIT :

oups j'ai oublié le lien, effectivement, il s'agit de "passion XBMC" http://passionxbmc.org/

Modifié par alexsolex
Lien vers le commentaire
Partager sur d'autres sites

Salut

Une petite réponse, non pas pour t'aider dans ta question, mais plutôt pour te renvoyer vers un site qui vient de faire son apparition et qui pourrait t'être d'une plus grande aide puisqu'il parle (ou parleras) particulièrement de XBMC sur les différentes "nouvelles" plateformes dont linux.

(comme ca tu ratisseras large dans ta requête et tu participeras à l'explosion d'un nouveau site ;) )

Salut, il manque l'adresse de ton site mais je suppose qu'il s'agit de http://passionxbmc.org/, site dont je suis humblement "administrateur suppléant". En fait on est en plein dans la recherche de docs en tous genres avec Shaitan et je cherchais cette info (beaucoup) pour moi et (un peu) pour le site. Mais ça fait plaisir que dés gens suivent l'actuallité...

Lien vers le commentaire
Partager sur d'autres sites

salut et désolé pour l'oubli du lien. Je le rajoute.

Cordialement

Lien vers le commentaire
Partager sur d'autres sites

Dans le but de faire un petit up! et surtout de préciser ma question en postant la partie qui me semble intéressante du xbvideoconfig.cpp :

#ifdef HAS_GLX  Display * pRootDisplay = XOpenDisplay(NULL);  if (pRootDisplay == NULL)  {	 fprintf(stderr, "Cannot get root display. Is X11 running and is your DISPLAY variable set?\n");	 exit(1);  }  int screen = DefaultScreen(pRootDisplay);  int width = DisplayWidth(pRootDisplay, screen);  int height = DisplayHeight(pRootDisplay, screen);  XineramaScreenInfo *info;  int num;  info = XineramaQueryScreens(pRootDisplay, &num);  if (info)  {	int desired = 0;	width = info[0].width;	height = info[0].height;	const char *variable = SDL_getenv("SDL_VIDEO_FULLSCREEN_HEAD");	if (variable)	{	  desired = SDL_atoi(variable);	  for (int i = 0; i<num; i++)	  {		if (info[i].screen_number==desired)		{		  width = info[i].width;		  height = info[i].height;		  break;		}	  }	}	XFree(info);  }  w = width;  h = height;#endif}#endif

Lien vers le commentaire
Partager sur d'autres sites

Salut,

Bon, je suis complètement inculte question linux et ces fichiers de configs de mplayer dont tu parles, donc je vais tenter de t'aider avec les quelques connaissances qui me restent de C++.

Donc, en résumé,

Suivant le code que tu as donné, il y a tout d'abord la vérification de la variable booléenne HAS_GLX, que je n'ai pas trouvé après une petite recherche google. Est-elle définie par le système ou par XBMC? Es-tu sur qu'elle soit validée pour toi?

Bon j'ai cherché un peu plus loin, tu parles, de la variable SDL_VIDEO_FULLSCREEN_HEAD, elle est récupérée grâce à la fonction SDL_getenv qui possède un fichier d'aide dans un sous dossier de libSDL-OSX. Est-ce que ton problème ne viendrait pas de là? Tu utilises un linux (Ubuntu peut être) qui n'est pas OSX (qui a une base unix mais qui n'est pas un linux, enfin je crois). Donc, il est alors possible, que XBMC n'accède simplement pas à cette partie du programme du fait que ton OS ne remplit pas les prérequis pour y accéder.

Il faut donc peut être voir dans une autre direction et notamment par le fichier de config de mplayer qui me parait plus simple qu'une réécriture du programme source. D'après ce qui est indiqué sur le wiki, le mplayer aurait été limité pour son intégration. Donc la fonctionnalité de gestion de sortie vidéo a probablement été supprimée. Une petite question sur le forum officielle pourrait avoir une réponse (Je sais que tu as déjà posté, mais, par expérience, je sais que les messages trop techniques sont rarement lus.)

Maintenant, une solution alternative serait de lancer XBMC sur ta TV et d'utiliser une gestion à distance (comme l'intégration http) pour gérer ta vidéo sur ton écran de PC (via ton navigateur favori par exemple). En gros ça signifie que tout serait gérable par l'interface Web de XBMC et non pas par l'interface classique de XBMC. Cela ne correspond peut être pas à ton besoin, mais il est aussi possible qu'une réécriture de la page WEB et/ou un script python pourrait remplir les manques de l'interface de base, en attendant un complément d'info de la team officielle.

Désolé pour le manque de solution,

++

Lien vers le commentaire
Partager sur d'autres sites

Bon,

après un peu plus de recherches les variables inconnues et la fonction SDL_getenv sont définies par ton système. La team a simplement ajoutée les fonctions pour OSX. Donc, je ne pense pas que ça vienne de ça.

Donc, est-ce que tu as essayé tout simplement de définir la variable d'environnement SDL_VIDEO_FULLSCREEN_HEAD? D'ailleurs est-elle définie par défaut?

sinon, tu pourrais essayer un:

env SDL_VIDEO_FULLSCREEN_HEAD=1

Bon, je ne sais pas si c'est comme ça que l'on définit une variable d'environnement sous linux mais c'est ce que j'ai cru comprendre avec ton premier post.

Sinon, tu as vu ça: Dual screen set up

ou ça (http://www.sabayonlinux.org/forum/viewtopi...=54&t=12892):

 Multi-monitor FullscreenIf you have a multi-monitor setup and you want to use fullscreen, make sure to set the env variable SDL_VIDEO_FULLSCREEN_HEAD to the display no. which you want SDL to use for the fullscreen mode.For e.g. "SDL_VIDEO_FULLSCREEN_HEAD=1 ./XboxMediaCenter -fs" to tell SDL to use display no.1Note: Nvidia Twinview users should be aware that X treats the twinviewed displays as the same head. If you want to run fullscreen XBMC on one display and start it from the other you must configure X with two "Device" sections against the same physical card. See chapter 16 of the Nvidia user guide for information on how to do this.

ça (http://www.libsdl.org/release/changes-1.2.html):

Xinerama multi-head displays are properly handled now, and the SDL_VIDEO_FULLSCREEN_HEAD environment variable can be used to select the screen used for fullscreen video modes. Note that changing the video modes only works on screen 0.

[EDIT] Derniere info/idée: sachant que la variable SDL_VIDEO_FULLSCREEN_HEAD est liée à l'implémentation du SDL, il faudrait voir si la variable est prise en compte avec d'autres programmes utilisant cette implémentation. En cherchant cette variable sur internet, j'ai pu voir Atari 800 Emulator, QEMU, ScummVM, ... Essayes donc de tester, un des progs en ayant définie cette variable d'environnement pour voir si ça fonctionne. Tu pourra peut-être éliminé une source de problème.

++

Modifié par nioc bertheloneum
Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share