softdevice-plugin: ac3 problem immer pcm device

  • Nach langer zeit funktionniert ac3 bei mir aber nur teils.


    wenn ich vdr aufrufe mit: -ao alsa:pcm=demixer# bekomme ich supi ac3 ton auf meinen lautsprechern, jedoch kann er bei stereo nix ausgeben klar.


    nun rufe ich vdr auf mit: -ao alsa:pcm=default#ac3=dmixer#


    bei stereo ton klappt das auch, aber bei ac3 nicht da sagt er immer 6 channels aber gibt es auf das default device aus :(


    Ps. bleibt noch zu sagen dass ich den ac3-analog patch von (http://vdr-portal.de/board/thread.php?threadid=58304&hilight=alsa+pcm+default+ac3) verwende


    Hier ein bsp. zuerst wähle ich stereo ton aus und dann ac3:



    wäre sehr dankbar wenn mir jemand helfen könnte wenn das klappt ist mein vdr "fast" komplett :)

  • Mit ac3=name wird der Gerätenamen angegeben, über den AC3-SPDIF an das externe AC3-Equipment weitergegeben wird.
    Über das OSD von softdevice wird entschieden was mit dem AC3 Ton gemacht wird:


    5.1 S/P-DIF - geht an externen Dekoder
    5.1 Analog (2CH) - Stereo downmox von ffmpeg (falls möglich)
    5.1 Analog (4CH) - 4-Kanal downmix (falls möglch)
    5.1 Analog (6CH) - 6-Kanal analog (falls möglich)


    Dein Versuch mit "-ao alsa:pcm=default" sollte eigentlich funktionieren, wenn 6CH gewählt ist.


    Stefan

  • mm ok danke dann war ich auf der falschen spur :(


    aber wie weiss ALSA denn jetzt ob es stereo oder 5.1 ausgeben soll?
    hast du vlt. eine .asoundrc datei die funktionniert?


    habe in meiner folgendes stehen:



    wenn ich vdr aufrufe mit "-ao alsa:pcm=dmixer" kommt auch 5.1 und die bindings sind auch richtig, allerdings geht ja dann kein stereo ton mehr..


    danke

  • mm,


    also die vorderen kanäle sind bei stereo und 5.1 anders belegt.


    Wo werden in softdevice sources die kanalzuweisungen gemacht?
    dann könnte ich vlt in den sources die zuordnung ändern.


    denn wenn in bindings in meiner asoundrc für stereo stimmen stimmen sie füR 5.1 nicht mehr un umgedreht...


    Sven

  • Zitat

    Original von pimboli
    Wo werden in softdevice sources die kanalzuweisungen gemacht?


    Da wird im Moment (noch) nichts besonderes gemacht. Die Daten werden einfach an das Ausgabedevice weitergereicht.


    Zitat


    denn wenn in bindings in meiner asoundrc für stereo stimmen stimmen sie füR 5.1 nicht mehr un umgedreht...


    Das mit dem "Mappen" und "Mixen" ist m.E ja auch nur ein Workaraound, da die tatsächliche Hardwarevielfalt nicht mehr in den Treibern abbildbar ist.
    Nungut.
    Damit sieht es so aus, als wenn wir für unterschiedliche Channelcounts, jeweils einen separaten Ausgabedevicename bräuchten.




    Stefan

  • ja das wäre glaub ich die beste möglichkeit wenn man 2 getrennte ausgabedevicenamen hätte,


    also sowas wie: "-ao alsa:pcm=default#ac3analog=51surround"


    ist sowas schwehr zu implementieren?


    besteht die hoffnung das dies vlt in einer der nächsten versionen hinzugefügt wird?


    Sven

  • Zitat

    Original von pimboli
    also sowas wie: "-ao alsa:pcm=default#ac3analog=51surround"


    So was in der Art. audio-alsa.c, Zeile 290:


    Man versucht einen Devicenamen entsprechend der Anzahl der Kanäle zu öffnen. Falls das schief geht verwendet man den angegeben pcm Namen.


    Code
    char *ch_dev_name = NULL;
    asprintf (&ch_dev_name, "CH%d", currContext.channels);
    if ((err = snd_pcm_open(&handle, ch_dev_name, SND_PCM_STREAM_PLAYBACK, 0)) < 0 &&
    ..

    Das erfordert natürlich für alle Kanalmöglichkeiten eine Definition für alsa.


    Stefan

  • mm,


    müsste ja dann so aussehen oder?



    meine C kenntnisse sind leider ziemich bescheiden, aber wenn ich das so kompiliere bekomme ich immer folgende fehlermeldung im syslog:


    [softdevice-audio] Playback reopen error: default, No such file or directory FATAL exiting


    habe in meiner .asoundrc folgende einträge:



    was mache ich falsch?


    danke für deine hilfe.

  • Da hatte ich gedacht das die Namen in .asoundrc pcm.CH6, pcm.CH4, .. und so heißen sollten "CH%d".


    Stefan


    Nachtrag: in .asoundrc mußte ich pcm "hw:0,0" angeben und _nicht_ pcm "hw:0,1"

  • vielen dank für deine Hilfe!! :)


    habe es nun fast am laufen, glaub muss nur noch die asoundrc verfeinern.


    Jedoch musste ich deinen code umändern da ch_dev zwar mit CH2 oder CH6 belegt worden ist, und es hat auch überprüft ob die alsa devices vorhanden sind, jedoch hatte es keine auswirkung auf die ausgabe,
    habe nun anstelle von "ch_dev" "device" benutzt.
    Hier der code


    Sven

  • Ich versteh zwar nicht wieso es bei Dir mit zweimaligem Öffnen des gleichen Devicenames besser geht, aber nun gut. Vielleicht waren ja auch nur die Messages irritierend, die noch 'nen anderen Namen verwendet haben.
    Da sowieso noch ein 'free()' fehlte, gibts hier nun nochmal eine Komplettversion.
    Ich hoffe Du bist auch beim Verfeinern der asoundrc weiter gekommen.


    Stefan

  • Sorry für die verspätete antwort aber da ist der urlaub dazwischen gekommen ;)


    danke für den patch hab den grad eingespielt und scheint alles supi zu funktionnieren :)


    Ich muss nur noch "softvol" für alle kanäle zum laufen bringen denn die lautstärke ist unterschiedlich.


    werden die beiden patches , den channels und den analog patch in die nächste version übernommen?



    **** Danke für die Hilfe *****
    ********* :) ************

  • Zitat

    Original von pimboli
    Sorry für die verspätete antwort aber da ist der urlaub dazwischen gekommen ;)


    danke für den patch hab den grad eingespielt und scheint alles supi zu funktionnieren :)


    Na dann kannst Du ja (gut erholt) auch anstatt der Patches die aktuelle Cvs -Version nutzen.
    Da ist nun sowohl ac3-analog-01.diff (den hatte ich ja schon vergessen) als auch CHx-device.diff integriert, jeweils mit ein paar leichten Änderungen.


    Stefan

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!