[ANNOUNCE] VDR developer version 1.7.1

  • Frisch aus der ML:



    Danke für die neue Version Klaus!


    Grüße
    Michi

    Wohnzimmer: Techsolo TC-400 :: ASUS P5N7A-VM :: Intel Core 2 Duo E7400 :: GeForce 9300 onboard :: vdr 1.7.15 e-tobi ::
    In Rente: Pimped Scenic 600 (Bilder und Aufbau) :: PIII 600Mhz :: Hauppauge Nexus-S 2.1 4MB :: vdr 1.5.2 e-tobi ::


    "Wer denkt, dass Volksvertreter das Volk vertreten, der glaubt auch, dass Zitronenfalter Zitronen falten." Zeit zum ändern!

  • Zitat

    Original von chrisz
    Lese ich richtig, dass schon im TS Format aufgezeichnet wird ?


    Hm, oben steht:


    Zitat

    Actual recording is still done in PES, though.


    Also nicht ;)


    Grüße
    Michi

    Wohnzimmer: Techsolo TC-400 :: ASUS P5N7A-VM :: Intel Core 2 Duo E7400 :: GeForce 9300 onboard :: vdr 1.7.15 e-tobi ::
    In Rente: Pimped Scenic 600 (Bilder und Aufbau) :: PIII 600Mhz :: Hauppauge Nexus-S 2.1 4MB :: vdr 1.5.2 e-tobi ::


    "Wer denkt, dass Volksvertreter das Volk vertreten, der glaubt auch, dass Zitronenfalter Zitronen falten." Zeit zum ändern!

  • @ Klaus (in der Hoffnung, dass Du hier mal reinschaust :) )


    ich habe vdr-1.7.1 mit dem API-wrapper von Udo kompiliert und getestet, ob mein pvr350-(Ausgabe)-Plugin damit noch läuft. Es kompiliert auch, aber ich habe bei Live-TV keinen Ton und am unteren Bildrand sind Artefakte. Die Funktion PlayAudio meines Plugins liefert die Fehlermeldung:

    Code
    pvr350: 16:32:33 pvr350: PlayAudio unknown audio format, Id=0x00


    Die Wiedergabe von vorhandenen Altaufzeichnungen klappt einwandfrei.


    Muss ich eventuell wie in dvddevice.c die Funktionen PlayTsVideo() und PlayTsAudio() implementieren?


    Ich hoffe, dass vdr auch weiterhin mit Ausgabegeräten verwandt werden kann, die kein TS sodnern nur PES wiedergeben können.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD


  • cDevice implementiert selber eine Default-Version von PlayTsVideo() bzw. PlayTsAudio().
    Allerdings ist dort die frühere "Id" nicht mehr bekannt, und wird daher auf 0 gesetzt.
    Anscheinend habe ich übersehen, das zu dokumentieren...


    Zitat


    Ich hoffe, dass vdr auch weiterhin mit Ausgabegeräten verwandt werden kann, die kein TS sodnern nur PES wiedergeben können.


    Sollte gehen, denn die FF-Karten können es ja auch (wenn auch noch mit kleinen Störungen, aber ich hoffe mal, daß wir das noch in den Griff kriegen).


    Klaus

  • Zitat

    Original von kls
    cDevice implementiert selber eine Default-Version von PlayTsVideo() bzw. PlayTsAudio().
    Allerdings ist dort die frühere "Id" nicht mehr bekannt, und wird daher auf 0 gesetzt.
    Anscheinend habe ich übersehen, das zu dokumentieren...


    wie heilt man das? (nicht die fehlende Doku, sondern dass die Id jetzt immer 0 ist)

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Zitat

    Original von Dr. Seltsam


    wie heilt man das? (nicht die fehlende Doku, sondern dass die Id jetzt immer 0 ist)


    Was für eine Id ist das? Die "Stream ID" des PES-Headers?


    CU
    Oliver

  • das ist die PES-Stream-ID und entspricht der Id in

    Code
    PlayAudio(const uchar *Data, int Length, uchar Id)


    Wenn ich 0x00 der Behandlung für MPEG-Audio gleichsetze, habe ich auch wieder Ton.


    In Verbindung mit dem pvrinput-Plugin, dass MPEG-Audio liefert, kommt es aber zu Fehlermeldungen
    "PlayAudio(): PES Packet seems to be corrupted"


    Der betreffende Code ist nicht von mir, so ganz blicke ich mit dem Aufbau der PES-Pakete nicht durch. Ich poste mal die komplette Funktion, die bis einschließlich vdr 1.7.0 einwandfrei funktioniert:

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Zitat

    Original von Dr. Seltsam
    das ist die PES-Stream-ID und entspricht der Id in

    Code
    PlayAudio(const uchar *Data, int Length, uchar Id)


    Wenn ich 0x00 der Behandlung für MPEG-Audio gleichsetze, habe ich auch wieder Ton.


    Das ist offenbar ein Fehler in VDR. Wenn man PES-Pakete bastelt, sollte man ihnen eine sinnvolle Stream ID geben. Z.B. also:

    Code
    0xBD  Dolby Digital (Private Stream 1)
    0xC0  MPEG audio
    0xE0  MPEG video



    CU
    Oliver

  • Zitat

    Originally posted by UFO
    Das ist offenbar ein Fehler in VDR. Wenn man PES-Pakete bastelt, sollte man ihnen eine sinnvolle Stream ID geben. Z.B. also:

    Code
    0xBD  Dolby Digital (Private Stream 1)
    0xC0  MPEG audio
    0xE0  MPEG video


    VDR entfernt lediglich den TS Header und faßt die Payload zusammen. Er schaut da nicht groß "rein".


    Oder wie meinst du das?


    Klaus

  • Zitat

    Original von kls


    VDR entfernt lediglich den TS Header und faßt die Payload zusammen. Er schaut da nicht groß "rein".


    Oder wie meinst du das?


    Na ja, der Payload muß doch wohl ein PES-Header vorangestellt werden. Oder sehe ich das falsch?


    CU
    Oliver

  • Ist es eigentlich angedacht das man den VDR z.B. mit einer eHD auch ohne Patches verwenden kann?

    Gruß
    Frodo

  • Zitat

    Originally posted by UFO
    Na ja, der Payload muß doch wohl ein PES-Header vorangestellt werden. Oder sehe ich das falsch?


    Also soweit ich das sehe erhält man, wenn man eine Sequenz von TS-Paketen nimmt, bei denen das erste das "payload start" Flag gesetzt hat, und die bis zu dem Paket geht, auf das wieder eines mit diesem Flag folgt, jeweils den TS-Header entfernt und die restlichen Daten aneinanderhängt, jeweils ein komplettes PES-Paket. Was da genau drin ist, braucht VDR (zumindest im Transfer Mode) nicht weiter zu interessieren.


    Oder sehe ich da was falsch?


    Zumindest mit einer FF-Karte läßt sich das so abspielen (bis auf die kleinen Störungen, aber das wird sich ja hoffentlich noch finden lassen, woher das kommt - wenn die Diskussion über "wie soll VDR entwickelt werden" auf der ML mal abebbt und wieder tatsächlich getestet und gedebugd wird ;-).


    Klaus

  • Zitat

    Original von kls


    Also soweit ich das sehe erhält man, wenn man eine Sequenz von TS-Paketen nimmt, bei denen das erste das "payload start" Flag gesetzt hat, und die bis zu dem Paket geht, auf das wieder eines mit diesem Flag folgt, jeweils den TS-Header entfernt und die restlichen Daten aneinanderhängt, jeweils ein komplettes PES-Paket. Was da genau drin ist, braucht VDR (zumindest im Transfer Mode) nicht weiter zu interessieren.


    Oder sehe ich da was falsch?


    Daß vdr die Daten nicht zu interessieren braucht, ist richtig. Allerdings erwartet das video/audio-Device doch PES-Pakete, d.h. PES-Header+PES-Daten. Nicht nur PES-Daten.


    Zitat


    Zumindest mit einer FF-Karte läßt sich das so abspielen (bis auf die kleinen Störungen, aber das wird sich ja hoffentlich noch finden lassen, woher das kommt - wenn die Diskussion über "wie soll VDR entwickelt werden" auf der ML mal abebbt und wieder tatsächlich getestet und gedebugd wird ;-).


    Evtl. liegt genau hier der Hund begraben: Wenn der Treiber nur die reinen Daten erhält, könnte es passieren, daß zufällig in den Daten eine Bytefolge vorkommt, die fälschlich als PES-Header interpretiert wird, was natürlich das Datenpaket zerstört...


    Wie ist das denn bei vdr 1.6? Du reichst den PES-Header aus den Aufzeichnungen doch an das Device durch, oder?


    CU
    Oliver


  • Korrektur:
    Ist natürlich Unsinn, denn der TS-Datenstrom enthält ja komplette PES-Pakete.


    Also doch Debuggen. :(


    Dazu wäre es allerdings vorteilhaft, wenn man zwecks Reproduzierbarkeit mit TS-Aufzeichnungen arbeiten könnte.


    CU
    Oliver

  • Zitat

    Originally posted by UFO


    Daß vdr die Daten nicht zu interessieren braucht, ist richtig. Allerdings erwartet das video/audio-Device doch PES-Pakete, d.h. PES-Header+PES-Daten. Nicht nur PES-Daten.


    Hmm, das muß ich mir nochmal näher anschauen. Danke für den Hinweis.


    Zitat


    Evtl. liegt genau hier der Hund begraben: Wenn der Treiber nur die reinen Daten erhält, könnte es passieren, daß zufällig in den Daten eine Bytefolge vorkommt, die fälschlich als PES-Header interpretiert wird, was natürlich das Datenpaket zerstört...


    Wie ist das denn bei vdr 1.6? Du reichst den PES-Header aus den Aufzeichnungen doch an das Device durch, oder?


    Stimmt, die Aufzeichnungen werden 1:1 an das Device geschickt.


    Klaus

  • Zitat

    Original von kls


    Jetzt hattest du mich schon fast überzeugt ;)


    Sicherheitshalber habe ich dann doch noch mal im Standard nachgesehen. :D


    CU
    Oliver

Jetzt mitmachen!

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