Das Problem ist nicht nur die Dekodierung, betrachte das Gesamtbild:
- Demux löst Interrupt aus, Kernel kopiert Daten vom Demux-RAM in den Userspace in einen Ringpuffer.
- die Anwendung muß die empfangen Daten nach I-Frames parsen
- die Anwendung muß dieses I-Frame dekodieren und nach RGB transformieren. Evtl. könnte man auf die Matrifizierung nach RGB auch verzichten und es direkt über das PIG darstellen, der GTX benutzt dafür allerdings eine komprimierte Form (squashed), der eNX könnte es wohl auch unkomprimiert.
Die Anwendung muß aber wie gesagt die Daten schneller parsen als der Ringpuffer volläuft. Natürlich könnte man während der Dekodierung den Demux abschalten und erst anschließend wieder weiterparsen.
Möglich wäre das sicherlich irgendwie. Du kannst das ja mal probieren.
Aber hierbei ging es ja auch um mehrere Ströme. Wie viele Videoströme man gleichzeitig lesen kann ohne daß es zu Overflows kommt ist mir nicht bekannt, müßtest du auch probieren.
In wie fern man den Dekodiervorgang beschleunigen könnte (Weglassen von nicht relevanten Makroblöcken) ist mir auch nicht bekannt, dafür kenne ich den Vorgang der Dekodierung zu wenig (wie ja auch aus dem anderen MPEG-Dekoder-Thread bekannt sein dürfte.
![wink ;)](./images/smilies/icon_wink.gif)
).
Eigentlich schon eine interessante Sache.
In den FB schreiben ist kein Problem, das ist ein mmap und Neutrino bietet dafür auch eine Klasse an, es muß halt nur RGB sein.
Die Frage "Wie implementiert man TS-Streams am Besten und wo kriege ich den möglichst durch GTX/eNX aufbereitet her?" versteh ich leider nicht ganz.
![oops :oops:](./images/smilies/icon_redface.gif)