Kleiner fix für dem movieplayer

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Heinrich Hansen
Neugieriger
Neugieriger
Beiträge: 12
Registriert: Dienstag 22. Juli 2003, 17:04

Kleiner fix für dem movieplayer

Beitrag von Heinrich Hansen »

Wenn man eine Datei anwählt, die der VLC nicht abspielen kann, bleibt der movieplayer in einer Endlosschleife (while(true){}) hängen, in der immer wieder versucht wird, den nicht vorhandenen Stream zu öffnen.

Die Fernbedienung wird dabei auch nicht abgefragt und so bleibt nichts außer Reset.

Einfache Abhilfe:
in apps/tuxbox/neutrino/src/gui/movieplayer.cpp in Zeile 652 nach der inneren while(true) Schleife eine Abfrage der Fernbedienung einfügen:

Code: Alles auswählen

while(true)
{
    ...
    while(true)
    {
        ....
    }
    if(g_playstate == CMoviePlayerGui::STOPPED)
    {
        close(skt);
        pthread_exit(NULL);
    }
}
Jetzt läßt sich das ewige Warten mit einem Druck auf die "Home" Taste beenden.

Vielleicht mag das ja mal jemand ins CVS mit aufnehmen.

Gruß Heini
eule
Erleuchteter
Erleuchteter
Beiträge: 585
Registriert: Mittwoch 10. Oktober 2001, 00:00

Beitrag von eule »

Danke....
Kickersfan
Neugieriger
Neugieriger
Beiträge: 18
Registriert: Freitag 8. April 2005, 22:03

Beitrag von Kickersfan »

Was benutzt ihr eigentlich für ein Neutrino ? Ich wollte den Fix bei mir auch einbauen aber habe nix mit movieplayer.cpp gefunden,Ich benutz das Yadi 2.1.0.1.Gibts da doch so große Unterschiede.Habe gedacht dass neutrino gleich neutrino ist und nur die gui anders ist.
Gruß Andre
hannebamb(el)
Foren-Moderator
Beiträge: 297
Registriert: Montag 11. Oktober 2004, 14:51

Beitrag von hannebamb(el) »

jo, Neutrino ist Neutrino

das was Hansen da gepostet hat ist Source Code ==> den muß man erst compilieren, damit da ein ausführbares Programm draus wird.
Im einem IMage wirst du da so nichts finden
Kickersfan
Neugieriger
Neugieriger
Beiträge: 18
Registriert: Freitag 8. April 2005, 22:03

Beitrag von Kickersfan »

Ok danke,hab gedacht das kann ich malk so auf die schnelle einbinden :roll: .Aber des is dann doch zu hoch für mich :cry:
Gruß Andre
Sedonion
Interessierter
Interessierter
Beiträge: 36
Registriert: Donnerstag 31. März 2005, 13:33

Beitrag von Sedonion »

Bitte baut das ins CVS ein, würde auch mir den einen oder anderen Neustart der Box erleichtern bzw. verhindern.

Wäre echt klasse.
DieMade
Oberlamer, Administrator & Supernanny
Beiträge: 10532
Registriert: Samstag 13. Juli 2002, 10:49

Beitrag von DieMade »

Bitte ein diff erstellen oder zumindest 3 Codezeilen davor und dahinter erkennbar in den Codeschnipsel einfügen.
There are 10 types of people in the world: those who know binary and those who don't
mogway
Semiprofi
Semiprofi
Beiträge: 1287
Registriert: Montag 30. Dezember 2002, 08:02

Beitrag von mogway »

DieMade hat geschrieben:Bitte ein diff erstellen oder zumindest 3 Codezeilen davor und dahinter erkennbar in den Codeschnipsel einfügen.
Bin schon am testen ;)

Wird die Tage in CVS kommen, wenn es läuft.

Gruß
mogway
Gruss
mogway
Heinrich Hansen
Neugieriger
Neugieriger
Beiträge: 12
Registriert: Dienstag 22. Juli 2003, 17:04

Beitrag von Heinrich Hansen »

Ich hoffe mal, dass ich das richtige Format erwischt habe.

Es sind noch ein paar zusätzliche kosmetische Änderungen drin, wenn nicht gewünscht, bitte weglassen.

Gruß Heini ;-)

Code: Alles auswählen

Index: movieplayer.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/movieplayer.cpp,v
retrieving revision 1.105
diff -r1.105 movieplayer.cpp
473c473
< 	printf("[movieplayer.cpp] URL(enc) : %s?sout=%s\n",baseurl.c_str(), tmp);
---
> //	printf("[movieplayer.cpp] URL(enc) : %s?sout=%s\n",baseurl.c_str(), tmp);
553a554
> 		 !strcasecmp(sMRL.substr(sMRL.length()-4).c_str(), "bin") ||
590,591c591
< 	printf ("[movieplayer.cpp] Server: %s\n", server);
< 	printf ("[movieplayer.cpp] Port: %d\n", port);
---
> 	printf ("[movieplayer.cpp] streamingserver is %s:%d\n", server, port);
599c599
< 		printf ("[movieplayer.cpp] Trying to connect socket\n");
---
> 		printf ("[movieplayer.cpp] connecting to VLC...\n");
607c607
< 		printf ("[movieplayer.cpp] Socket OK\n");
---
> 		printf ("[movieplayer.cpp] connection established.\n");
619c619
< 		printf ("[movieplayer.cpp] GET Sent\n");
---
> 		printf ("[movieplayer.cpp] opening stream...\n");
649a650,654
> 		if(g_playstate == CMoviePlayerGui::STOPPED)
> 		{
> 			close(skt);
> 			pthread_exit (NULL);
> 		}
652c657
< 	printf ("[movieplayer.cpp] Now VLC is sending. Read sockets created\n");
---
> 	printf ("[movieplayer.cpp] VLC is now sending.\n");
655c660
< 	printf ("[movieplayer.cpp] Buffering approx. 3 seconds\n");
---
> 	printf ("[movieplayer.cpp] buffering approx. 3 seconds\n");
690c695
< 				printf("[movieplayer.cpp] Searching for vpid and apid\n");
---
> 				printf("[movieplayer.cpp] searching for vpid and apid\n"...);
the_Desruptor
Interessierter
Interessierter
Beiträge: 22
Registriert: Montag 22. März 2004, 13:33

Beitrag von the_Desruptor »

Sedonion hat geschrieben:Bitte baut das ins CVS ein, würde auch mir den einen oder anderen Neustart der Box erleichtern bzw. verhindern.

Wäre echt klasse.
und ich müsste nicht letzte nacht vom schlafzimmer 3 mal ein stockwerk runterlaufen, ins wohnzimmer, um die d-box neu zu starten.
Sat_Man
Einsteiger
Einsteiger
Beiträge: 351
Registriert: Donnerstag 24. Oktober 2002, 20:14

Beitrag von Sat_Man »

Heinrich Hansen hat geschrieben:Ich hoffe mal, dass ich das richtige Format erwischt habe.
Allgemein üblich ist diff -u in Verbindung mit dem CVS also z.B. so:

Code: Alles auswählen

cvs diff -u movieplayer.cpp > movieplayer.diff
:wink: