MPEG abspielen ohne VLC

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

MPEG abspielen ohne VLC

Beitrag von seife »

Die, die mit den CVS-Mails auf dem Laufenden gehalten werden, haben es bestimmt schon gemerkt:
Neutrino kann jetzt auch MPEG und VDR-Aufnahmen abspielen.

Wie wird's gemacht?

Entweder ihr kopiert neutrino/src/gui/movieplayer2.cpp über neutrino/src/gui/movieplayer.cpp und baut neu, oder ihr editiert neutrino/src/gui/Makefile.am:

Code: Alles auswählen

Index: gui/Makefile.am
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/Makefile.am,v
retrieving revision 1.43
diff -u -p -r1.43 Makefile.am
--- gui/Makefile.am     11 Nov 2007 04:22:54 -0000      1.43
+++ gui/Makefile.am     1 Jan 2009 13:56:50 -0000
@@ -20,7 +20,7 @@ libneutrino_gui_a_SOURCES = \
        color.cpp favorites.cpp sleeptimer.cpp screensetup.cpp \
        epgview.cpp infoviewer.cpp scan.cpp update.cpp \
        filebrowser.cpp audioplayer.cpp nfs.cpp pictureviewer.cpp \
-       movieplayer.cpp rc_lock.cpp bookmarkmanager.cpp \
+       movieplayer2.cpp rc_lock.cpp bookmarkmanager.cpp \
        timeosd.cpp epgplus.cpp epg_menu.cpp personalize.cpp \
        streaminfo2.cpp plugins.cpp imageinfo.cpp \
        audio_select.cpp \
Ganz oben in der movieplayer.cpp steht drin, was von dem Teil zu erwarten ist und was nicht.
Kosmetische Sachen: die Hilfe ist noch falsch (ist die VLC-Hilfe). Es gibt keine Infobar oder ähnliches. GUI-Einstellungen für "Wabber-Queue" etc. sind noch vorhanden (an der GUI habe ich nichts geändert), aber bewirken nichts, es wird immer 1MB Puffer genommen, egal was eingestellt wurde (die Wabber-Queue mag zwar theoretisch besser sein, ist aber doch sehr kompliziert und der normale triviale ringbuffer-Code funktioniert bei mir in der Praxis genauso gut und ich habe das Gefühl dass er effizienter ist). Bookmarks etc. sind nicht implementiert (habe ich nie benutzt). AC3 habe ich nicht => ungetestet (TS) bzw. nicht implementiert (MPEG/VDR).
Dafür ist die Zeitanzeige recht genau und vorwärts/rückwärts springen funktioniert auch relativ präzise ;)

VLC sollte damit prinzipiell auch gehen, aber ist ungetestet. Ich überlege, den VLC Code komplett rauszuwerfen, da ich den nicht brauche.

Auf der Konsole ist der Code noch relativ geschwätzig, so dass man im Zweifelsfall sieht, wo was schief geht.

Getestet habe ich auf einer SAGEM dbox2, einer Philips dbox2 und einer DM500.
Nein, ich will den alten movieplayer mit seinen vielen Features nicht ersetzen, aber ich wollte einen funktionierenden movieplayer mit den Features, die ich tatsächlich brauche.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: MPEG abspielen ohne VLC

Beitrag von GetAway »

Frohes Neues!

Mal getestet. Titel des letzten geschauten Film bleibt im LCD, beim verlassen des MP.
Umschalten bringt nichts. Keine Aktualisierung.
Beim Spielen mit der FB plötzlich keine bedienung mehr, erst nach Ende des Films
gings wieder. Werds mal beobachten. Erster Eindruck: Flüssiger Start.

Edit LCD-Ausgabe nur noch zentriert?
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

GetAway hat geschrieben:Frohes Neues!

Mal getestet. Titel des letzten geschauten Film bleibt im LCD, beim verlassen des MP.
Umschalten bringt nichts. Keine Aktualisierung.
hm. Bei mir nicht. Mal schaun, welcher meiner anderen Patches das fixen könnte ;)
Beim Spielen mit der FB plötzlich keine bedienung mehr, erst nach Ende des Films
gings wieder. Werds mal beobachten.
Ist mir auch schon lange nicht mehr passier. Versuch mal dir zu merken, was du genau getan hast ;)
Edit LCD-Ausgabe nur noch zentriert?
Ja, hat aber nichts mit dem movieplayer2 zu tun ;) Das könnte man theoretisch konfigurierbar machen, wenn es als notwendig befunden wird...
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: MPEG abspielen ohne VLC

Beitrag von bellum »

seife hat geschrieben:Die, die mit den CVS-Mails auf dem Laufenden gehalten werden, haben es bestimmt schon gemerkt:
Neutrino kann jetzt auch MPEG und VDR-Aufnahmen abspielen.
jau, habe das schon mit Interesse zur Kenntnis genommen, prima dass sich jemand mal dieser Sache richtig annimmt... :D
seife hat geschrieben: AC3 habe ich nicht => ungetestet (TS) bzw. nicht implementiert (MPEG/VDR).
AC3 ist für mich ein wichtiger Punkt und auch etwas mit dem ich beim alten Movieplayer extrem unzufrieden bin, da ich so ca. alle 15min ein kurze Unterbrechung im Ton habe, was mich echt nervt. :evil:

Wenn ich Dir anbiete als Tester (mit einer Sagem Kabel) zur Verfügung zu stehen, würdest Du dann auch AC3 implementieren? Ich denke ich hätte dazu so ca. ab Mitte Januar Zeit.

Wäre echt prima...

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

Re: MPEG abspielen ohne VLC

Beitrag von seife »

bellum hat geschrieben:
seife hat geschrieben:Wenn ich Dir anbiete als Tester (mit einer Sagem Kabel) zur Verfügung zu stehen, würdest Du dann auch AC3 implementieren?
Wenn du mir einen Patch schickst, checke ich ihn ein ;)
Es sollte nicht allzu schwierig sein. Irgendwo da:

Code: Alles auswählen

			case 0xbb:
			case 0xbd: // TODO: AC3
			case 0xbe:
musst du halt die AC3-Pakete rausfieseln. Im enigma-Source gibt es das schon, das kannst du dir als Beispiel nehmen.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: MPEG abspielen ohne VLC

Beitrag von GetAway »

seife hat geschrieben:
GetAway hat geschrieben:Frohes Neues!

Mal getestet. Titel des letzten geschauten Film bleibt im LCD, beim verlassen des MP.
Umschalten bringt nichts. Keine Aktualisierung.
hm. Bei mir nicht. Mal schaun, welcher meiner anderen Patches das fixen könnte ;)
Fehler tritt auf, wenn man während des Films die rote Taste (Sprachauswahl->Stream) gedrückt hatte. :-?

Ist das "Puffern" auf der grünen Taste Absicht?

Nach 2 maligen Wechsel im Filebrowser in das jeweils übergeordnete
Verzeichnis, z.B von /hdd aus, verweilt er beim Puffern. Allerdings kommt
man mit Home wieder raus.
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: MPEG abspielen ohne VLC

Beitrag von bellum »

seife hat geschrieben:Wenn du mir einen Patch schickst, checke ich ihn ein ;)
Es sollte nicht allzu schwierig sein. Irgendwo da:

Code: Alles auswählen

			case 0xbb:
			case 0xbd: // TODO: AC3
			case 0xbe:
musst du halt die AC3-Pakete rausfieseln. Im enigma-Source gibt es das schon, das kannst du dir als Beispiel nehmen.
O.K. werde mich tatsächlich mal dran versuchen, auch wenn es schon länger her ist, dass ich programmiert habe und es evtl. bedeutet dass ich hier "doofe" Fragen stellen muss...
... und hier kommen schon welche
1. Sehe ich das richtig, dass dein Movieplayer2-Code in reinem C Programmiert ist obwohl die datei movieplayer.cpp heißt.
2. Kannst Du mir sagen in welcher Enigma-Datei ich den AC3 Beispielcode finde? Ich werde da noch nicht ganz schlau daraus.

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

Re: MPEG abspielen ohne VLC

Beitrag von seife »

GetAway hat geschrieben:Fehler tritt auf, wenn man während des Films die rote Taste (Sprachauswahl->Stream) gedrückt hatte. :-?
ist jetzt hoffentlich gefixt.
Ist das "Puffern" auf der grünen Taste Absicht?
Ja, das war im alten MP auch so, nennt sich "resync", soll helfen, wenn der Ton und das Bild auseinanderlaufen. Dabei wird der audio-demux angehalten, ein Buffer-refill getriggert und dannd er audio-demux wieder gestartet. Allerdings scheint es nicht sonderlich nützlich zu sein, wenn nach dem Vorwärts/Rückwärts-Springen bei mir das Bild oder der Ton mal weg bleibt, dann hilft meistens nur einmal Pause und wieder starten, also gelb-gelb, was etwas mehr macht, als nur den audio-demux neu zu starten. Pause/Play triggert einen SOFTRESET was heisst, dass Audio- und Videodekoder und -demux angehalten, neu aufgesetzt und dann wieder gestartet werden, insofern ist das etwas "gründlicher" ;)
Nach 2 maligen Wechsel im Filebrowser in das jeweils übergeordnete
Verzeichnis, z.B von /hdd aus, verweilt er beim Puffern. Allerdings kommt
man mit Home wieder raus.
Ja, da wird dann versucht "/" abzuspielen, was im Einlesethread aber gleich einen Fehler "/ is a directory" gibt, welcher sich dann sofort beendet. Momentan kriegt der Ausgabethread aber nicht mit, wenn sich der Eingabethread verabschiedet (auch nach End-of-File bleibt der einfach stehen). Sollte nicht allzu schwer sein, evtl. ein globales EOF-Flag, was dann den Ausgabethread noch den Puffer leerspielen und sich dann beenden lässt. Oder so ähnlich. Ist momentan nicht schön, aber auch nicht hochprior ;)
seife hat geschrieben:Es sollte nicht allzu schwierig sein. Irgendwo da:

Code: Alles auswählen

                        case 0xbb:
                        case 0xbd: // TODO: AC3
                        case 0xbe:
musst du halt die AC3-Pakete rausfieseln.
Ich habe da mal was eingebaut, aber halt nicht getestet. Evtl. müsste man noch beim Wechseln auf AC3 die Puffer leeren (umschalten zwischen mpeg-Tonspuren dauert auch ein paar Sekunden, weil der Ausgabepuffer "leergespielt" werden muss), weil sonst vermutlich erst mal zum S/P-DIF die mpeg-Frames rausfallen, bis dann endlich AC3 rauskommt. Alternativ könnte man auch alle audiopids in den TS muxen und dann vom demux auswählen lassen, aber das würde den Platz im Ausgabepuffer verschwenden...
Jedenfalls würde ich AC3 momentan mit niedrig eingstellter Lautstärke testen, es kann gut sein, dass da momentan beim Umschalten erst mal nur Krach / Rauschen rauskommt.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

bellum hat geschrieben:1. Sehe ich das richtig, dass dein Movieplayer2-Code in reinem C Programmiert ist obwohl die datei movieplayer.cpp heißt.
So ziemlich. Die ganzen "interessanten" Sachen sind praktisch C, im ReadMPEGFileThread, der für dich interessant ist, wird praktisch kein C++-Konstrukt verwendet.
2. Kannst Du mir sagen in welcher Enigma-Datei ich den AC3 Beispielcode finde? Ich werde da noch nicht ganz schlau daraus.
enigma/lib/codecs/codecmpg.cpp Dort musst du insbesondere mitzählen, ob ich die richtige Anzahl Bits überspringe und an der Richtigen Stelle nach den Flags und IDs suche.
Wenn jemand MPEG-Spezifikationen rumliegen hat, wär das auch hilfreich ;), auf die Schnelle habe ich nichts gefunden.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: MPEG abspielen ohne VLC

Beitrag von GetAway »

seife hat geschrieben:
GetAway hat geschrieben: Fehler tritt auf, wenn man während des Films die rote Taste (Sprachauswahl->Stream) gedrückt hatte. :-?
ist jetzt hoffentlich gefixt.
Funktioniert jetzt. :)
GetAway hat geschrieben:Beim Spielen mit der FB plötzlich keine bedienung mehr, erst nach Ende des Films
gings wieder.
Das passiert nach dem drücken der blauen Taste, während ein Film läuft.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

GetAway hat geschrieben:
GetAway hat geschrieben:Beim Spielen mit der FB plötzlich keine bedienung mehr, erst nach Ende des Films
gings wieder.
Das passiert nach dem drücken der blauen Taste, während ein Film läuft.
Ok. Blau ist irgendwas mit bookmarks, das ist für lokale Files nicht implementiert und versucht sich mit dem VLC zu verbinden... vermutlich ohne Timeout oder so. Fixe ich bei Gelegenheit mal...
Ob das mit VLC noch funktioniert ist auch fraglich. Sind Bookmarks denn ein nützliches Feature? Habe ich noch nie benutzt. Einzig ein "merke dir die letzte Position und mach dort weiter" kann ich mir als nützlich vorstellen...
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: MPEG abspielen ohne VLC

Beitrag von GetAway »

seife hat geschrieben:Sind Bookmarks denn ein nützliches Feature? Habe ich noch nie benutzt. Einzig ein "merke dir die letzte Position und mach dort weiter" kann ich mir als nützlich vorstellen...
Für den ein oder anderen sind solche Feature sicherlich sinnvoll. Persönlich nutze ich sie aber auch net.
Vielleicht solltest du allgemein mal nach Features fragen oder besser, was soll nicht rein, dann wird die
Liste evtl. nicht so lang. :wink:
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: MPEG abspielen ohne VLC

Beitrag von seife »

Ich mach einfach alles weg, was ich nicht brauche und schaue dann, ob sich jemand beschwert ;)
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: MPEG abspielen ohne VLC

Beitrag von bellum »

seife hat geschrieben:
bellum hat geschrieben:2. Kannst Du mir sagen in welcher Enigma-Datei ich den AC3 Beispielcode finde? Ich werde da noch nicht ganz schlau daraus.
enigma/lib/codecs/codecmpg.cpp Dort musst du insbesondere mitzählen, ob ich die richtige Anzahl Bits überspringe und an der Richtigen Stelle nach den Flags und IDs suche.
Wenn jemand MPEG-Spezifikationen rumliegen hat, wär das auch hilfreich ;), auf die Schnelle habe ich nichts gefunden.
Danke, habs jetzt gefunden, aber da wäre ich nie drauf gekommen...
Werde das ganze auf jeden Fall ausprobieren, kann aber etwas dauern, da ich derzeit mein YADD kaputtgespielt habe und ich momentan noch nicht dazugekommen bin das wieder zu richten.
seife hat geschrieben:Ich mach einfach alles weg, was ich nicht brauche und schaue dann, ob sich jemand beschwert.
Ich habe ja schon bemerkt das das auch die VLC Unterstützung betreffen könnte, daher die Bitte die VLC Unterstützung nicht zu entfernen, da ich das auch recht häufig nutze.

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

Re: MPEG abspielen ohne VLC

Beitrag von seife »

zum VLC: es müsste sich halt jemand finden, der es maintained oder zumindest testet ;)
Im Prinzip will ich das so abstrahieren, dass alles VLC-spezifische im receiveStreamThread, alles MPEG-Spezifische im readMPEGFileThread und alles TS-Spezifische im readTSFileThread ist. Dann wird es auch unwahrscheinlich, dass man mit "kosmetischen Fixes" etwas kaputt macht.

Naja, andererseits spielt es so, wie es jetzt ist, auch schon ab... ;)
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: MPEG abspielen ohne VLC

Beitrag von bellum »

seife hat geschrieben:zum VLC: es müsste sich halt jemand finden, der es maintained oder zumindest testet ;)
Im Prinzip will ich das so abstrahieren, dass alles VLC-spezifische im receiveStreamThread, alles MPEG-Spezifische im readMPEGFileThread und alles TS-Spezifische im readTSFileThread ist. Dann wird es auch unwahrscheinlich, dass man mit "kosmetischen Fixes" etwas kaputt macht.

Naja, andererseits spielt es so, wie es jetzt ist, auch schon ab... ;)
Mach ruhig wie Du denkst, solange es nicht komplett herausfällt. Zumindest das mit dem Testen kann und werde ich gerne machen sobald mit meinem YADD wieder alles läuft.

Gruß bellum
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: MPEG abspielen ohne VLC

Beitrag von mb405 »

@seife
evtl. solltest du den movieplayer2 zusätzlich zum normalen movieplayer starten können. etwa CMoviePlayerGui2 oder so
dann würden auch bestimmt mehrere testen.
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Re: MPEG abspielen ohne VLC

Beitrag von dietmarw »

mb405 hat geschrieben: evtl. solltest du den movieplayer2 zusätzlich zum normalen movieplayer starten können. etwa CMoviePlayerGui2 oder so
dann würden auch bestimmt mehrere testen.
dafür,
hatte ich auch schon gedacht..
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: MPEG abspielen ohne VLC

Beitrag von bellum »

EDIT: Vorherigen geposteten Fehler gefunden und beseitigt...

So, habe nun wieder ein funktionsfähiges YADD mit dem neuen Movieplayer :D
Ein Kurztest ergab aber, dass immer nur der Stereo Ton ausgegeben wird egal welche Spur selektiert wird.
Werde mir das morgen mal genauer anschauen...

Gruß bellum
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: MPEG abspielen ohne VLC

Beitrag von bellum »

bellum hat geschrieben:EDIT: Vorherigen geposteten Fehler gefunden und beseitigt...

So, habe nun wieder ein funktionsfähiges YADD mit dem neuen Movieplayer :D
So nach einigen klimmzügen habe ich den neuen Movieplayer im Zusammenspiel mit AC3 testen können und um es etwas vorwegzunehmen es funktioniert erstaunlich gut - das reine Abspielen sogar besser als beim alten Movieplayer.

Doch der Reihe nach...
Hier mein Testsetup
- Sagem dbox Kabel 1x
- Sony STR-DB780
- ucode_0014 (bulit-in)
- movieplayer2.cpp V 1.6

Es war erstaunlich schwierig erst einmal an die AC3 Spur zu kommen, da dies derzeit nur im laufenden Film mit der roten Taste möglich ist. Dummerweise hat der normalerweise von mir verwendete avia600vb022 den Bug dass er dabei die dbox zum Stillstand bringt, deshalb habe ich alles mit dem avia600vb028 getestet. Damit konnte ich auch die AC3 Tonspur problemlos anwählen und abspielen. Während des Umschaltens hört man auch keine Knarz-Geräusche. Wenn man das öfters hintereinander mach hängt er ab und an in einer "Puffern"-Schleife (aber wer wechselt schon mehrmals hintereinander die Tonspur).

Die "Puffern"-Schleife erhalte ich manchmal auch wenn ich im AC3 Modus mit gelb den Film anhalte und wieder starte. Dann hilft nur noch der Abbruch mit "Home".

Das Spulen ist ebenfalls etwas hakelig und öfters mit einer "Puffern"-Schleife verbunden aber ich habe schon gesehen, dass es im CVS die Version 1.7 gibt in der das Spulen verbessert worden sein soll.

Insgesammt bin ich aber recht zufrieden, das funktioniert alles schon sehr gut, Well Done!

Was ich mir für eine nächste Version wünschen würde:
- Beim Starten des Films mit mehreren Tonspuren eine Dialogbox zur Auswahl der Tonspur wie beim alten Movieplayer, dann kann ich auch mal mit dem avia600vb022 testen.
- Änderung der Tastenbelegung, die ist komplett unterschiedlich zum alten Movieplayer:
............alt --- neu
blau = Bookmarks --- unbelegt (habe ich aber auch noch nie benutzt)
gelb = Pause --- Pause
grün = Audio-Spuren --- Resync
rot = ?unbelegt? --- Audio-Spuren
2 = Anfang --- unbelegt
8 = Ende --- unbelegt
5 = Direkter-Sprung --- unbelegt
0 = Resync --- unbelegt

Ich hoffe mit meinem Test etwas beigetragen zu haben und werde mich jetzt als nächstes an V 1.7 und VLC machen...

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

Re: MPEG abspielen ohne VLC

Beitrag von seife »

Die Tastenbelegung ist tatsächlich - bis auf die Rote "audiokanal wechseln"-Taste dieselbe wie im alten Movieplayer - allerdings wie im VLC-Player, nicht im TS-Player. Das waren praktisch 2 verschiedene Programme.
Ich bin da aber für Vorschläge offen - wer eine Idee für ein ordentliches Bedienkonzept hat - immer her damit, das ist relativ einfach zu ändern.

Das mit der Roten Taste - und mit dem Auswählen der Tonspuren beim startup muss ich mir überlegen, denn das war in der alten playerroutine überhaupt nicht drin - VLC sendete einfach immer nur einen Ton.
Da muss ich mir was überlegen.

Generell will ich beim movieplayer2 nicht ganz so ein Durcheinander, deswegen fällt die einfache Lösung "audiospur auswählen direkt im einlesethread triggern" aus, ich will eigentlich user-interaktion nur an einer Stelle haben.

Die "Puffern"-Schleifen sollten hoffentlich mit der letzten Version besser geworden sein.
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: MPEG abspielen ohne VLC

Beitrag von bellum »

seife hat geschrieben:Die Tastenbelegung ist tatsächlich - bis auf die Rote "audiokanal wechseln"-Taste dieselbe wie im alten Movieplayer - allerdings wie im VLC-Player, nicht im TS-Player. Das waren praktisch 2 verschiedene Programme.
Ich bin da aber für Vorschläge offen - wer eine Idee für ein ordentliches Bedienkonzept hat - immer her damit, das ist relativ einfach zu ändern.
Zumindest für "Audiokanal wechseln" würde ich Grün vorschlagen, das ist im normalen Fernsehbetrieb auch so.
An die Tasten 2, 8 und 0 habe ich mich halt einfach gewöhnt, da der Movieplayer bei mir täglich läuft. Andere Benutzer evtl. auch? TS spielt man ja eher ab als VLC...
seife hat geschrieben:Das mit der Roten Taste - und mit dem Auswählen der Tonspuren beim startup muss ich mir überlegen, denn das war in der alten playerroutine überhaupt nicht drin - VLC sendete einfach immer nur einen Ton.
Da muss ich mir was überlegen.
Wo müsste man das denn Hard-Coden, damit immer der AC3 Ton abgespielt wird. Ich habe zwar #IFDEFs gefunden, die das machen sollen, funktioniert hat es aber nicht
seife hat geschrieben:Die "Puffern"-Schleifen sollten hoffentlich mit der letzten Version besser geworden sein.
Schauen wir mal... :wink:

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

Re: MPEG abspielen ohne VLC

Beitrag von seife »

bellum hat geschrieben:Wo müsste man das denn Hard-Coden, damit immer der AC3 Ton abgespielt wird.
Für MPEGs: um Zeile 1196 rum, entweder mit 0x20 statt 0 anfangen in der Schleife (die AC3 IDs werden auf 0x20-0x27 gemapped, die MPEG IDs auf 0-0x1F) oder halt schauen if g_ac3flags[j] ungleich 0 ist, vor die ID ausgewählt wird.
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: MPEG abspielen ohne VLC

Beitrag von bellum »

seife hat geschrieben:
bellum hat geschrieben:Wo müsste man das denn Hard-Coden, damit immer der AC3 Ton abgespielt wird.
Für MPEGs: um Zeile 1196 rum, entweder mit 0x20 statt 0 anfangen in der Schleife (die AC3 IDs werden auf 0x20-0x27 gemapped, die MPEG IDs auf 0-0x1F) oder halt schauen if g_ac3flags[j] ungleich 0 ist, vor die ID ausgewählt wird.
Ich teste immer mit TS Files... Ich habe auch mal den ganzen Code mit printf durchzogen und gemerkt, dass bei all meinen Tests die Funktion ReadMPEGFileThread gar nicht aufgerufen wird. Wie dann allerdings AC3 funktioniert ist mir schleierhaft aber vielleicht war es auch keine so gute Idee gerade mit dem Movieplayer in die dbox Programmierung einsteigen zu wollen... Jedenfalls habe ich es immer noch nicht geschafft die AC3-Spur als Standardspur auszuwählen.

Was mir mit V 1.7 sonst noch aufgefallen ist.
- Der Anfang eines TS-Files wird "schlechter" erkannt als bei V 1.6, sowohl bei PCM als auch AC3. Da kommt häufig eine "Puffern"-Schleife bevor es losgeht.
- Spulen geht bei PCM wirklich gut, bei AC3 kommt häufig eine "Puffern"-Schleife und danach kommt ab und an nur das Bild ohne Ton, den ich aber durch die Taste GRÜN wieder bekomme.
- VLC funktioniert so gut bzw. so schlecht wie vorher, da hat sich nicht viel geändert, außer dass der Fortschrittsbalken nicht mehr funktioniert (was wohl eher ein kosmetisches Problem ist). Spulen in kleinen Schritten kommt mir etwas besser vor.

Bin schon gespannt auf die nächste Version. Solange ich jedoch den neuen Movieplayer nicht mit meinem normalen avia600-Treiber nutzen kann kann ich ihn leider nicht "Produktiv" testen...

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

Re: MPEG abspielen ohne VLC

Beitrag von seife »

bellum hat geschrieben:Ich teste immer mit TS Files... Ich habe auch mal den ganzen Code mit printf durchzogen und gemerkt, dass bei all meinen Tests die Funktion ReadMPEGFileThread gar nicht aufgerufen wird. Wie dann allerdings AC3 funktioniert ist mir schleierhaft aber vielleicht war es auch keine so gute Idee gerade mit dem Movieplayer in die dbox Programmierung einsteigen zu wollen... Jedenfalls habe ich es immer noch nicht geschafft die AC3-Spur als Standardspur auszuwählen.
Zeile 895, nicht g_apids[0] nehmen, sondern in einer Schleife die erste Spur, wo g_ac3flags[x] != 0 ist suchen.
Was mir mit V 1.7 sonst noch aufgefallen ist.
- Der Anfang eines TS-Files wird "schlechter" erkannt als bei V 1.6, sowohl bei PCM als auch AC3. Da kommt häufig eine "Puffern"-Schleife bevor es losgeht.
Das hat vermutlich wenig mit dem "erkennen" zu tun, evtl. wurde vorher die buffeingbox nur nicht eingeblendet. "Schleife" heisst, dass sie nicht von allein aufhört?
- Spulen geht bei PCM wirklich gut, bei AC3 kommt häufig eine "Puffern"-Schleife und danach kommt ab und an nur das Bild ohne Ton, den ich aber durch die Taste GRÜN wieder bekomme.
hm, das schein ein demux-Problem zu sein, da GRÜN im prinzip nichts anderes macht als

Code: Alles auswählen

ioctl(dmxa, DMX_STOP);
ioctl(dmxa, DMX_START);
Da nach dem Spulen aber sowieso schon ein SOFTRESET gemacht wird, der wesentlich "intensiver" ist (ab Zeile 1915) weiss ich nicht, warum AC3 da nochmals ein stop/start benötigt.
Du kannst ja mal versuchen, ob ein so eine stop/start-sequenz am Ende des SOFTRESET (Zeile 1938) was bringt, aber ich glaube es ehrlich gesagt nicht.
- VLC funktioniert so gut bzw. so schlecht wie vorher, da hat sich nicht viel geändert,
Na das ist ja schon mal etwas ;)