VDR 1.1.15 und LiveAC3

  • Hallo Ihr,


    habe gestern vergeblich versucht, AC3 aus VDR 1.1.15 rauszubekommen. Ich denke, es liegt an meinem Eintrag in der "runvdr", denn die Schritte im Thread LiveAC3 geht!unter http://www.riess.net/phpcube/y…tion=display;threadid=201 habe ich befolgt und auch schon einmal mit VDR 1.0.4 zum Laufen bekommen.


    Momentaner Status: AC3Play funktioniert mit einer Testdatei, aber alle Einträge in der runvdr (mit Hochkomma, Anführungszeichen, mal das eine zuerst, dann das andere etc.) sorgen entweder dafür, dass der '-a'-Parameter wohl nicht ausgewertet wird (kommt keine Meldung), dass das ganze Skript nicht ausgeführt wird (dann waren es wohl die Anführungszeichen :-)) oder dass zwar die im Meldung aus o.g. Thread kommt, aber das Skript wohl nicht weiter ausgeführt wird.


    Kann mir jemand seinen seine Zeile (die mit dem "-a") aus der runvdr für VDR 1.1.15 schicken, bei der LiveAC3 funkioniert?


    Danke im Voraus!


    P.S.: Falls es jemand braucht: SuSE 8.0, VDR 1.1.15 mit Head-Treibern

    yaVDR 0.5.0a
    Intel Core2Duo E6750, Asus P5Q,
    Gainward GT 240 512MB GDDR5, Hauppauge HVR-4000 & Nova-S2-HD, 4 GByte RAM
    an Panasonic TX-P42GW10 und Onkyo TX-SR508

  • Hi,


    für übertragung des AC3 streams an ein über -a angegebenes prog brauchen wir ein Plugin welches für 1.1.x (noch) nicht existiert.


    Was evt. geht ist AC3 über audioausgang der DVB Karte.


    Bei den 1.0.x Versionen gehts es problemlos.


    Gruß
    Dimitri

  • Hi,


    hat schon jemand über möglichkeit AC3 streams auf zweite DVB-s karte wiederzugeben gehört?
    ich habe da auch schon viel gelesen dass das möglich ist, aber wie genau geht das ???
    oder ist das nur die theorie? ;D


    gruss, genka

  • dimitri:
    Habe die Readme von VDR 1.1.15 so verstanden, dass es wieder geht. Lediglich AC3-over-DVB scheint noch nicht zu funktionieren - und dafür braucht man ein Plugin.


    yaVDR 0.5.0a
    Intel Core2Duo E6750, Asus P5Q,
    Gainward GT 240 512MB GDDR5, Hauppauge HVR-4000 & Nova-S2-HD, 4 GByte RAM
    an Panasonic TX-P42GW10 und Onkyo TX-SR508

  • hi


    bin ebenfals davon ausgegangen das der vdr 1.1.15 die
    -a option kann
    allerdings NIX ist mit der option
    wen ich die sourcen vergleiche hab ich den eindruck als fehlt in der 15er
    einiges
    bin heftigs am foren stöbern allerdings bis jetzt ohne erfolg
    hab aber schon lintv.org lesen können das da wohl ein plugin erforderlich ist
    könnt ich c++ progel hätte ich mich sofort dran gemacht son ding zu proggeln :)
    (liveac3 haben will)
    stelle mich gerne als beta tester zur verfügung wen einer sowas progel will ;D
    oder hat jemand schon etwas ansatzweis gefunden ???


    mfg jtl

  • Wieso ist denn dann überhaupt der Parameter -a da, wenn das doch alles später per Plugin umgesetzt wird?
    Mal kucken, vielleicht mal in der Mailing-List schauen oder fragen...

    yaVDR 0.5.0a
    Intel Core2Duo E6750, Asus P5Q,
    Gainward GT 240 512MB GDDR5, Hauppauge HVR-4000 & Nova-S2-HD, 4 GByte RAM
    an Panasonic TX-P42GW10 und Onkyo TX-SR508

  • Der parameter "-a" ist da und wird auch ausgewertet ( siehe audio.c ).


    Wieso die Methode ExternalPlay ( oder so ) nicht zur ausführung kommt konnte ich noch nicht feststellen.


    Gruß
    Dimitri

  • Mein C ist etwas eingerostet, aber vielleicht weiß jemand mehr:
    In vdr.c steht irgendwo:

    Quote

    // External audio:


    if (AudioCommand)
    new cExternalAudio(AudioCommand);


    und dann ist Schluß. Zumindest in der vdr.c wird die Funktion

    Quote

    void cExternalAudio::Play(const uchar *Data, int Length)

    aus der audio.c nicht aufgerufen. Auch in den anderen C-Files habe ich auf der Schnelle nix gefunden. Scheint so, als wäre hier eine Zeile vergessen worden...

    yaVDR 0.5.0a
    Intel Core2Duo E6750, Asus P5Q,
    Gainward GT 240 512MB GDDR5, Hauppauge HVR-4000 & Nova-S2-HD, 4 GByte RAM
    an Panasonic TX-P42GW10 und Onkyo TX-SR508

  • hi,


    nicht ganz ;)


    die haben in audio.c:

    Code
    cAudios Audios;


    und wenn man

    Code
    // External audio:
    
    
      if (AudioCommand)
        new cExternalAudio(AudioCommand);


    macht, wird die Liste "Audios" erweitert (see parent class of cExternalAudio - cAudio::cAudio) ;)
    Und dann beim Audios.Play(... ruft er beim jedem object aus diese Liste play(.. funktion auf.
    das ist soweit richtig programmiert. :D
    man kann noch in "cPipe" class anschauen, ob es zum shell aufruf kommt.


    gruß, genka

  • Pipe ist schon zu weit.


    Die methode

    Code
    void cExternalAudio::Play(const uchar *Data, int Length)


    wird nie angesprungen.


    Wenn ich mich richtig errinere macht er :

    Code
    cAudio::cAudio(void)
    cExternalAudio::cExternalAudio(const char *Command)
    void cAudios::MuteAudio(bool On)
    void cExternalAudio::Mute(bool On)


    Muß ich aber nochmal zuhause prüfen.
    Gruß
    Dimitri

  • dimitri


    doch ;)



    Beim aufruf von

    Code
    Audios.PlayAudio(Data, Length);


    wird in jedem object in Liste Audios funktion "Play" aufgerufen.


    wenn man ./vdr -a <program name> schreibt, wird object of class cExternalAudio zu diese Liste zugefügt.


    ich bin leider auch nicht zuhause ;D


    gruß, genka

  • genka
    nein


    Ich hatte gestern da überall printf eingebaut.
    Würde er da rein gehen müsste ich das sehen und hören.


    Unter 1.0.x klappt es problemlos und ac3play.sh ( script welches bei -a angegeben ist ) geht auch standalone. Vom system her ist bei mir also alles in Ordnung.


    Kann allerdings nur C und nicht C++ weswegen meine aussagen hier nicht unbedingt stimmen müssen.


    Gruß
    Dimitri

  • hi,


    ok. ich habe jetzt was rausgefunden ;D


    ac3 out über "-a <program>" geht nur in TransferMode (offline soll auch mit dem Player gehen ;) ).


    Wenn wie in diesem beispiel StartTransferMode wird TRUE, dann geht's raus

    Code
    bool StartTransferMode = IsPrimaryDevice() && !IsEncrypted && !DoTune
                               && (LiveView && HasPid(Channel->Vpid()) && pidHandles[ptVideo].pid != Channel->Vpid()
                                  || !LiveView && pidHandles[ptVideo].pid == Channel->Vpid()
                                  );


    morgen versuche ich weiter zu schauen - jetzt ist schon ein bisschen spät ;D
    oder kennt jemand mehr über TransferMode?


    gruß, genka

  • dimitri


    offline - wenn du was aufgezeichnet hast, soll beim abspielen auch mit "-a" parameter gehen.


    ich habe mit pro7 getestet:
    ProSieben:12480:v:0:27500:255:256;257:32:0:898 (wichtig das PID 257 auch drin steht ;) )


    ich werde schauen wie er selbst in diese modus reingeht - bislang müsste ich ihm helfen ;D


    es gibts zwei Moduses:

    Code
    bool StartTransferMode = IsPrimaryDevice() && !IsEncrypted && !DoTune
                               && (LiveView && HasPid(Channel->Vpid()) && pidHandles[ptVideo].pid != Channel->Vpid()
               || !LiveView && pidHandles[ptVideo].pid == Channel->Vpid()
                                  );
    
    
      bool TurnOnLivePIDs = HasDecoder() && !StartTransferMode
                            && (IsEncrypted // CA channels can only be decrypted in "live" mode
                               || LiveView
                               );


    bei mir geht er immer in TurnOnLivePIDs modus rein, wo diese ausgabe nicht unterstützt wird.


    gruß, genka

  • dimitri


    kannst du eine zeile zufügen und bei dir testen?


    vorher:

    Code
    bool StartTransferMode = IsPrimaryDevice() && !IsEncrypted && !DoTune
                              && (LiveView && HasPid(Channel->Vpid()) && pidHandles[ptVideo].pid != Channel->Vpid()
              || !LiveView && pidHandles[ptVideo].pid == Channel->Vpid()
                                  );


    danach:

    Code
    bool StartTransferMode = IsPrimaryDevice() && !IsEncrypted && !DoTune
                              && (LiveView && HasPid(Channel->Vpid()) && pidHandles[ptVideo].pid != Channel->Vpid()
              || !LiveView && pidHandles[ptVideo].pid == Channel->Vpid()
                                  );
    
    
      StartTransferMode = IsPrimaryDevice() && !IsEncrypted;


    ich glaube das es ist nur halbwegs fertig.


    bei mir leuft leider SB Extigy nicht mit ac3 :( (es wird noch nicht unterschtützt, aber ich werde noch treiber schauen ;D )


    gruß, genka

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!