Audio Selection Plus Plugin

  • Hi !


    Ich habe nachdem mit die Audio Selection wie sie derzeit im enigma2 implementiert ist nicht benutzerfreundlich genug ist ein paar Enhancements dazu programmiert und in ein Audio Selection Plus Plugin gepackt.


    Eine der Verbesserungen ist das man bevorzugte Sprachen angeben kann die entweder beim Betreten der Audioselection vorausgewählt und auch gleich gespielt wird damit man nur mehr Ok drücken muss, oder auch beim Zappen automatisch ausgewählt werden können.


    In der Audio selection geht das automatisch Track suchen und auswählen und abspielen wunderbar mit dem Track select aus dem python, ABER wenn ich das selbe beim Zappen mache dann geht das BÖSE aus, entweder der Ton bleibt stumm (auch bei neuerlichem manuellen Umschalten auf andere Audiospur) oder das Bild bleibt weg und der Ton läuft allein.


    Auch ein sofortiges service restart nach der Track Auswahl mit force hilft da nur begrenzt (Bild kommt dann fast immer aber Ton bleibt oft trotzdem stumm), nur mit pause/Play oder 2x powertaste in standby und wieder raus spielt die box wieder richtig ab, aber das kann ja nicht die Lösung sein :frowning_face:


    Insofern scheint das Audio Handling wenn der Sender gerade erst gezapped wurde was das angeht ziemlich verbugged zu sein, insbesonders wenn der Chip noch beim syncen des Senders ist. Das kann man auch von hand simulieren wenn man zapped und sofort Audio und eine Zahl für eine Tonspur drückt.


    Auch die übliche Workarounds ähnlich wie im Audio reset plugin das ac3 enablet/disabelt um Audio zu resetten helfen da nicht wenn das Bild dadurch trotzdem grundlos dunkel bleibt.


    Kann sich das mal wer ansehen oder Feedback dazu geben ob/wie man das im python 'sauber' machen kann, weil sekundenlang zu warten und erstmal andere Sprache zu hören und dann erst umzuschalten ist nicht wirklich schön.


    Im Moment macht mein code einen event handler ob sich die Service Info ändert und startet dann einen Timer Thread der dann nach einer Sekunde (dann ist die Audio Track info immer schon komplett) die Wunschspur raussucht um umschaltet - mit oben beschriebenem Ergebnis. Der selbe Code im Audio Selection menu geht zu 100% wenn man nichht gleich nach dem Zappen Audio aufruft.


    LG
    gutemine

    5 Mal editiert, zuletzt von Lost in Translation ()

  • Schön das Ihr findet das es eine super Sache wäre, aber wie gesagt das Verhalten beim automatischer Umschaltung harrt noch einer Lösung, weswegen ich ja hier im Developer Bereich gepostet habe mit der Bitte um Hilfe warum die vorgesehenen Routinen die im Audio Selection Screen wunderbar funktionieren so fatale Ergebnisse produzieren wenn der Sender gerade erst angezappt wurde.


    und die Spurumschaltung ist eigentlich der Grund warum ich mit das überhaupt angeschaut habe, weil ich für das Daredevil Projekt die Möglichkeit brauche automatisch die Tonspur mit AudioDescription auszuwählen, und solche Sendungen sind so selten dass das derzeitige Tonspur merken praktisch nutzlos ist.


    Ob es mit Aufnahmen und nicht ts Files oder DVDs überhaupt funktioniert weis ich noch gar nicht, aber solange die normale Audio Taste greift denke ich schon.


    Ausserdem sind es auch andere kleine Enhancements die das Leben erleichter, weil wie gesagt die Bedienung ist einfach nicht wirklich durchdacht.


    Hier die derzeitige Feature Liste vom AudioSelection Plus, und meines Erachtens sollte das meiste davon eigentlich im Standard verfügbar sein und nicht über ein Plugin nachgerüstet werden müssen, weil oft sind das nur wenige Codezeilen gewesen:


    Was sind die Verbesserungen/Änderungen:


    1)


    wenn man mit den Zahltasten die Audio Spur auswählt fliegt man aus der
    Audio Selection raus, was extrem ärgerlich ist wenn man die Sprachen
    ausprobieren will weil man immer wieder aufs Neue Audio und die nächste
    Nummer drücken muss.


    Ich habe ein Einstellung reingemacht wo man auf Zahlenauswahl exit oder
    zappen sagen kann, bei exit bleibt es wie es ist aber bei zappen wird
    DIREKT in der Audio Selection umgeschaltet und man hört sofort den
    entsprechenden Ton.


    2)


    Die Audio Taste ist in der Audio selection funktionslos (mit 2x Audio
    kommt man nicht eimal wieder raus), dabei wird bei den meisten billigen
    receivern einfach durch Merhfachdrücken von Audio zwischen den Spuren
    umgeschaltet. Ich habe ein Einstellung reingemacht mit der man sagen
    kann ob sich im Plugin auf Audio nichts tun soll (so wie jetzt) man das
    Audio Selection menu so wie mit Ok wieder verlassen kann oder was mir am
    besten gefällt man dann im Kreis zwischen den Audiospuren umschalten
    kann und diese werden so wie bei 1 ohne verlassen des Plugins sofort
    aktiviert. Und neu gibt es jetzt auch select, damit kann
    man manuell die Tonspur nach den Suchkriterien auswählen lassen.


    3)


    Die Audio selection merkt sich zwar welche Tonspur man auf welchen Kanal
    zuletzt ausgewählt hat, aber wenn Audiospuren mal da sind oder nicht
    ist das wenig hilfreich. Ich habe daher eine bevorzugte Sprache 1-6 in
    diie Einstellungen des Plugins gemacht wo man auch noch die Möglichkeit
    hat Dolby oder Audiodescription als Lieblinssprache einstellen zu
    können.


    4)


    Punkt 3 gibt es in 2 Variante die man einzeln oder auch zusammen
    verwenden kann - beim Betreten der Audio Selection mit der Audio taste
    oder beim Zappen oder neuer Sendung automatisch nach einstellbar 1-10
    Sekunden


    5)


    Auf Menu in der Audio Selection und bei Setup System im Menu gibt es jetzt die ganzen Einstellungen 1-4


    6)


    Man kann auswählen ob alle verfügbaren Tonspuren durchsucht werden, oder
    nur die MPEG bzw. nur die AC3 Tonspuren (je nachdem wie die Box für die
    Tonausgabe angeschlossen ist).


    7)


    Die Sprachen die man auswählen kann werden aus den installierten
    Sprachen ausgelesen und um ein paar zusätzliche Auswahlmöglichkeiten
    ergänzt. Wem das nicht reicht der kann auf
    /usr/lib/enigma2/python/Plugins/Extensions/AudioSelectionPlus ein
    asp.conf File mit Zeilen für weitere Auswahlmöglichkeiten anlegen.


    8 ) mit der Taste TEXT kann man jetzt im normalen AudioSelection Menu auch
    noch den text der gerade ausgewählt ist in die asp.conf Favouriten
    hinzufügen und ggf. auch noch vorher editieren. Auf Gelb in den
    Einstellungen kann man sich auch die aktuelle asp.conf anzeigen lasssen,
    und nicht vergewssen neue Einträge sind erst nach enigma2 restart als
    Favoriten Tonspur auswählbar.



    9) wenn man auf /etc/enigma2 eine asp.conf macht wird diese vom Plugin genommen und auch beim Updaten nicht mehr ersetzt.


    LG
    gutemine

    8 Mal editiert, zuletzt von Lost in Translation ()

  • Kleiner Nachtrag:


    Nachdem das Track Umschalten im closed source enigma2 C++ Teil oder im gstgreamer erfolgt kann ich wenn die Track selection python routine sich so beim Zappen so fatal auswirkt relativ wenig machen, ausser eben jammern :frowning_face:


    Und nein, ich mag NICHT 5 Sekunden warten bis sich der Decoder beruhight hat, weil die richtigen nachem der Tonspur sind bereits nach < 1-2 sec verfügbar, wenn man das erste mal hinzapped und wenn man das zweite mal hinzapped sind sie sogar gechached.


    Es ist ja übrigens schon fatal wenn ich die bereits AKTIVE Tonspur nochmals auswählt, und das ist nicht so toll ...


    Und außerdem sitzt mein callback sowieso auf dem info event, womit bei jeder erkannten/veränderten Tonspur neu gesucht und umgeschaltet wird, sprich wenn was besseres auftaucht wird es dann auch genommen. Ich kriege z.b. Anfangs nur Deutsch, dann habe ich plötzlich wieder Info Event und Englisch ist da und dann kommt oft ein Dritter event und dann erst ist Dolby auch da und richtig benannt.


    Also ist die Tonspurerkennung nicht das Problem, weil die dauert auch nicht länger als die 1-2 sekunde bis das Bild am TV synchron ist und aber es reicht auch dann nicht wenn man noch eine Sekunde warten bis man umschaltet - aber 5 sekunden warten wären lächerlich wenn nach 2 schon Ton und Bild komplett da sind und alle Tonspuren auch bereits richtig benannt das man auch was sinnvolles machen/umschalten könnte ohne das enigma2 im Wald steht und gleich stumm schaltet oder das Bild schwarz wird.


    Aber wenn es keine bessere Lösung gibt mache ich halt die delay Zeit einstellbar und Ihr testet selber aus wie weit man es runter drehen kann bevor die komischen Sachen passieren - nur wie gesagt ist die Zeit deutlich größer als sie meines Erachtens technisch sein müsste.

    6 Mal editiert, zuletzt von Lost in Translation ()

  • wenn dann poste ich gleich das ganze ipk, weil ich auch gerne Feedback zu den anderen Sachen hätte, weil es mir ja an der Usability liegt.


    Es ist doch idiotisch das ich aus der Audio selection immer rausfliege wenn ich die Spuren probehören will, jeder Billigstreceiver schaltet das sofort um, und das lies sich ganz leicht einbauen, man muss nur in der kyOk einen zusätzlichen Parameter exit=True optional reinmachen und nur wenn der nicht auf False gesetzt wird passiert das close, etc.


    Und im Prinzip ist der Code ja so wie ich geschrieben habe - du klaust die routine aus der Audioselection die die Audio liste befüllt, hängst dich auf den Event wenn sich die Sender info ändert, dann machst du timer routine die 1 sekunde später damit dir die Audio Liste erstellt und dort machst du ein find drauf mit deiner Wunschsprache bis du die richtige gefunden hast und dann verwende ich die Tonspur Select routine wie in der normalen Audio Selection um diese zu setzen. In der Audio Selection selbst machst du das selbe in eine onShow routine, und dort geht das erste Sahne das dir sofort beim betreten der Audio Selection die Wunschssprache ausgewählt wird und natürlich ohne close auch gleich umschaltet und spielt.


    Ich werde jetzt halt statt der 1 sekunde einen Einstellparameter switching delay machen und dort Default 5 Sekunden, dann funktioniert es natürlich genauso gut wie wenn ich den selben Code in der Audio selektion auf explizite Audio Taste mache, aber das ist eben mehr als das doppelte dessen was meines Erachtens nötig ist.


    PS: Und was ich noch vergessen habe - die 7020hd ist was das angeht nicht so schlimm wie die 8000er, aber das dürfte auch daran liegen das sie schneller zappt - insofern liegt es auch an Treibern und Chip wo man/ich aber wenig tun kann.

    Einmal editiert, zuletzt von Lost in Translation ()

  • kein Problem - aber ich bin unterwegs und kann derzeit nicht auf meine Box, deswegen wollte ich in der Zwischenzeit ja klären ob ich oder das enigma2 zu blöde sind :smiling_face:


    Aber wenn du schon der einzige bist der helfen will noch eine Frage zum Merlin - dort gibt es ja die Möglichkeit unbenutzte Sprachen zu deinstallieren, was liefert denn dann das language aus der language.py zurück ?


    Weil im Moment befülle ich die Auswahlvariabeln einfach mit den Sprachen von dort und prüfe die Audiliste mit dem ausgewählten im Original und übersetzt, also English und Englisch wenn die Box auf Deutsch steht, und die Sachen die es noch als Audiospur bezeichnung gibt die Audiodescription und Dolby hänge ich noch manuell zusätzlich an die Liste an.


    Wenn Ihr hier also Postet welche Audio beschriebungen die NICHT sprachen sind Ihr noch braucht kann ich das auch gleich in die erste Version machen.


    Weil wie richtig geschrieben sind die Sender teilweise recht kreativ bei den Bezeichnungen und ich bin wie üblich faul und lasse Euch die wichtigsten raussuchen :smiling_face:

  • Zitat


    [...]noch eine Frage zum Merlin - dort gibt es ja die Möglichkeit unbenutzte Sprachen zu deinstallieren, was liefert denn dann das language aus der language.py zurück ?[...]


    Die Frage verstehe ich nicht :smiling_face:

  • eines nach dem anderen, und so viele sind das eh nicht was man üblich braucht. Und zuerst muss mal das schalten funktionieren, nachdem eh nur texte in texten gesucht werden ist das schnell angepasst/erweitert.


    @Dr. Best


    Wenn du alles sprachen ausser Deutsch und Englisch deinstaliert hast was liefert wenn du print language machst für eine Liste - trotzdem alle Sprachen oder nur die installierten ?

  • this will never be perfect while it's implemented outside of Enigma2(python, bash or whatever)
    yes configuration/store(GUI) what track titles must be preferred can be implement in Python
    but reordering of Audio Tracks must be done when read PMT and then shown in list already sorted in preferred order,
    then we will not lose option remeber last used track
    (Subtitles; EPG same way)


    i have already done this in bash - works, but box becomes freezy
    and switching must be done with delay cause have to wait when web-if can show info about new service
    Change AudioTrack by Language Priority
    Automated audio and subtitles selection

    • Offizieller Beitrag

    Ah, eine Anmerkung:
    Ich habe alle "super", "toll" und sonstige Bekundungen, die nix mit dem eigentlichen Thema zu tun haben gelöscht, damit das hier nicht in Grundsatzdiskussionen ausartet, sondern am technischen Thema bleibt.
    Gutemine hat recht, hier ist der Entwicklungsbereich!

    Grüße,
    Olove

    "All we need to do ... is keep talking (Stephen Hawking)"


    Ich leiste KEINEN Support per PN/E-Mail, derartige Anfragen werden nicht beantwortet.
    I won't give support via PN/E-Mail and I won't answer such messages.

  • Naj ja umordnen muss man die Spuren nicht weil das verbiegt noch mehr, es geht rein ums selektieren, und ja das mit dem Delay habe ich jetzt schon verstanden, nur eben nicht warum der so groß sein muss.


    Aber mal sehen, am Wochenende könnt Ihr gerne damit herumspielen und sagen wie man es besser machen kann :smiling_face:

  • Also am Delay alleine liegt das nicht, ich habe jetzt alle möglichen codevarianten reingemacht und kommentiert und an Dr. Best geschickt, damit er sieht das es im AudioSelection Screen geht und beim Zappen nicht.


    Scheinbar verwirren schon die Abfragen der Tonspur aus dem durch dden InfoEvent getriggerten Thread das enigma2, weil selbst wenn man dann gar nicht die Tonspur umschaltet weil eh die richtige schon eingestellt ist hängt sich Ton/Bild gerne auf.


    LG


    gutemine

  • Also ich denek jetzt habe ich allein alle Problemem gelöst, und ja es geht jetzt auch mit nur 1 Sekunden delay, also noch während das Bild und Ton sich synchronisieren.


    Wir testen das jetzt noch ein bisschen in kleinem Kreis, dann könnt Ihr im Laufe des Wochenendes noch damit spielen ... woanders.


    LG
    gutemine

  • Finds wirklich klasse was du da machst, hab mir sowas schon lange gewünscht, da man ja nach jedem suchlauf(mit löschen) wieder alle tonspuren manuell ändern muss.
    Nur mal als kleine anmerkung...Die meisten englischen tonspuren heißen nicht "english", sondern "qaa", "dos", "ori" usw..
    Wäre also schön wenn man das selbst leicht in der *.py erweitern könnte, oder, wie schon erwähnt, ne list anlegen könnte.

  • @gutemine
    have you opened links which i post above?


    please don't make configure list of the preferred tracks several steps deep in menus
    and list values don't limit by values predefined in code


    it must bee accessible directly under `Select audio track` menu, by just two new options:
    1. `Add current Track title to prio list` - what adds selected tile to end of the prio list
    2. `Change order of the preferred tracks` - calls some menu something similar as `Menu Sort` plugin, with options change order and delete
    in case colored RC keys already busy, but other keys can't invite to which add this options can suggest add them both on call {Menu/Dream} key

  • Ich habe das Audio Selection Plus Plugin jetzt bei OoZoon hochgeladen. Support und damit auch Verbesserungen gibt es aber NUR dort.


    Und ja in einer asp.conf kann man sich auch seine eigene Tonspuren definieren, und NEIN ich ändere NICHT die Reihenfolge im Audio Menus, das ist NUR eine Preselection so wie es sich gehört, weil so kann man es auch problemlos im Python machen.


    Und ja, wenn man in der AudoSelection Menu drückt kommt man direkt in die Einstellungen des Plugins, aber es ist auch im Setup Menu zu finden weil man es auch ganz normal enablend und disabeln kann ob es auf der Audio Taste die derzeitige Audio Selection ersetzen soll. Wenn man disabelt ist das Plus Menu im Setup aber trotzdem noch auf Gelb aufrufbar und die Preselection beim Zappen geht auch trotzdem wenn man sie aufdreht.


    Aber viele der Enhancements wie ob man beim Drücken der Zahlentasten umschalten oder die AudioSelection verlassen soll oder ob man im Audio Menu mit der Audio taste umschalten kann sind meines Erachtens Dinge die so in den Enigma2 Standard gehören würden, daher war ich auch so frei die ganze AudioSelection class zu ersetzen obwohl eigentlich nur ganz wenige Codezeilen nötig sind wie eine zusätzliches optionales exit Argument beim keyOk, etc.


    LG
    gutemine

    2 Mal editiert, zuletzt von Lost in Translation ()

  • Ein paar Leute haben es schon vorab getestet, ich denke es wir Euch gefallen :smiling_face:


    Vor allem ist es erschreckend wie einfach das eigentlich geht, warum dann ich das machen musste und warum es Jahre gedauert hat bis überhaupt jemand es gemacht hat.


    Netto wenn ich nicht so blöde wäre das ich fast einen Tag gebraucht habe bis ich den ganzen Code verstanden hatte und was man besser nicht macht wäre das für einen ordentlichen Entwickler in 1h zu machen gewesen.


    Und nachdem es in Python gemacht wurde wird es in kürze auch auf den ganzen Mitbewerberboxen auftauchen, aber was solls, die Chance es schöner und besser im C++ Teil zu machen hat DMM halt erstmals verpasst.


    LG
    gutemine