MPEG abspielen ohne VLC

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: MPEG abspielen ohne VLC

Beitrag von Striper »

Wenn man im neuen Movieplayer2 auf z.B DVD geht ohne das irgendetwas eingerichtet wurde, dann hängt sich die Box quasi weg. Man kommt auch nicht mehr mit der HOME Taste raus.

Sollten da nicht Timeouts drin sein, oder aber die HOME Taste funktionieren?
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: MPEG abspielen ohne VLC

Beitrag von amiga23 »

@Striper,
das lag wahrscheinlich an einem segfault den seife aktuell im CVS gefixed hat.
Striper
Erleuchteter
Erleuchteter
Beiträge: 625
Registriert: Samstag 8. September 2007, 16:17

Re: MPEG abspielen ohne VLC

Beitrag von Striper »

Alles klar, wenn es mit dem letzten checkin erledigt ist, dann hab ich nichts geschrieben. ;)

Hab jetzt ein CVS-Update gemacht und teste dann nochmal.
Zuletzt geändert von Striper am Samstag 10. Januar 2009, 23:16, insgesamt 1-mal geändert.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

Was kommt denn in der Konsole? Das ganze ist noch ziemlich verbose, aber man muss natürlich draufschauen ;)
Hm ja, ich habe es grad reproduziert. Das ist der Filebrowser, noch nicht mal mein MP code...
Bzw. im DVD-Fall ist es der CURL-Timeout... aber nach so gefühlten 2 minuten timed der aus und die Box erholt sich wieder. Ich schau mal, ob man den verkürzen kann, alles über 10-20 sekunden ist IMHO zu viel.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

15 sek. timeout im MP2 und im Filebrowser sind eingechecked.
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: MPEG abspielen ohne VLC

Beitrag von amiga23 »

@seife im MP2 hast Du den dbox2dbox stream nicht eingebaut, wenn ich das richtig sehe. Hast Du geplant es wieder mit rein zu nehmen?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

Nein. Aber wenn mir jemand einen Patch schickt und das maintainen will, dann ist es mir recht.
Sollte nicht allzu schwierig sein, das meiste sollte man sich beim ReadTSFileThread() abschauen können.
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: MPEG abspielen ohne VLC

Beitrag von amiga23 »

okay, dann versuche ich mich mal daran
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: MPEG abspielen ohne VLC

Beitrag von amiga23 »

Wenn ich .ts dateien wiedergebe (über NFS Share) und die WABBER_QUEUE deaktiviert ist, kommt nur dauernd das "Puffern" Fenster (Also es geht kurz weg und kommt dann wieder). Kein Ton, Kein Bild. Mit WABBER_QUEUE funktioniert es, aber es kommt am Anfang auch manchmal noch mindestens 1 mal das Puffern-Fenster. Im alten MoviePlayer funtioniert es auch ohne WABBER_QUEUE

Erster Versuch dbox2dbox streams zu integrieren ist hier zu finden:
movieplayer2-dbox2dbox.diff
Ruckelt allerdings sehr stark, egal ob WABBER_QUEUE an oder aus, und auch egal, wieviele Buffersegmente.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

Im mp2 gibt es keine "wabberqueue" und du kannst keine puffergrösse einstellen... wenn das also einen Unterschied macht, würde mich das sehr wundern...
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: MPEG abspielen ohne VLC

Beitrag von GetAway »

Hi,

die Timeout Sachen, wenn der Streamingserver auf deaktiviert steht bzw. der Server nicht erreichbar
ist, müßten auch noch überarbeitet werden. Da haut's vorne und hinten noch nicht hin.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Re: MPEG abspielen ohne VLC

Beitrag von Houdini »

für curl zb:

Code: Alles auswählen

	/* set timeout to 30 seconds */
	curl_easy_setopt(curl_handle, CURLOPT_TIMEOUT, 30);
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

GetAway hat geschrieben:Hi,

die Timeout Sachen, wenn der Streamingserver auf deaktiviert steht bzw. der Server nicht erreichbar
ist, müßten auch noch überarbeitet werden.
??
Hab ich doch. Bitte präziser meckern ;)
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: MPEG abspielen ohne VLC

Beitrag von GetAway »

Ok, ich habe nochmal neu ausgecheckt. Die Timeouts passen jetzt soweit
ich es testen konnte.

Ich denke aber, wenn der Eintrag Streamingserver
deaktiviert ist, sollte grundsätzlich nicht versucht werden eine Verbindung
aufzubauen.

Wenn der Verbindungsaufbau DVD und SVCD fehlschlägt öffnet sich ein Popup
"Verbindung zum Streamingserver konnte nicht hergestellt werden.
Wenn man dieses mit OK bestätigt, öffnet sich sich allerdings der Hilfsbildschirm
für die Tastenbelegung. Das hat zusätzlich ne unschöne Auswirkung,wenn
man den dann beendet :wink:

Edit:
Außerdem, wenn der MP versucht eine Verbindung zum Streamingserver
herzustellen, sollte die gelbe Taste und die "?" noch ohne Funktion sein.
Drückt man eine der beiden Tasten wenn das Popup erscheint, wird
die Infobar eingeblendet.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

Solange kein Streamingserver konfiguriert ist, sollten die entsprechenden Funktionen nicht im Menü auftauchen, das wäre das einzig senkrechte.
Alles andere ist Kosmetik, an die ich mich ein andermal mache.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

amiga23: dbox2dbox ist drin, allerdings kannst du momentan nur einen sender pro Datei angeben und das file muss die extension ".dbox" haben.
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Re: MPEG abspielen ohne VLC

Beitrag von PT-1 »

seife hat geschrieben:amiga23: dbox2dbox ist drin, allerdings kannst du momentan nur einen sender pro Datei angeben und das file muss die extension ".dbox" haben.
@Seife,

gab es dieses feature frueher im "alten" Player schon :gruebel:

Wenn ja, was muss denn dann in der Datei drin stehen (hat einer ein Beispiel??)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

Ja, gabs beim alten auch.
http://wiki.tuxbox-cvs.sourceforge.net/ ... _Streaming
Ist momentan aber nur "proof of concept", darum auch nur ein "Sender" pro Datei.
Die Datei muss so aussehen:

Code: Alles auswählen

#DBOXSTREAM
ZDF=192.168.200.10;31339;0x6e;0x78;0x43700016d66
mehr Zeilen tun nicht weh, aber werden auch nicht ausgelesen ;)
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: MPEG abspielen ohne VLC

Beitrag von amiga23 »

Hey cool, läuft super, hab ein paar kleine Korrekturen gemacht:
movieplayer2-dbox2dbox.diff

Irgendwie wollte er bei mir die IP nicht richtig auslesen und vpid und apid waren vertauscht. jetzt tut es und läuft sauber ohne zu ruckeln. :-) *JUHU*

Bin grad am testen ob es jetzt auch synchron läuft.

Super, Danke Dir vielmals :-)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

(ich kommentier mal direkt im Patch)

Code: Alles auswählen

--- /media/disk/tuxbox-cvs-HEAD/apps/tuxbox/neutrino/src/gui/movieplayer2.cpp	2009-01-12 01:04:42.000000000 +0100
+++ ./apps/tuxbox/neutrino/src/gui/movieplayer2.cpp	2009-01-12 21:24:01.000000000 +0100
@@ -473,8 +473,8 @@
 {
 	char tmpbuf[512];
 	int fd = -1;
-	char ip[512];
-//	char name[512];
+	char *ip;
+	char *name;
hier hast du keinen Speicher alloziert, nur einen pointer definiert...

Code: Alles auswählen

 	int port, vp, ap, ret;
 	long long id;
 	char *p1, *p2;
@@ -496,13 +496,16 @@
 	p2 = strchr(tmpbuf, '=');
 	if (!p2)
 		goto nofile;
-//	strncpy(name, p1, p2 - p1);
-//	INFO("name: %s\n", name);
+	*p2 = '\0';
+	strncpy(name, p1, p2 - p1);
+	INFO("name: %s\n", name);
...und hier kopierst du in den nicht allozierten Speicher was rein. Das kann gut gehen, muss es aber nicht ;)
Des weiteren behaupte ich mal, dass das *p2 = 0 nicht nötig ist, da strncpy immer ein \0 anhängt (dewegen übrigens auch "p2 -p1" und nicht "p2 - p1 -1", wie man es erwarten würde, schliesslich ist p2 ja schon einen char "zu weit hinten", aber da strncpy immer eine 0 am Ende dranhängt, "dranhängen" in diesem Falle aber nicht geht, da kein Platz mehr ist, wird der "=" im *name durch '\0' ersetzt.
Ok, das "*p2 = 0" macht es etwas expliziter, was da passiert.

Code: Alles auswählen

 	p1 = p2 + 1;
 	p2 = strchr(p1, ';');
 	if (!p2)
 		goto nofile;
-	strncpy(ip, p1, p2 - p1);
+	*p2 = '\0';
+	strncpy(ip, p1, 12);
12 ist zu wenig für eine IP. da brauchst du 16 bytes. Andererseits, wenn du explizit mit \0 terminiert hast, ist strncpy nicht notwendig, strcpy tut es dann auch. Oben ebenso.

Code: Alles auswählen

+//	ip="192.168.1.93";
 	INFO("ip: %s\n", ip);
 	p1 = p2 + 1;
 	ret = sscanf(p1, "%d;0x%x;0x%x;0x%llx", &port, &vp, &ap, &id);
@@ -519,6 +522,7 @@
 	CURLcode httpres = sendGetRequest(url, response);
 	if (httpres == 0)
 	{
+		usleep(250000);
hm ja, das kann nichts schaden, auch wenn es bei mir nicht notwendig war, aber evtl. hatte ich immer schon vorher auf den Kanal geschaltet...

Code: Alles auswählen

 		struct sockaddr_in ads;
 		socklen_t ads_len = sizeof(sockaddr_in);
 		bzero((char *)&ads, ads_len);
@@ -534,7 +538,7 @@
 			goto nostream;
 		}
 
-		sprintf(tmpbuf, "GET /0x%x,0x%x HTTP/1.0\r\n", ap, vp);
+		sprintf(tmpbuf, "GET /0x%03x,0x%03x HTTP/1.0\r\n", vp, ap);
Also laut dem quellcode vom streamts sollte das nicht notwendig sein, ausserdem können die PIDs ja vierstellig sein. Ist das bei dir wirklich notwendig? (Ich will gern verstehen, warum wir das machen müssen und im Zweifelsfall einen Kommentar dran machen, damit ich es in einem halben Jahr auch noch verstehe)

ÄHM. JA. Jetzt sehe ich es erst, dass ich vp und ap vertauscht hatte, das muss natürlich andersrum sein. Wobei es bei mir trotzdem funktioniert hat... interessiert das den streamts überhaupt, welche PID vpid und welche APID ist? Egal, das gehört gefixt.

Code: Alles auswählen

 		INFO("get request: %s", tmpbuf);
 		write(fd, &tmpbuf, strlen(tmpbuf));
 		ret = read(fd, &tmpbuf, 17); // HTTP/1.1 200 OK\r\n
Was ich nicht ganz verstehe ist, warum bei dir die IP nicht ausgelesen wurde. Kannst du mir mal eines deiner plalist-files irgendwohin hochladen, damit ich das prüfen kann?
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: MPEG abspielen ohne VLC

Beitrag von amiga23 »

@seife file zum testen:
01_HIT24.dbox

wegen dem anderen kram bin ich gerade am rumprobieren. Ich habe nicht viel Ahnung von C. Normalerweise programmiere ich in JAVA. Daher kannst Du von mir nicht all zuviel erwarten.
strncpy funktioniert auf jeden Fall bei mir nicht. Wie ich es gedifft habe tut es aber auch nicht richtig.
Was ich hier mache ist trial and error. So wie der diff war, hat es bei mir funktioniert. ich probiere noch etwas rum, dann kann ich klare Aussagen zu Deinen Anmerkungen machen.
amiga23
Einsteiger
Einsteiger
Beiträge: 238
Registriert: Sonntag 14. November 2004, 23:44

Re: MPEG abspielen ohne VLC

Beitrag von amiga23 »

okay, hab ne neue version hochgeladen.

Mein Hauptproblem bestand darin, dass ich die Box nicht im SPTS Modus laufen habe. Für box2box stream muss sie aber im spts mode sein. Also habe ich das Umschalten in den SPTS jetzt auch in den mp2 eingebaut. Wäre aber sauberer, den Status auszulesen und nach dem streamen wieder zuruckzusetzen.

Mit dem strncpy ohne \0 will es bei mir einfach nicht funktionieren. Vielleicht muss es p2 - p1 +1 heissen???

Das mit der IP war ein überbleibsel vom rumtesten. Die variable ist jetzt mit
char ip[512] wieder sauber, so wie Du es ursprünglich auch hattest.

name lese ich jetzt auch aus (ursprünglich hattest Du es auskommentiert) und schreibe es ins Display. Eigentlich würde ich gerne den aktuellen Sendungsname im Display anzeigen. Noch cooler wäre es natürlich die ganzen EPG informationen abzugreifen und anzuzeigen wenn man die Infotaste drückt. Hab das angefangen, aber nicht in dem patch drin.

Ob die usleep wirklich nötig sind weis ich nicht. Die Box von der ich streame ist eine Kabelbox. Manchmal dauert es beim umschalten etwas. Müsste man mal etwas genauer ohne usleep testen.

Das mit dem %03x habe ich wieder rausgenommen %x reicht. Da ich keine Ahnung habe, von dem was ich hier tue, habe ich es einfach erstmal so probiert, wie es im alten Code war, ohne nachzudenken. Vielleicht müssen die PIDs mindestens 3 stellig sein??? Mir sind bis jetzt noch keine 2 stelligen zum testen untergekommen, von daher erstmal egal.

Wenn man zwischen dieser Meldung:

Code: Alles auswählen

[mp:OutputThread:2189] Waiting for input thread to stop
und dieser Meldung:

Code: Alles auswählen

[mp:ReceiveStreamThread:1094] ends now.
[mp:OutputThread:2191] Seems that input thread was stopped succesfully
den nächsten stream startet, kommt es zu einem segfault.

Achso: ich nutze übrigens uclibc falls diese Info wichtig ist.

Es spielt übrigens synchron. Soweit ich das jetzt getestet habe gab es keine aussetzer und es ist absolut synchron gelaufen. Mit dem alten Movieplayer kam es immer schon nach wenigen Minuten zu aussetzern / hängern und ist dann sehr schnell unsynchron geworden. YEEEEEEEEE :-) Danke seife

Gute Nacht :-)
Amiga23
ThulsaDoom
Interessierter
Interessierter
Beiträge: 86
Registriert: Montag 18. Dezember 2006, 10:28

Re: MPEG abspielen ohne VLC

Beitrag von ThulsaDoom »

Frage von meiner Seite: Wie wirkt sich der movieplayer2 auf das TS-Filmarchiv aus bzw. wird da noch korrigiert?

Im neuen JTG-Snapshot ist das Filmarchiv derzeit nicht mehr nutzbar - von mir ungetestet (habe nur den Testsnap vom 11.01.09 draufgehabt und dort ging es nicht TS-Aufnahmen von der internen HDD mittels Filmarchiv zu starten !).

Es erschien kurz "Suche Filme" und dann passierte nix mehr (heisst man konnte weiter Fernsehen :-) )

Das sollte gefixt werden, da das Filmarchiv doch unbestritten Vorteile hat !


Gruß
ThulsaDoom
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

ThulsaDoom hat geschrieben:Frage von meiner Seite: Wie wirkt sich der movieplayer2 auf das TS-Filmarchiv aus
Das gibts da nicht
bzw. wird da noch korrigiert?
Von mir nicht. Und Patches, die das reinmachen, müssten schon ziemlich sauber sein, damit ich die haben wollen würde.
(Ich bin durchaus bereit auch Sachen reinzumachen, die ich selbst nicht brauche, wenn sie sich halbwegs sauber einbauen lassen, siehe box2box, was aber auch nochmal überarbeitet gehört ;), aber ich will nicht so eine "Schweinerei" wie den alten movieplayer-Code maintainen.
Es erschien kurz "Suche Filme" und dann passierte nix mehr (heisst man konnte weiter Fernsehen :-) )
Wenn --enable-movieplayer2 gemacht wird, dann ist das Filmarchiv nicht einkompiliert und nicht auswählbar:

Code: Alles auswählen

if ENABLE_MOVIEPLAYER2
        libneutrino_gui_a_SOURCES += movieplayer2.cpp
else
libneutrino_gui_a_SOURCES += \
        movieviewer.cpp movieplayer.cpp moviebrowser.cpp
endif
Das sollte gefixt werden, da das Filmarchiv doch unbestritten Vorteile hat !
Bleib beim alten Movieplayer. Ich habe den MP2 extra optional gemacht, weil ich von vorneherein gar nie die Absicht hatte, wieder so ein eierlegendes Wollmilchschwein zu machen (Ausserem damit ich mich nicht mit den Usern rumstreiten muss die meinen, dass der Alte bei ihnen doch super funktioniert hätte und ausserdem schöner, bunter und voller Features wäre ;). Ausserdem macht der alte Movieplayer bestimmt ein besseres Bild und der Ton wird auch feiner gezeichnet).

Den MP2 sollte ausser mir niemand benutzen, der nicht weiss, mit allen Konsequenzen, dass er das auch will.

...natürlich gibt es Gründe für den MP2, wie z.B. die gefixten Memleaks und dass er halt MPEG abspielen kann. Es ist halt eine Güterabwägung.

Und vor sich alle jetzt beschweren: macht euch mal Gedanken, warum seit Jahren am movieplayer weder Fixes noch Features implementiert wurden.
ThulsaDoom
Interessierter
Interessierter
Beiträge: 86
Registriert: Montag 18. Dezember 2006, 10:28

Re: MPEG abspielen ohne VLC

Beitrag von ThulsaDoom »

Aha ! Erstmal Danke für die rasche und ausführliche Antwort !

Als Option beim Imagebau genau richtig geplant von deiner Seite aus! Wer drauf abfährt kann ihn einbauen und die anderen lassen es und bleiben beim alten MP.

Nun bin ich (leider immernoch kein Selberbauer) und nutze grundsätzlich das JTG-Image. Dort stehen wir dann evtl. am Scheideweg -> je nachdem wie Riker sich orientiert -> sehe ich doch richtig, oder ???

Na das heist für mich wohl wirklich bald -> Selbst ist das Image! Aber warten wir mal ab, was vom JTG-Team kommt!

Gruß
ThulsaDoom