[Prototyp] RPI Ausgabeplugin

  • Zwei Klassen mit dem gleichen Namen? Böse... :)
    Ich hab's bisher auch nicht in jedem meiner Plugins geschafft, aber das Benutzen von namespaces hat Vorteile.
    Siehe z.B. recsearch: https://github.com/flensrocker/vdr-plugin-recsearch

    Aber cool, dass du das gefunden hast!

    Lars.

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Hi Patrick

    sooo ich glaub ich hab jetzt den Grund gefunden...
    Ich habe mich gerade durch den Code mit dbg "gedebugt" ;) und bin dabei auf das das Verhalten gestoßen, dass er den Konstruktor der "falschen" cAudioParser-Klasse aus der remux.c nimmt und ausführt.

    Code
    #0  cFrameParser::cFrameParser (this=this@entry=0x74cde0) at remux.c:1055
    #1  0x000d9c68 in cAudioParser::cAudioParser (this=0x74cde0) at remux.c:1069
    #2  0xb68cf794 in cAudioDecoder::cAudioDecoder (this=0x4e2b18, omx=0x4e2990) at audio.c:680
    #3  0xb68d0c6c in cOmxDevice::cOmxDevice (this=0x4e0030, onPrimaryDevice=) at omxdevice.c:42
    #4  0xb68c7e64 in cPluginRpiHdDevice::Initialize (this=0x1ad488) at rpihddevice.c:62
    #5  0x000ca3f4 in cPluginManager::InitializePlugins (this=this@entry=0x1) at plugin.c:363
    #6  0x00063900 in main (argc=12, argv=0xbefff764) at vdr.c:730

    das liegt daran, dass beide Klassen gleich heißen. Keine Ahnung, ob der Compiler das richtig macht, oder da ein Bug hat?
    Vielleicht hilft es ja die cAudioParser Klasse hier in der audio.c umzubenennen.

    Soweit meine momentanen Erkenntnisse. Vielleicht helfen diese ja weiter!


    Vielen Dank für deine Bemühungen und den Hinweis mit dem doppelten Klassennamen! Das ist natürlich falsch und ein Versehen meinerseits!

    Ich habe inzwischen versucht, mit ffmpeg unter Raspian das Verhalten zu reproduzieren, aber leider immer noch ohne Erfolg. Ich würde gerne den Effekt bei mir sehen, um sicher zu sein, dass ein Fix auch funktioniert.

    Hast du denn die Klasse im Plugin mal umbenannt, um deine Vermutung zu bestätigen?

    Als Fix für das Problem sehe ich folgende Möglichkeiten
    - umbenennen - wobei mir cAudioParser eigentlich ganz gut passt
    - generell namespaces verwenden oder
    - cAudioParser innerhalb von cAudio deklarieren - was ja auch sowas wie ein namespace wäre

    Letzteres scheint mir auf den ersten Blick am logischsten, aber wohl ein bisschen unkonventionell... was meinen die C++-Experten dazu?

    Gruss
    Thomas

  • Hi,

    Hast du denn die Klasse im Plugin mal umbenannt, um deine Vermutung zu bestätigen?


    Ja, nachdem ich die Klasse umbenannt habe, hat es funktioniert.

    Als Fix für das Problem sehe ich folgende Möglichkeiten
    - umbenennen - wobei mir cAudioParser eigentlich ganz gut passt
    - generell namespaces verwenden oder
    - cAudioParser innerhalb von cAudio deklarieren - was ja auch sowas wie ein namespace wäre


    Ich bin zwar kein c++ Experte :) aber ich würde einen eigenen namespace vorschlagen.

    Schöne Grüße
    Patrick

  • reufer,

    wie ich weiter vorne geschrieben habe, ich hab das Verhalten auch nur mit FFMPEG 1.0.8 + GCC 4.8 auf Wheezy gesehen - mit der Standard FFMPEG Version auf Wheezy + GCC4.8 scheint es problemlos mit dem Originalcode zu funktionieren.

    Gruss

    Server HW:
    Asrock Q1900M + 4GB + 2x CineS2 5.4, SSD, 2TB Toshiba 2.5" (USB), 3TB Seagate (USB); 2TB Samsung; 1.5 Seagate (USB), picoPSU + DC/DC 200W
    SW:
    Debian (arranged), OpenMediaVault kralizec; VDR-2.1.6 + dynamite, live etc; Mysql running DB for EPG2VDR, XBMC

    Clients:
    1) TBS2910 freescale imx6 + OpenELEC
    2) RPI, 1GHZ, VDR-2.1.6
    3) RPI, 1GHZ, VDR-2.1.6
    4) cubietruck

  • wie ich weiter vorne geschrieben habe, ich hab das Verhalten auch nur mit FFMPEG 1.0.8 + GCC 4.8 auf Wheezy gesehen - mit der Standard FFMPEG Version auf Wheezy + GCC4.8 scheint es problemlos mit dem Originalcode zu funktionieren.

    Ich hab alles was mit ffmpeg/libav zu tun hatte runtergeschmissen und mir ffmpeg 1.0.9 aus den Sourcen kompiliert. Die 1.0.8 habe ich auf den offiziellen Seiten nicht mehr gefunden... such mir das aber noch zusammen, ist ja grad Ostern. ;)

    Gruss
    Thomas

    Edit: schon gefunden...

  • Umbenennen ist der einfache Weg, danach kannst du immer noch namespaces einbauen.

    Einfach schon, aber ich mag den Kreis nicht in ein Dreieck umbenennen und dann wieder zurück, wenn das eigentlich Problem gelöst ist. ;) Ich denke, ein eigener Namespace fürs Plugin ist der richtige Weg und mit wenig Aufwand gemacht.

    Gruss
    Thomas

  • francescosoft

    Bei SD habe ich keine Probleme, triitt das vlt. nur bei bestimmten Kanälen auf (nenn doch einfach mal die problematischen Kanäle).

    Gruss

    Macavity

    Capulet:
    HW: Dell Dimension 3100, Pentium 4 3GHz, 2GB RAM, 160GB HDD (System), 1TB HDD (Video), 1 x TT S2-1600, 1 x Technisat Skystar HD | SW: Debian 7.4, VDR 2.0.4 (selfcompiled), dummydevice 2.0.0, streamdev-server 0.6.1, NFS-Server

    TiViPi01:
    HW: Raspberry Pi Mod. B Rev. 2, 512MB RAM, 8GB SD-Card, Teko TEK-BERRY.9 Gehäuse, Ednet 85024 USB 2.0 Hub, Digitainer X10 Funk-Fernbedienung | SW: Raspbian 01/2014, VDR 2.0.4 (selfcompiled), rpihddevice 0.0.8, ffmpeg 1.0.8, streamdev-client 0.6.1, NFS-Client

  • reufer

    Danke für die Version 0.0.9 und Deine tolle Arbeit.

    Bei mir läuft noch die Revision f0b7ff1f aus dem Git, mit der ich keine Probleme mehr hatte (die grauen Zwischenbilder bei verschlüsselten HD-Sendern, die ich noch hatte, hatten mit dem Ausgabeplugin nichts zu tun).
    Die 0.0.9 werde ich heute Abend mal testen.

    Gruss

    Macavity

    Capulet:
    HW: Dell Dimension 3100, Pentium 4 3GHz, 2GB RAM, 160GB HDD (System), 1TB HDD (Video), 1 x TT S2-1600, 1 x Technisat Skystar HD | SW: Debian 7.4, VDR 2.0.4 (selfcompiled), dummydevice 2.0.0, streamdev-server 0.6.1, NFS-Server

    TiViPi01:
    HW: Raspberry Pi Mod. B Rev. 2, 512MB RAM, 8GB SD-Card, Teko TEK-BERRY.9 Gehäuse, Ednet 85024 USB 2.0 Hub, Digitainer X10 Funk-Fernbedienung | SW: Raspbian 01/2014, VDR 2.0.4 (selfcompiled), rpihddevice 0.0.8, ffmpeg 1.0.8, streamdev-client 0.6.1, NFS-Client

  • Hallo Zusammen,

    ich hoffe ich bin hier einigermaßen richtig.

    Zuersteinmal möchte ich Thomas für sein geniales Plugin danken. :tup

    Ich benutze dieses nun bei mehreren PI's im ganzen Haus verstreut. Die "Zentrale" ist ein Server (DELL Optiplex 740 mit 8GB RAM und 6TB Festplatte), indem 4 TV-Karten verbaut sind. Der ist die Schaltzentrale für alle VDR-Signale. Nun wollte ich einen Samsung-Fernseher mit HDMI-Eingang mit dem PI verbinden auf dem gemäß der Anleitung "Raspbian VDR Streaming Client mittels Stremdev und rpihddevice" auf vdr-wiki.de ein Betriebssystem installiert ist. Der Monitor meldet aber "Nicht unterstützter Modus".

    Also habe ich versucht über die config.txt des PI die Auflösung so einzustellen, dass der Monitor damit zurecht kommt. Er kann nämlich "nur" 720p (Details zum Monitor findet ihr hier). Aber alle Versuche über die config.txt haben lediglich die Auflösung beim Starten verändert. Sobald der VDR startet kommt ein schwarzer Bildschirm und der Fernseher meint "Nicht unterstützter Modus".

    Kann mir hier jemand einen Tipp geben was ich einstellen muss? Habe ich mit der Config.txt an der falschen Stelle versucht die Einstellungen zu ändern?

    Der gleiche PI an einen BENQ angeschlossen läuft bestens.

    Vielen Dank :]
    Gruß
    Oliver

  • Er kann nämlich "nur" 720p

    nativ,

    als Eingangsformat könnte er auch 1080i ( laut deinem Chiplink) Du könntest mal auf der Konsole mit :

    Code
    /opt/vc/bin/tvservice -m CEA

    Dir die vom Monitor unterstützten Formate anzeigen lassen
    mein Beispiel:

    wenn Mode 19 bsw. bei Dir dabei ist, könntest Du den dann auf der Konsole vor dem VDR Start mitgeben:

    Code
    /opt/vc/bin/tvservice -e "CEA 19"

    Dann sollte die Ausgabe auf 720p laufen

    PS: Bei weiteren Fragen solltest Du dann besser einen eigenen Thread aufmachen

  • Hallo,

    zunächst mal ein dickes Danke an reufer für dieses großartige Projekt. Läuft bei mir bis auf ein Problem super.

    Leider habe ich aber in unregelmäßigen Abständen kurze Tonaussetzer von 2-3 Sekunden. Im syslog ist dazu nichts zu sehen, obwohl es anfangs ein paar Buffer stalls gibt. Top zeigt eine CPU-Auslastung bei HD-Sendern über streamdev von 10-15% und eine Speicherbelegung von etwa 17%.

    Mein Raspi ist übrigens ein nicht übertaktetes Modell B aus der ersten Serie (also nur 256 MB).

    Hatte jemand ähnliche Probleme und eine Lösung gefunden?

    Gruß, Dennis

  • check mal das netzteil
    80% der steckernetzteile sind mist (meiner meinung)

    wenn das ding nicht genug strom bekommt läuft es auch mies

    Signatur

    Server: ASRock Q1900M + 4GB RAM + cineS2 6.5 + Debian 8 + vdr 2.x , epgsearch, live, streamdev
    Client: Macbook Pro Retina 2015 + 16GB ram 512GB ssd  OSX 10.11.1)
    File-Server/client: GA-Z77-DS3H (Ozmosis 1669 ) + I3 2105 + 16GB RAM NVGF 650GTX 1GB, 250 GB-HD (sys)+ 44TB Storage OSX 10.11.6 VLC 3.x beta , Remote Buddy, PS3-FB
    2x Cubieboard2: 16GB microSD, debian mit VDR 2.0.6 + epgsearch, live(osdpatch), streamdev(0.6), soft-hd-device
    Ausgabe:
    Acer H7530D, T.amp Proline1300, 2x K&H sms 54T + horn sub - Eigenbau

  • Könnte schon sein, dass es etwas wenig Ampere bietet.

    Hatte bisher dieses dran: http://www.conrad.de/ce/de/product/646800/USB-Ladegeraet-Steckdose-Goobay-46554-Micro-USB-1-x-1000-mA/?ref=detview1&rt=detview1&rb=1

    Habe jetzt testweise mal ein Blackberry-Netzteil dran gehabt, dass aber sogar nur 700mA hat. Gefühlt waren es deutlich weniger Aussetzer, kann aber Zufall sein.

    Ich würde jetzt mal dieses bestellen: http://www.conrad.de/ce/de/product/406348/USB-Ladegeraet-Steckdose-HN-Power-HNP10I-MicroUSB-C-Micro-USB-1-x-2000-mA/?ref=detview1&rt=detview1&rb=1

    Oder kannst Du ein bestimmtes empfehlen?

  • viele liefern nur einen bruchteil von dem was draufsteht

    ab 2000mAh sollte es aber gut gehen

    Signatur

    Server: ASRock Q1900M + 4GB RAM + cineS2 6.5 + Debian 8 + vdr 2.x , epgsearch, live, streamdev
    Client: Macbook Pro Retina 2015 + 16GB ram 512GB ssd  OSX 10.11.1)
    File-Server/client: GA-Z77-DS3H (Ozmosis 1669 ) + I3 2105 + 16GB RAM NVGF 650GTX 1GB, 250 GB-HD (sys)+ 44TB Storage OSX 10.11.6 VLC 3.x beta , Remote Buddy, PS3-FB
    2x Cubieboard2: 16GB microSD, debian mit VDR 2.0.6 + epgsearch, live(osdpatch), streamdev(0.6), soft-hd-device
    Ausgabe:
    Acer H7530D, T.amp Proline1300, 2x K&H sms 54T + horn sub - Eigenbau

  • bei mir hängt das cubieboard und der pi gemeinsam an einer 60w picopsu ;)

    Signatur

    Server: ASRock Q1900M + 4GB RAM + cineS2 6.5 + Debian 8 + vdr 2.x , epgsearch, live, streamdev
    Client: Macbook Pro Retina 2015 + 16GB ram 512GB ssd  OSX 10.11.1)
    File-Server/client: GA-Z77-DS3H (Ozmosis 1669 ) + I3 2105 + 16GB RAM NVGF 650GTX 1GB, 250 GB-HD (sys)+ 44TB Storage OSX 10.11.6 VLC 3.x beta , Remote Buddy, PS3-FB
    2x Cubieboard2: 16GB microSD, debian mit VDR 2.0.6 + epgsearch, live(osdpatch), streamdev(0.6), soft-hd-device
    Ausgabe:
    Acer H7530D, T.amp Proline1300, 2x K&H sms 54T + horn sub - Eigenbau

  • Hi Dennis

    Leider habe ich aber in unregelmäßigen Abständen kurze Tonaussetzer von 2-3 Sekunden. Im syslog ist dazu nichts zu sehen, obwohl es anfangs ein paar Buffer stalls gibt. Top zeigt eine CPU-Auslastung bei HD-Sendern über streamdev von 10-15% und eine Speicherbelegung von etwa 17%.

    Stimmt die Wiederholrate des HDMI Ports mit der des Materials (wahrscheinlich 50Hz) überein? Ich glaube, solche Probleme können auftreten, wenn ein z.B. PC-Monitor mit 60Hz benutzt wird, habe das allerdings noch nicht genau untersucht.

    Gruss
    Thomas

Participate now!

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