You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

reufer

Professional

  • "reufer" started this thread

Posts: 997

Location: Bern

  • Send private message

1

Friday, September 27th 2013, 10:09am

[Prototyp] RPI Ausgabeplugin

Hallo allerseits

Da ich schon lange auf ein schlankes Ausgabeplugin fürs RPI am warten bin, habe ich mich einfach mal darangesetzt. Inzwischen ist ein erster Prototyp lauffähig, den ich euch nicht vorenthalten will:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
2013-09-27: Version 0.0.1

Initial prototype
- limitations:
  - video codec hard coded to MPEG2, output on HDMI
  - audio codec hard coded to MP3, output on phone jack
- tested:
  - OSD
  - SDTV live view and replay
- missing:
  - dynamic switching between MPEG2 and H264 video codec
  - trick speeds
  - much more...


Da fehlt natürlich noch einiges - dieser Post soll lediglich ein Zeichen sein, dass es an der RPI-Front weitergeht! Auch wenn das noch kein expliziter Aufruf zum Testen ist, freue ich mich natürlich auf Feedback!

- Edit -
Die neuen Versionen im Überblick:
Version 0.0.2 vom 29.09. feat. H264
Version 0.0.3 vom 02.10. feat. audio only & replay start/stop/pause
Version 0.0.4 vom 14.10. feat. verbesserter Audio-Support
Version 0.0.5 vom 17.11. feat. ruckelfreies Replay
Version 0.0.6 vom 15.12. feat. Trick Speeds & Still Picture
Version 0.0.7 vom 30.12. feat. Deinterlacer
Version 0.0.8 vom 10.02. feat. GrabImage() und ScaleVideo()

… neuere Versionen im Nachfolgethread oder die komplette History im Git auf vdr-developper.org .

Grüsse aus Bern
Thomas
reufer has attached the following file:

This post has been edited 8 times, last edit by "reufer" (Oct 14th 2014, 8:04pm)


2

Friday, September 27th 2013, 10:25am

Sehr interessant! Vor allem ein großes Lob dafür, dass gleich zu Beginn der Sourcecode verfügbar ist!

Kennst du Details zu dieser "libilclient.a"? Für mich sieht es so aus, als wäre der Source dafür durchaus verfügbar:

https://github.com/raspberrypi/firmware/…i/libs/ilclient

Meine bescheidene Meinung wäre also: Entweder die Datei nimmt man als Bestandteil der Firmware an (dann gegen die im System installierte "libilclient" linken. Sofern es sowas gibt...) oder du solltest lieber die Source-Dateien (in ein Unterverzeichnis "ilclient") mit in deinen Source-Tree packen und die Library beim Kompilieren mit erzeugen. So wäre diese auch mit den für die entsprechende Distribution geltenden Kompiler-Parametern erzeugt.

Ansonsten ein großes :tup für deinen Einsatz!

reufer

Professional

  • "reufer" started this thread

Posts: 997

Location: Bern

  • Send private message

3

Friday, September 27th 2013, 10:33am

Hallo
Meine bescheidene Meinung wäre also: Entweder die Datei nimmt man als Bestandteil der Firmware an (dann gegen die im System installierte "libilclient" linken. Sofern es sowas gibt...) oder du solltest lieber die Source-Dateien (in ein Unterverzeichnis "ilclient") mit in deinen Source-Tree packen und die Library beim Kompilieren mit erzeugen. So wäre diese auch mit den für die entsprechende Distribution geltenden Kompiler-Parametern erzeugt.
Danke fürs Feedback - zweiteres habe ich getan, in einem Verzeichns namens "ilclient". Oder habe ich Dich falsch verstanden?

Gruss
Thomas

4

Friday, September 27th 2013, 10:37am

Ich hatte Tomaten auf den Augen...

Klar. Da ist sie ja. Demnach ist der kleine "Fehler" nur, dass eine "libilclient.a" in deinem Archiv liegt.

Ich nehme meine voreilige Kritik zurück und schlage vor das "clean"-Target des Makefiles so zu erweitern, dass "*~" auch im Unterverzeichnis "ilclient", und die "libilclient.a" selber, gelöscht werden.

reufer

Professional

  • "reufer" started this thread

Posts: 997

Location: Bern

  • Send private message

5

Friday, September 27th 2013, 10:42am

Klar. Da ist sie ja. Demnach ist der kleine "Fehler" nur, dass eine "libilclient.a" in deinem Archiv liegt.

Kann sein, dass es sich dabei um ein Überbleibsel von der Makefile-Bastelei handelt - werde ich noch löschen, ebenso die ilclient/*~-Dateien. Falls sich jemand beim VDR-Makesystem zu Hause fühlt, wäre ich über ein Review des Makefiles sehr erfreut! :]

Gruss
Thomas

6

Friday, September 27th 2013, 10:43am

:tup :tup
Sehr cool.
Ich habe mich schon gefragt welches meiner Prio 2 Projekte ich am WE machen werden.
Nun ist das hier aber zu Prio 1 geworden. :D :D


//Edit
Nach dem ersten Blick bin ich verwundert wie "wenige" Code es ist. Dachte für ein Ausgabedevice braucht man deutlich mehr. So ist es mir aber lieber, dann steige ich da vielleicht schneller durch.

Meine VDRs

VDR Server: Ubuntu Lucid Lynx mit 6TB im RAID und quadtuner DVB-S2
VDR Client1: Raspbian @ Raspberry Pi 2
VDR Client2: Ubuntu @ Laptop
VDR Client3: MDL @ Raspberry Pi
VDR Client4: zen2vdr @ SMT-7020s (wird zZ nicht benutzt)
VDR Client5: Android @ HP Touchpad mit VDR Manager App

This post has been edited 1 times, last edit by "decembersoul" (Sep 27th 2013, 11:05am)


7

Friday, September 27th 2013, 11:52am

Unter ArchLinuxARM klappen die includes der ilclient-Dateien und ein paar anderer Bibliotheken aus der Firmware nicht, daher hole ich die aus den vom Firmware-Paket gelieferten Dateien:

Source code

1
2
3
4
5
6
7
8
9
10
11
--- rpihddevice-0.0.1/Makefile  2013-09-27 11:18:16.916355896 +0200
+++ b/Makefile  2013-09-27 11:19:53.265399220 +0200
@@ -51,7 +51,7 @@ DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN
 DEFINES += -DHAVE_LIBOPENMAX=2 -DOMX -DOMX_SKIP64BIT -DUSE_EXTERNAL_OMX -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM
 DEFINES += -Wno-write-strings -fpermissive

-INCLUDES += -I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads
+INCLUDES += -I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux/ -I/opt/vc/src/hello_pi/libs/ -I/opt/vc/src/hello_pi/libs/ilclient/

 ILCDIR   = ilclient
 VCLIBDIR = /opt/vc/lib

Ansonsten läuft das ja schon super mit SD-Kanälen (ich habe keine lokale DVB-Karte, nutze daher streamdev-client) :D - nur bei Radio-Kanälen habe ich keinen Ton und das Plugin hängt sich weg - am WE kann ich da vermutlich mehr dazu liefern, im Auslieferungszustand ist bei ArchLinuxARM journalctl nicht aktiv...
Mute und Lautstärkeregelung funktionieren bei mir auch noch nicht und nach dem Spulen und springen in Aufnahmen wird die Bildausgabe arg rucklig, bis man die Wiedergabe stoppt und neu startet - vermutlich steckt das im "much more" auf der TODO-Liste :)
yaVDR-Doku

Meine VDRs

VDR 1: Point of View Ion-330-1 (Intel Atom 330@1,6 GHz). 2GB, 4TB HDD, KNC One DVB-C, Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, yaVDR 0.6 testing
VDR 2: Acer Revo 3610, 4GB Ram, 1x HDD 320 GB, Pinnacle PCTV SAT 452e, Medion X10, YaVDR 0.5 testing
VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce 210 512 MB, 500 GB, DD Duo-flex CT, Arch LInux, VDR 2.2.0, CIR-Empfänger
Client 1: Raspberry Pi Model B, Arch Linux ARM, VDR 2.2.0
Client 2: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.1
vdr-epg-daemon + MariaDB auf Cubietruck mit 32 GB SSD, Arch Linux ARM, optional Sundtek MediaTV Pro III + VDR 2.2.0
Ceterum censeo enchiridia esse lectitanda.

This post has been edited 2 times, last edit by "seahawk1986" (Sep 27th 2013, 12:25pm)


reufer

Professional

  • "reufer" started this thread

Posts: 997

Location: Bern

  • Send private message

8

Friday, September 27th 2013, 12:57pm

Ansonsten läuft das ja schon super mit SD-Kanälen (ich habe keine lokale DVB-Karte, nutze daher streamdev-client) - nur bei Radio-Kanälen habe ich keinen Ton und das Plugin hängt sich weg - am WE kann ich da vermutlich mehr dazu liefern, im Auslieferungszustand ist bei ArchLinuxARM journalctl nicht aktiv...
Mute und Lautstärkeregelung funktionieren bei mir auch noch nicht und nach dem Spulen und springen in Aufnahmen wird die Bildausgabe arg rucklig, bis man die Wiedergabe stoppt und neu startet - vermutlich steckt das im "much more" auf der TODO-Liste
Das ist korrekt. Lautstärke, Audio-only und alles ausser Start/Stop bei Aufnahmen fehlt und ist als nächstes dran. Das erste Ziel war, Bild und Ton synchron zum laufen zu bringen und beim Kanalwechsel jeweils alles sauber wieder auf und ab zu bauen. Aktuell schaut der Code recht übersichtlich aus, aber als OpenMax / OpenVG-Neuling hat mich das einiges an Nerven gekostet. Doch mit der aktuellen Grundlage sollte der Rest machbar sein...

Gruss
Thomas

9

Friday, September 27th 2013, 2:40pm

Hi,

ich bin mal wieder begeistert, sogar ohne es getestet zu haben.
Mein erster Gedanke war: hoffentlich gibt's diesmal die Sourcen, damit nicht schon wieder ein viel versprechendes Project den Bach runter geht,...
Aber meine Sorge war glücklicherweise unbegründet. Danke schon mal, ich werd's sicher dieses Wochenende testen :)

Claus
MLD 2.0 mit vdr 1.6 - SMT-7020s - 80GB HDD
MLD 5.1 mit vdr 2.2 - lirc yaUSBir - Octopus NET S2 - SCR - XFX GeForce 9300 mit Intel E3200 - 2GB RAM -
WD Green 6TB HDD - SanDisk 64GB SSD - Lian Li PC-C37B - Samsung LE40A559
MLD 5.1 mit vdr 2.2 - Raspberry Pi 3 - rpihddevice
MLD 5.1 mit vdr 2.2 - Banana Pi - softhddevice
MLD 5.0 mit Squeeze Play - Raspberry Pi 2 - 32GB SD - 7" Touch TFT

Posts: 6,250

Location: Main-Spessart

  • Send private message

10

Friday, September 27th 2013, 2:45pm

Lässt sich ArchLinux ARM cross-kompilieren? Ich spiele gerade mit dem Gedanken vdr4arch RPi fähig zu machen bzw. fertige Pakete auszuliefern.
VDR4Arch --> Lian-Li PC-C37B | ASRock Q1900M | 4GB RAM | SanDisk SDSSDP064G | Samsung HD155UI | Digital Devices Cine S2 V6 | ZOTAC GT630 (Rev. 2) Zone Edition

11

Friday, September 27th 2013, 2:50pm

Lässt sich ArchLinux ARM cross-kompilieren?

Es gibt eine fertige distccd-Toolchain dafür, die ich benutze: https://github.com/WarheadsSE/PKGs/tree/master/distccd-alarm damit sind die Zeiten zum Bauen durchaus akzeptabel. Ich baue aber alles direkt vom Raspberry aus, nicht komplett auf einem anderen Rechner.

Das Plugbuild-System von Arch Linux ARM war mir zu komplex und zu schlecht dokumentiert: https://github.com/archlinuxarm/plugbuild
yaVDR-Doku

Meine VDRs

VDR 1: Point of View Ion-330-1 (Intel Atom 330@1,6 GHz). 2GB, 4TB HDD, KNC One DVB-C, Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, yaVDR 0.6 testing
VDR 2: Acer Revo 3610, 4GB Ram, 1x HDD 320 GB, Pinnacle PCTV SAT 452e, Medion X10, YaVDR 0.5 testing
VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce 210 512 MB, 500 GB, DD Duo-flex CT, Arch LInux, VDR 2.2.0, CIR-Empfänger
Client 1: Raspberry Pi Model B, Arch Linux ARM, VDR 2.2.0
Client 2: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.1
vdr-epg-daemon + MariaDB auf Cubietruck mit 32 GB SSD, Arch Linux ARM, optional Sundtek MediaTV Pro III + VDR 2.2.0
Ceterum censeo enchiridia esse lectitanda.

This post has been edited 1 times, last edit by "seahawk1986" (Sep 27th 2013, 3:24pm)


12

Friday, September 27th 2013, 4:57pm

Hallo Thomas,
vielen Dank für dein neues Projekt. Ich werde das demnächst auch mal testen und hier berichten....
Viele Grüße, Uwe

mein VDR Stuff... :)

Thermaltake DH101: M2N68 Plus - 1 x HD-FF-6400 - 1 x L4MV6.2
angeschlossen über (SCR Inverto Black Unicable Multiswitch UST111-CUO10-8PP an Selfsat DQ)
yavdr-0.5 - vdr-2.2.0 - Plugins: dvbhddevice - targavfd - skinnopacity - osdteletext - xmltv2vdr
Neu: RaspberryPi3 mit rpihddevice Plugin (git) + sat2ip (an GSSBox) sowie USB-S2 DVB Empfänger (DVB-SKY) oder DVB-T(2)

13

Friday, September 27th 2013, 5:38pm

Zum Crosskompilieren eines Kernels habe ich mir die Crosschain komplett auf dem Desktop gebaut. Hier war mir distcc einfach zu langsam.

Aber letztlich ist es in der Tat so, dass Kompilieren direkt auf ARM um Längen einfacher ist. Die ARM-Dinger brauchen ja kaum Strom. Kompilieren anstarten und dann einfach über die Nacht rennen lassen.

14

Friday, September 27th 2013, 11:28pm

Fantastic work. Compiled vdr with streamdev-client and rpihddevice tonight and it worked surprisingly well. Fast channel switches and perfect picture quality on the channels (even though they are SD).

Can't wait to follow this project in more detail. Next steps for me is to get a libcec-deamon working so that I can use the remote controller of the TV.

Once again thanks for a very promising plugin.

My VDR systems


Server: Antec Fusion, Asus P5N7A-VM, Intel Core 2 Duo E7400 @ 2.8GHz, DD Cine S2 V6.5 + Duoflex S2 + Octopus Single CI, Gentoo, vdr-plugins: epgsearch, live, smarttvweb, streamdev-server, vompserver, vnsiserver
Client 1-1: Samsung UE46ES5505, Raspberry Pi with vompclient
Testing Client 1-2: Samsung UE46ES5505, Vdr on SmartTV
Client 2-1: Samsung UE32ES5505, Vdr on SmartTV
Client 3-1: Philips 32PFL4007T, Raspberry PI with vompclient
Client 4-1: Philips 40PFL5206,
Raspberry PI with vompclient
Client 5-1: Philips 32', Zotac MAG, OpenElec with XBMC Gotham
Testing Client 6-1: Philips 42', Vdr 2.1.6 with rphhddevice


15

Saturday, September 28th 2013, 9:56pm

Fantastic work. Compiled vdr with streamdev-client and rpihddevice tonight and it worked surprisingly well. Fast channel switches and perfect picture quality on the channels (even though they are SD).

Can't wait to follow this project in more detail. Next steps for me is to get a libcec-deamon working so that I can use the remote controller of the TV.

Once again thanks for a very promising plugin.

Hello
You should take a look at my howto:
Raspberry PI über CEC steuern

Meine VDRs

VDR Server: Ubuntu Lucid Lynx mit 6TB im RAID und quadtuner DVB-S2
VDR Client1: Raspbian @ Raspberry Pi 2
VDR Client2: Ubuntu @ Laptop
VDR Client3: MDL @ Raspberry Pi
VDR Client4: zen2vdr @ SMT-7020s (wird zZ nicht benutzt)
VDR Client5: Android @ HP Touchpad mit VDR Manager App


16

Sunday, September 29th 2013, 12:30am

Ich habe etwas gebraucht bis ich alles so weit hatte.
Nun läuft das Plugin und das OSD sieht auch gut aus aber wenn ich mir ein Video über streamdev-client holen will, dann hängt sich das Plugin auf und der Watchdog schlägt zu.

Ich glaube das Problem sind diese Zeilen:

Source code

1
2
3
4
Sep 29 00:26:20 raspberrypi vdr: [13290] rpihddevice: OmxSetVideoCodec()
Sep 29 00:26:20 raspberrypi vdr: [13287] rpihddevice: OmxError(UnsupportedSetting)
Sep 29 00:26:20 raspberrypi vdr: [13290] rpihddevice: failed to enable port buffer on video decoder!
Sep 29 00:26:20 raspberrypi vdr: [13290] rpihddevice: OmxSetVideoCodec() end



Hier noch mal alles zusammen

Spoiler Spoiler


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Sep 29 00:26:19 raspberrypi vdr: [13277] VDR version 2.0.3 started
Sep 29 00:26:19 raspberrypi vdr: [13277] switched to user 'vdr'
Sep 29 00:26:19 raspberrypi vdr: [13277] codeset is 'UTF-8' - known
Sep 29 00:26:19 raspberrypi vdr: [13277] ERROR (tools.c,1460): /usr/local/share/locale: Datei oder Verzeichnis nicht gefunden
.....
Sep 29 00:26:19 raspberrypi vdr: [13277] loading plugin: PLUGINS/lib//libvdr-streamdev-client.so.2.0.0
Sep 29 00:26:19 raspberrypi vdr: [13277] loading plugin: PLUGINS/lib//libvdr-rpihddevice.so.2.0.0
Sep 29 00:26:19 raspberrypi vdr: [13277] new device number 1
Sep 29 00:26:19 raspberrypi vdr: [13277] rpihddevice: new cAudio()
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//setup.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//sources.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//diseqc.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//scr.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//channels.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//timers.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//commands.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//reccmds.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//svdrphosts.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//remote.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//keymacros.conf
Sep 29 00:26:19 raspberrypi vdr: [13277] registered source parameters for 'A - ATSC'
Sep 29 00:26:19 raspberrypi vdr: [13277] registered source parameters for 'C - DVB-C'
Sep 29 00:26:19 raspberrypi vdr: [13277] registered source parameters for 'S - DVB-S'
Sep 29 00:26:19 raspberrypi vdr: [13277] registered source parameters for 'T - DVB-T'
Sep 29 00:26:19 raspberrypi vdr: [13277] no DVB device found
Sep 29 00:26:19 raspberrypi vdr: [13277] initializing plugin: streamdev-client (0.6.0-git): VTP Streaming Client
Sep 29 00:26:19 raspberrypi vdr: [13277] new device number 10
Sep 29 00:26:19 raspberrypi vdr: [13277] streamdev-client: got device number 10
Sep 29 00:26:19 raspberrypi vdr: [13277] initializing plugin: rpihddevice (0.0.1): HD output device for Raspberry Pi
Sep 29 00:26:19 raspberrypi vdr: [13277] OmxInit()
Sep 29 00:26:19 raspberrypi vdr: [13283] video directory scanner thread started (pid=13277, tid=13283, prio=high)
Sep 29 00:26:19 raspberrypi vdr: [13283] video directory scanner thread ended (pid=13277, tid=13283)
Sep 29 00:26:19 raspberrypi vdr: [13284] epg data reader thread started (pid=13277, tid=13284, prio=high)
Sep 29 00:26:19 raspberrypi vdr: [13284] reading EPG data from /var/cache/vdr/epg.data
Sep 29 00:26:19 raspberrypi vdr: [13284] epg data reader thread ended (pid=13277, tid=13284)
Sep 29 00:26:19 raspberrypi vdr: [13282] video directory scanner thread started (pid=13277, tid=13282, prio=high)
Sep 29 00:26:19 raspberrypi vdr: [13282] video directory scanner thread ended (pid=13277, tid=13282)
Sep 29 00:26:19 raspberrypi vdr: [13285] section handler thread started (pid=13277, tid=13285, prio=low)
Sep 29 00:26:19 raspberrypi vdr: [13277] setting primary device to 1
Sep 29 00:26:19 raspberrypi vdr: [13277] rpihddevice: new cOsdProvider()
Sep 29 00:26:19 raspberrypi vdr: [13277] assuming manual start of VDR
Sep 29 00:26:19 raspberrypi vdr: [13277] SVDRP listening on port 6419
Sep 29 00:26:19 raspberrypi vdr: [13277] setting current skin to "lcars"
Sep 29 00:26:19 raspberrypi vdr: [13277] loading /var/lib/vdr//themes/lcars-default.theme
Sep 29 00:26:19 raspberrypi vdr: [13277] starting plugin: streamdev-client
Sep 29 00:26:19 raspberrypi vdr: [13277] starting plugin: rpihddevice
Sep 29 00:26:19 raspberrypi vdr: [13277] remote control KBD - keys known
Sep 29 00:26:19 raspberrypi vdr: [13277] switching to channel 5
Sep 29 00:26:19 raspberrypi vdr: [13277] cTimeMs: using monotonic clock (resolution is 1 ns)
Sep 29 00:26:19 raspberrypi vdr: [13288] rpihddevice: cOvg() thread started
Sep 29 00:26:19 raspberrypi vdr: [13289] KBD remote control thread started (pid=13277, tid=13289, prio=high)
Sep 29 00:26:19 raspberrypi vdr: [13277] streamdev-client: Connected to server 192.168.1.2:2004 using protocol version 1.0
Sep 29 00:26:19 raspberrypi vdr: [13277] setting watchdog timer to 60 seconds
Sep 29 00:26:19 raspberrypi vdr: [13277] rpihddevice: SetPlayMode(Audio/Video)
Sep 29 00:26:19 raspberrypi vdr: [13277] rpihddevice: Start()
Sep 29 00:26:19 raspberrypi vdr: [13277] rpihddevice: SetClockState(eClockStateWaiting)
Sep 29 00:26:19 raspberrypi vdr: [13277] rpihddevice: Start() end
Sep 29 00:26:19 raspberrypi vdr: [13290] receiver on device 10 thread started (pid=13277, tid=13290, prio=high)
Sep 29 00:26:19 raspberrypi vdr: [13291] TS buffer on device 10 thread started (pid=13277, tid=13291, prio=high)
Sep 29 00:26:19 raspberrypi vdr: [13277] OSD size changed to 1920x1080 @ 1
Sep 29 00:26:20 raspberrypi vdr: [13290] rpihddevice: OmxSetVideoCodec()
Sep 29 00:26:20 raspberrypi vdr: [13287] rpihddevice: OmxError(UnsupportedSetting)
Sep 29 00:26:20 raspberrypi vdr: [13290] rpihddevice: failed to enable port buffer on video decoder!
Sep 29 00:26:20 raspberrypi vdr: [13290] rpihddevice: OmxSetVideoCodec() end
Sep 29 00:26:21 raspberrypi vdr: [13291] i/o throttle activated, count = 1 (tid=13291)
Sep 29 00:26:21 raspberrypi vdr: [13291] buffer usage: 70% (tid=13290)
Sep 29 00:26:22 raspberrypi vdr: [13291] buffer usage: 80% (tid=13290)
Sep 29 00:26:22 raspberrypi vdr: [13291] buffer usage: 90% (tid=13290)
Sep 29 00:26:22 raspberrypi vdr: [13291] buffer usage: 100% (tid=13290)

Meine VDRs

VDR Server: Ubuntu Lucid Lynx mit 6TB im RAID und quadtuner DVB-S2
VDR Client1: Raspbian @ Raspberry Pi 2
VDR Client2: Ubuntu @ Laptop
VDR Client3: MDL @ Raspberry Pi
VDR Client4: zen2vdr @ SMT-7020s (wird zZ nicht benutzt)
VDR Client5: Android @ HP Touchpad mit VDR Manager App


reufer

Professional

  • "reufer" started this thread

Posts: 997

Location: Bern

  • Send private message

17

Sunday, September 29th 2013, 3:36pm

Zwar immer noch ein Prototyp, aber das Plugin wird nun immerhin seinem Namen gerecht:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
2013-09-29: Version 0.0.2
-------------------------
- new:
  - volume control
  - H264 support
- fixed:
  - added missing includes to Makefile
  - PTS/OMX_TICKS conversion
- missing:
  - audio only play mode
  - buffer handling for proper replay support
  - other audio formats
  - much more...


Aktuell habe ich zwei Baustellen:

- Audio only
Leider habe ich als cDevice keine Möglichkeit herauszufinden, ob überhaupt Videodaten kommen oder nicht. Beim 'OMX-Baukasten' ist es so, dass ich dem Takt im Voraus sagen muss, ob er Bild und Ton synchronisieren soll. Momentan klappt daher Audio only nicht, da der Clock nicht anläuft, sondern auf ein Frame aus dem Video-Decoder wartet. Hier bin ich für kreative Vorschläge offen!

- Replay
Hier muss ich wohl noch einiges umbauen und eine Art Buffer-Management implementieren. Erst wenn das klappt und die Poll()-Methode funktioniert, kann ich mich um Play/Pause und Trickspeeds kümmern. Aber da muss ich so oder so nochmal über die Bücher...

Grüsse aus Bern
Thomas
reufer has attached the following file:

18

Sunday, September 29th 2013, 3:48pm

Das mit dem Bild bei h264 klappt, leider überträgt Kabel D für die Sender nur DD-Ton, keine normales Stereo-mpeg - gibt es eine Chance da noch Dolby-Digitalton zu unterstützen?
Hier bin ich für kreative Vorschläge offen!

Könnte man eventuell wie bei xineliboutput eine "nosignal.mpg" bzw. eine "radio.mpg" nutzen und daraus das Video-Bild holen?
yaVDR-Doku

Meine VDRs

VDR 1: Point of View Ion-330-1 (Intel Atom 330@1,6 GHz). 2GB, 4TB HDD, KNC One DVB-C, Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, yaVDR 0.6 testing
VDR 2: Acer Revo 3610, 4GB Ram, 1x HDD 320 GB, Pinnacle PCTV SAT 452e, Medion X10, YaVDR 0.5 testing
VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce 210 512 MB, 500 GB, DD Duo-flex CT, Arch LInux, VDR 2.2.0, CIR-Empfänger
Client 1: Raspberry Pi Model B, Arch Linux ARM, VDR 2.2.0
Client 2: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.1
vdr-epg-daemon + MariaDB auf Cubietruck mit 32 GB SSD, Arch Linux ARM, optional Sundtek MediaTV Pro III + VDR 2.2.0
Ceterum censeo enchiridia esse lectitanda.

19

Sunday, September 29th 2013, 3:49pm

vorhin eingeschaltet und läuft nun ohne das ich was geändert habe ?(

Jetzt ist meine SD hinüber. :motz4

Was ich aber feststellen könnte war das die PES Erkennung in PlayVideo nicht ganz richtig ist.

H264 NAL AUD Access Unit Delimiter (0x00) 0x00 0x00 0x01 0x09

Im Code wird aber nicht die führende (0x00) berücksichtigt.
Daher findet er bei H264 Streams nie einen Anfang.
Das alleine reicht aber nicht aus. Weiter bin ich aber nicht gekommen.

Meine VDRs

VDR Server: Ubuntu Lucid Lynx mit 6TB im RAID und quadtuner DVB-S2
VDR Client1: Raspbian @ Raspberry Pi 2
VDR Client2: Ubuntu @ Laptop
VDR Client3: MDL @ Raspberry Pi
VDR Client4: zen2vdr @ SMT-7020s (wird zZ nicht benutzt)
VDR Client5: Android @ HP Touchpad mit VDR Manager App

This post has been edited 1 times, last edit by "decembersoul" (Sep 29th 2013, 8:59pm)


Dr. Seltsam

Im Forum Zuhause

Posts: 10,108

Location: 3. Planet des Sonnensystems

Occupation: Organisator

  • Send private message

20

Sunday, September 29th 2013, 3:49pm

Quoted

- Audio only
Leider habe ich als cDevice keine Möglichkeit herauszufinden, ob überhaupt Videodaten kommen oder nicht. Beim 'OMX-Baukasten' ist es so, dass ich dem Takt im Voraus sagen muss, ob er Bild und Ton synchronisieren soll. Momentan klappt daher Audio only nicht, da der Clock nicht anläuft, sondern auf ein Frame aus dem Video-Decoder wartet. Hier bin ich für kreative Vorschläge offen!


schau Dir mal mein pvr350-Plugin (1.7.4) an. Der Decoder konnte keine Audio-only-Daten dekodieren, sondern brauchte dazu auch Video.
Audio-only-Streams beginnen immer mit einem Audio-Paket. Streams mit Video+Audio hingegen mit einem Video Paket. Die Erkennung habe ich dann über PlayAudio und PlayVideo gemacht. Ob das bei h264 genauso geht, weiss ich nicht.
Für Audio-only streams erzeugt das Plugin dann dummy-Video-Pakete mit einem Schwarzbild.

Reinhard Nissl war mir damals eine große Hilfe, ohne ihn hätte ich das nicht hingekriegt.
VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

Similar threads

Immortal Romance Spielautomat