VDR startet auf genau einem Sender (N-TV HD) einfach neu
-
-
Ich will aber, dass er bei Length == 0 vorzeitig aus der Funktion aussteigt.
Lars.
-
Hm, Length == 0 scheint aber zulässig zu sein, manchmal soll das wohl. Dann ist "< 0" wohl doch korrekter.
Lars.
-
Also an die Tester: die Prüfung "Length <= 0" durch "Length < 0" ersetzen.
Ich schau mal, ob ich das mit dem buffer overflow check noch hinbekomme, wird evtl. aber erst am Wochenende was.Lars.
-
Ich will aber, dass er bei Length == 0 vorzeitig aus der Funktion aussteigt.
Ohne Patch wird das im VDR ja schon immer verarbeitet.
Plan B wäre eine CASE Anweisung. Bei 0 ein return und bei -1 zusätzlich loggen. Aber mit dem jetzigen Patch gibt es ja kein -1 mehr
Plan C das <= lassen und nicht loggen.
Ist alles eher kosmetisch. Hauptsache das -1 wird abgefangen wegen dem Segfault! Das sollte dann auf jeden Fall im VDR bleiben, da man ja nie wissen kann...
-
Hallo zusammen,
erst einmal vielen Dank an alle, die sich um eine Lösung der Problematik bemühen!
Ich habe den letzten Patch (vdr-2.2.0-caid_buffer-v1.diff) von Lars (mini73) eingespielt, und damit geht jetzt auch bei mir nTV-HD wieder bei aktuellem dvb(api) und os(cam).
Gruß
NeoPS: Nur eine Frage. Kann es sein, dass der VDR bei "erweiterter Prüfung" der CAIDs etwas länger fürs Umschalten braucht ... ?
-
Hast du auch in ci.c in der Funktion AddCaDescriptors den Vergleich auf "Length < 0" geändert?
Eventuell ist "Length == 0" genau für diese Funktion wichtig.Lars.
-
Plan B wäre eine CASE Anweisung. Bei 0 ein return und bei -1 zusätzlich loggen. Aber mit dem jetzigen Patch gibt es ja kein -1 mehr
Nein, ich denke, das richtige ist, nur bei "< 0" zu loggen und rauszuspringen.Lars.
-
Hast du auch in ci.c in der Funktion AddCaDescriptors den Vergleich auf "Length < 0" geändert?
Eventuell ist "Length == 0" genau für diese Funktion wichtig.Lars.
Hi Lars,habe Deinen Patch so wie er war eingespielt und da stand dann
Code[..] if (Length <= 0) { dsyslog("DEBUG: calling AddCaDescriptors with Length %d", Length); return; } [..]
Soll ich die Passage mal auf "Length == 0" abändern und dann testen?
-
Obwohl schon gepostet, hier auch das resultat mit meinem RPI2. Nutze Patch von Lars mit '<=' auf '<' änderung.
[spoiler]
Code
Alles anzeigenDec 03 17:38:40 alarmpi vdr[8704]: [8704] connect from 127.0.0.1, port 41297 - accepted Dec 03 17:38:40 alarmpi vdr[8704]: [8704] switching to channel 30 (n-tv HD) Dec 03 17:38:40 alarmpi vdr[8704]: [cecremote] Primary device, Channel Switch 0 t Dec 03 17:38:40 alarmpi vdr[8704]: [8704] CAM 1: assigned to device 1 Dec 03 17:38:40 alarmpi vdr[8704]: [cecremote] Not primary device, Channel Switch 0 f Dec 03 17:38:40 alarmpi vdr[8704]: [cecremote] Not primary device, Channel Switch 30 f Dec 03 17:38:41 alarmpi vdr[8704]: [8704] XXXXXXX: 0.0 set CAM decrypt (SID 61204 (0xEF14), caLm 4, HasCaDescriptors 0) Dec 03 17:38:41 alarmpi vdr[8704]: [8726] device 1 TS buffer thread ended (pid=8704, tid=8726) Dec 03 17:38:41 alarmpi vdr[8704]: [8725] buffer stats: 160176 (3%) used Dec 03 17:38:41 alarmpi vdr[8704]: [8725] device 1 receiver thread ended (pid=8704, tid=8725) Dec 03 17:38:41 alarmpi vdr[8704]: [cecremote] Primary device, Channel Switch 30 t Dec 03 17:38:41 alarmpi vdr[8704]: [8733] device 1 receiver thread started (pid=8704, tid=8733, prio=high) Dec 03 17:38:41 alarmpi vdr[8704]: [cecremote] TV : n-tv HD Dec 03 17:38:41 alarmpi vdr[8704]: [8734] device 1 TS buffer thread started (pid=8704, tid=8734, prio=high) Dec 03 17:38:41 alarmpi vdr[8704]: [8704] closing SVDRP connection Dec 03 17:38:41 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch MPEG Dec 03 17:38:41 alarmpi vdr[8704]: [8717] rpihddevice: [libav] Header missing Dec 03 17:38:41 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 17:38:42 alarmpi vdr[8704]: [8704] retuning due to modification of channel 30 (n-tv HD) Dec 03 17:38:42 alarmpi vdr[8704]: [8704] switching to channel 30 (n-tv HD) Dec 03 17:38:42 alarmpi vdr[8704]: [8704] DEBUG: buffer for ca-descriptors too small (512, needed 529) Dec 03 17:38:42 alarmpi vdr[8704]: [8704] XXXXXXX: 0.0 set CAM decrypt (SID 61204 (0xEF14), caLm 5, HasCaDescriptors 1) Dec 03 17:38:42 alarmpi vdr[8704]: [8704] CAM 1: unassigned Dec 03 17:38:42 alarmpi vdr[8704]: [cecremote] Primary device, Channel Switch 0 t Dec 03 17:38:42 alarmpi vdr[8704]: [8734] device 1 TS buffer thread ended (pid=8704, tid=8734) Dec 03 17:38:42 alarmpi vdr[8704]: [8733] buffer stats: 88360 (1%) used Dec 03 17:38:42 alarmpi vdr[8704]: [8733] device 1 receiver thread ended (pid=8704, tid=8733) Dec 03 17:38:42 alarmpi vdr[8704]: [8704] CAM 1: assigned to device 1 Dec 03 17:38:42 alarmpi vdr[8704]: [cecremote] Not primary device, Channel Switch 0 f Dec 03 17:38:42 alarmpi vdr[8704]: [cecremote] Not primary device, Channel Switch 30 f Dec 03 17:38:42 alarmpi vdr[8704]: [8704] DEBUG: buffer for ca-descriptors too small (512, needed 529) Dec 03 17:38:42 alarmpi vdr[8704]: [8704] DEBUG: buffer for ca-descriptors too small (512, needed 529) Dec 03 17:38:42 alarmpi vdr[8704]: [8704] XXXXXXX: 0.0 set CAM decrypt (SID 61204 (0xEF14), caLm 4, HasCaDescriptors 1) Dec 03 17:38:42 alarmpi vdr[8704]: [8735] device 1 receiver thread started (pid=8704, tid=8735, prio=high) Dec 03 17:38:42 alarmpi vdr[8704]: [cecremote] Primary device, Channel Switch 30 t Dec 03 17:38:42 alarmpi vdr[8704]: [cecremote] TV : n-tv HD Dec 03 17:38:42 alarmpi vdr[8704]: [8736] device 1 TS buffer thread started (pid=8704, tid=8736, prio=high) Dec 03 17:38:43 alarmpi vdr[8704]: [8735] rpihddevice: set video codec to H264 Dec 03 17:38:43 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 17:38:44 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 17:38:44 alarmpi vdr[8704]: [8716] rpihddevice: video stream started 1920x1080@50i Dec 03 17:38:49 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch MPEG Dec 03 17:38:49 alarmpi vdr[8704]: [8717] rpihddevice: [libav] Header missing Dec 03 17:38:49 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 17:38:49 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch MPEG Dec 03 17:38:49 alarmpi vdr[8704]: [8717] rpihddevice: [libav] Header missing Dec 03 17:38:49 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 17:38:50 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 17:38:50 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz nDec 03 17:39:02 alarmpi vdr[8704]: [8704] connect from 127.0.0.1, port 41298 - accepted Dec 03 17:39:02 alarmpi vdr[8704]: [8704] switching to channel 6 (ServusTV HD Oesterreich)
[/spoler]
-
-
-
OK!Danke & Gruß
NeoPS: Ich habe mal den "cw-cache" von os(cam) gelöscht - also die *.cwl-Dateien im entsprechenden Verzeichnis - jetzt schaltet der VDR wieder "normal" um, ohne dass ich den Quellcode angepasst habe.
-
So wie es aussieht, wird mit dem Patch auf n-tv HD ein zweites mal umgeschlatet, was die relativ lange Zeit bis zum Bild erklärt.
ZitatDec 03 17:38:40 alarmpi vdr[8704]: [8704] switching to channel 30 (n-tv HD)
...
Dec 03 17:38:40 alarmpi vdr[8704]: [8704] CAM 1: assigned to device 1
...
Dec 03 17:38:42 alarmpi vdr[8704]: [8704] retuning due to modification of channel 30 (n-tv HD)
Dec 03 17:38:42 alarmpi vdr[8704]: [8704] switching to channel 30 (n-tv HD)
Dec 03 17:38:42 alarmpi vdr[8704]: [8704] DEBUG: buffer for ca-descriptors too small (512, needed 529)
...
Dec 03 17:38:42 alarmpi vdr[8704]: [8704] CAM 1: unassigned
...Dec 03 17:38:42 alarmpi vdr[8704]: [8704] CAM 1: assigned to device 1
...
Dec 03 17:38:42 alarmpi vdr[8704]: [8704] DEBUG: buffer for ca-descriptors too small (512, needed 529)
Dec 03 17:38:42 alarmpi vdr[8704]: [8704] DEBUG: buffer for ca-descriptors too small (512, needed 529)
Dec 03 17:38:42 alarmpi vdr[8704]: [8704] XXXXXXX: 0.0 set CAM decrypt (SID 61204 (0xEF14), caLm 4, HasCaDescriptors 1)
Dec 03 17:38:42 alarmpi vdr[8704]: [8735] device 1 receiver thread started (pid=8704, tid=8735, prio=high)
Dec 03 17:38:42 alarmpi vdr[8704]: [cecremote] Primary device, Channel Switch 30 t
Dec 03 17:38:42 alarmpi vdr[8704]: [cecremote] TV : n-tv HD -
... das Log zeigt bei mir die gleichen Einträge; aber wie gesagt, nach dem Löschen des CW-Cache geht es wieder "normal schnell".
2015-12-03T18:26:57.236507+01:00 srv05 vdr: [20063] switching to channel 13 (n-tv HD)
2015-12-03T18:26:57.237049+01:00 srv05 vdr: [20063] [softhddev]SetPlayMode: 0
2015-12-03T18:26:57.237422+01:00 srv05 vdr: [20063] [softhddev]SetVideoDisplayFormat: 1
2015-12-03T18:26:57.237814+01:00 srv05 vdr: [20063] [softhddev]GetSpuDecoder:
2015-12-03T18:26:57.261828+01:00 srv05 vdr: [20063] DEBUG: calling AddCaDescriptors with Length 0
2015-12-03T18:26:57.262225+01:00 srv05 vdr: [20063] CAM 1: unassigned
2015-12-03T18:26:57.311821+01:00 srv05 vdr: [20063] CAM 1: assigned to device 1
2015-12-03T18:26:57.312269+01:00 srv05 vdr: [20063] DEBUG: buffer for ca-descriptors too small (512, needed 529)
2015-12-03T18:26:57.312754+01:00 srv05 vdr: [20063] DEBUG: calling AddCaDescriptors with Length 0
2015-12-03T18:26:57.313121+01:00 srv05 vdr: [20063] DEBUG: calling AddCaDescriptors with Length 0
2015-12-03T18:26:57.313480+01:00 srv05 vdr: [20063] DEBUG: buffer for ca-descriptors too small (512, needed 529)
2015-12-03T18:26:57.313852+01:00 srv05 vdr: [20063] DEBUG: calling AddCaDescriptors with Length 0
2015-12-03T18:26:57.314238+01:00 srv05 vdr: [20063] DEBUG: calling AddCaDescriptors with Length 0
2015-12-03T18:26:57.326675+01:00 srv05 vdr: [24301] device 1 TS buffer thread ended (pid=20063, tid=24301)
2015-12-03T18:26:57.329926+01:00 srv05 vdr: [24300] buffer stats: 212064 (4%) used
2015-12-03T18:26:57.330315+01:00 srv05 vdr: [24300] device 1 receiver thread ended (pid=20063, tid=24300)
2015-12-03T18:26:57.342305+01:00 srv05 vdr: [25344] device 1 receiver thread started (pid=20063, tid=25344, prio=high)
2015-12-03T18:26:57.342766+01:00 srv05 vdr: [20063] [softhddev]SetPlayMode: 1
2015-12-03T18:26:57.343217+01:00 srv05 vdr: [25345] device 1 TS buffer thread started (pid=20063, tid=25345, prio=high)
2015-12-03T18:26:57.657676+01:00 srv05 vdr: audio/alsa: using device 'pcm.stereo_hdmi_1'
2015-12-03T18:26:57.673619+01:00 srv05 vdr: audio/alsa: start delay 336ms
2015-12-03T18:26:57.761023+01:00 srv05 vdr: [softhddev] invalid PES video packet
2015-12-03T18:26:57.863049+01:00 srv05 vdr: [softhddev] 2 invalid PES video packet(s)
2015-12-03T18:26:57.986071+01:00 srv05 vdr: video: decoder buffer empty, duping frame (71/19306) 0 v-buf
2015-12-03T18:26:57.986696+01:00 srv05 vdr: video: --:--:--.--- +0 0 0/\ms 0+5+4 v-buf
2015-12-03T18:26:59.028980+01:00 srv05 vdr: video: decoder buffer empty, duping frame (90/19306) 0 v-buf
2015-12-03T18:26:59.029484+01:00 srv05 vdr: video/vdpau: missed frame (9/4)
2015-12-03T18:27:00.486143+01:00 srv05 vdr: video/vdpau: missed frame (10/6)
2015-12-03T18:27:00.486630+01:00 srv05 vdr: video: slow down video, duping frame
2015-12-03T18:27:00.487018+01:00 srv05 vdr: video: 20:03:22.326 +105 626 0/\ms 34+7+4 v-buf
2015-12-03T18:27:00.645998+01:00 srv05 vdr: video/vdpau: synced after 86 frames -
Leider bei mir gibt es viele artefecte:
Code
Alles anzeigenDec 03 18:55:59 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch MPEG Dec 03 18:55:59 alarmpi vdr[8704]: [8717] rpihddevice: [libav] Header missing Dec 03 18:55:59 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 18:56:01 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:56:01 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 18:56:09 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:56:09 alarmpi vdr[8704]: [8717] rpihddevice: [libav] frame sync error Dec 03 18:56:09 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 18:56:09 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:56:09 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 18:56:19 alarmpi vdr[8704]: [8717] rpihddevice: [libav] error in bit allocation Dec 03 18:56:19 alarmpi vdr[8704]: [8717] rpihddevice: [libav] error decoding the audio block Dec 03 18:56:29 alarmpi vdr[8704]: [8717] rpihddevice: [libav] exponent out-of-range Dec 03 18:56:29 alarmpi vdr[8704]: [8717] rpihddevice: [libav] error decoding the audio block Dec 03 18:56:39 alarmpi vdr[8704]: [8717] rpihddevice: [libav] frame sync error Dec 03 18:56:39 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 18:56:49 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch MPEG Dec 03 18:56:49 alarmpi vdr[8704]: [8717] rpihddevice: [libav] Header missing Dec 03 18:56:49 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 18:56:49 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch MPEG Dec 03 18:56:49 alarmpi vdr[8704]: [8717] rpihddevice: [libav] Header missing Dec 03 18:56:49 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 18:56:50 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:56:50 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 18:56:59 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:56:59 alarmpi vdr[8704]: [8717] rpihddevice: [libav] frame sync error Dec 03 18:56:59 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 18:57:00 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:57:00 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 18:57:09 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:57:09 alarmpi vdr[8704]: [8717] rpihddevice: [libav] frame sync error Dec 03 18:57:09 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 18:57:09 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:57:09 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 18:57:19 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:57:19 alarmpi vdr[8704]: [8717] rpihddevice: [libav] frame sync error Dec 03 18:57:19 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 18:57:20 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:57:21 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 18:57:29 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:57:29 alarmpi vdr[8704]: [8717] rpihddevice: [libav] frame sync error Dec 03 18:57:29 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 18:57:29 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 18:57:29 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 18:57:39 alarmpi vdr[8704]: [8717] rpihddevice: [libav] delta bit allocation strategy reserved Dec 03 18:57:39 alarmpi vdr[8704]: [8717] rpihddevice: [libav] error decoding the audio block
Hier war es noch schlimmer
Code
Alles anzeigenDec 03 19:04:09 alarmpi vdr[8704]: [8717] rpihddevice: [libav] frame sync error Dec 03 19:04:09 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 19:04:09 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 19:04:09 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:04:19 alarmpi vdr[8704]: [9130] epg data writer thread started (pid=8704, tid=9130, prio=low) Dec 03 19:04:19 alarmpi vdr[8704]: [8717] rpihddevice: [libav] error in bit allocation Dec 03 19:04:19 alarmpi vdr[8704]: [8717] rpihddevice: [libav] error decoding the audio block Dec 03 19:04:19 alarmpi vdr[8704]: [9130] epg data writer thread ended (pid=8704, tid=9130) Dec 03 19:04:29 alarmpi vdr[8704]: [8717] rpihddevice: [libav] error in bit allocation Dec 03 19:04:29 alarmpi vdr[8704]: [8717] rpihddevice: [libav] error decoding the audio block Dec 03 19:04:29 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch MPEG Dec 03 19:04:29 alarmpi vdr[8704]: [8717] rpihddevice: [libav] Header missing Dec 03 19:04:29 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 19:04:29 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 19:04:29 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:04:36 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:04:36 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:04:39 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch MPEG Dec 03 19:04:39 alarmpi vdr[8704]: [8717] rpihddevice: [libav] Header missing Dec 03 19:04:39 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 19:04:39 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 19:04:43 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:04:43 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:04:50 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:04:50 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:04:54 alarmpi vdr[8704]: [8715] rpihddevice: OmxError(StreamCorrupt) Dec 03 19:04:58 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:04:58 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:05:05 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:05:05 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz
-
Einfach wie von stefan.r vorgeschlagen den Buffer auf 1024 Byte erhöhen. Damit sollte man erstmal auf der sicheren Seite sein und die Umschaltzeiten bleiben auch normal.
Bei tvheadend z.B. ist die Zahl der caDescriptors auf 16 beschränkt. Dort wird mit linked-lists gearbeitet wenn ich den code richtig verstanden habe und der nötige Speicher so nach Bedarf alloziert.
-
Jetzt habe ich einen Crash hier, obwohl keinen coredump erstellt. Nach umschalten ist einfach OSD geblieben und VDR hat sich neue gestartet. In dmesg auch nichts auffälliges.
Code
Alles anzeigenDec 03 19:20:30 alarmpi vdr[8704]: [8717] rpihddevice: [libav] Header missing Dec 03 19:20:30 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 19:20:31 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:20:31 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 19:20:31 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:20:38 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:20:38 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:20:46 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:20:46 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:20:53 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:20:53 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:21:01 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:21:01 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:21:08 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:21:08 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:21:09 alarmpi vdr[8704]: [8717] rpihddevice: [libav] frame sync error Dec 03 19:21:09 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 19:21:16 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:21:16 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:21:19 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 19:21:19 alarmpi vdr[8704]: [8717] rpihddevice: [libav] frame sync error Dec 03 19:21:19 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 19:21:20 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 19:21:25 alarmpi vdr[8704]: [8766] ERROR: TS packet not accepted in Transfer Mode Dec 03 19:21:25 alarmpi vdr[8704]: [8717] rpihddevice: set HDMI audio output format to 2ch PCM, 48.0kHz Dec 03 19:21:29 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 19:21:29 alarmpi vdr[8704]: [8717] rpihddevice: [libav] frame sync error Dec 03 19:21:29 alarmpi vdr[8704]: [8717] rpihddevice: failed to decode audio frame! Dec 03 19:21:29 alarmpi vdr[8704]: [8717] rpihddevice: new audio codec: 2ch AC3 Dec 03 19:21:31 alarmpi vdr[8704]: [cecremote] CEC Command 68 : user control pressed Dec 03 19:21:31 alarmpi vdr[8704]: [cecremote] key pressed 23 (0) Dec 03 19:21:31 alarmpi vdr[8704]: [cecremote] cCECRemote::PushCmd 1 (size 0) Dec 03 19:21:31 alarmpi vdr[8704]: [cecremote] Action 1 Val 35 Phys Addr 0 Logical ffffffff ffffffff Dec 03 19:21:31 alarmpi vdr[8704]: [cecremote] Put(14) Dec 03 19:21:31 alarmpi vdr[8704]: [cecremote] CEC Command 139 : vendor remote button up Dec 03 19:21:31 alarmpi vdr[8704]: [cecremote] key pressed 23 (275) Dec 03 19:21:32 alarmpi vdr[8704]: [8704] switching to channel 3 (ORF III HD) Dec 03 19:23:01 alarmpi vdr[8704]: [8704] PANIC: watchdog timer expired - exiting! Dec 03 19:23:01 alarmpi vdr[8704]: [cecremote] cCECRemote::PushCmd 0 (size 0) Dec 03 19:23:01 alarmpi vdr[8704]: [cecremote] Action 0 Val -1 Phys Addr 0 Logical ffffffff ffffffff Dec 03 19:23:01 alarmpi vdr[8704]: [cecremote] cCECRemote exit worker thread Dec 03 19:23:01 alarmpi vdr[8704]: [8722] CEC receiver thread ended (pid=8704, tid=8722) Dec 03 19:23:01 alarmpi vdr[8704]: [cecremote] CEC NOTICE: >> source deactivated: Playback 1 (4) Dec 03 19:23:01 alarmpi vdr[8704]: [cecremote] CECSourceActivatedCallback adress 4 activated 0 Dec 03 19:23:01 alarmpi vdr[8704]: [cecremote] CEC NOTICE: << Playback 1 (4) -> broadcast (F): inactive source Dec 03 19:23:01 alarmpi vdr[8704]: [cecremote] CEC NOTICE: unregistering client: libCEC version = 3.0.1, client version = 3.0.1, firmware version = 1, logical address(es) = Playback 1 (4) , physical address: 1.0.0.0, compiled on Fri Sep 18 18:23:17 UTC 2015 by builduser on Linux 3.10.82 Dec 03 19:23:03 alarmpi vdr[8704]: [cecremote] cCECRemote::Disconnect Dec 03 19:23:03 alarmpi vdr[8704]: [8767] device 1 TS buffer thread ended (pid=8704, tid=8767) Dec 03 19:23:03 alarmpi vdr[8704]: [8766] buffer stats: 594832 (11%) used Dec 03 19:23:03 alarmpi vdr[8704]: [8766] device 1 receiver thread ended (pid=8704, tid=8766) Dec 03 19:23:03 alarmpi systemd[1]: vdr.service: Main process exited, code=exited, status=1/FAILURE Dec 03 19:23:03 alarmpi systemd[1]: vdr.service: Unit entered failed state. Dec 03 19:23:03 alarmpi systemd[1]: vdr.service: Failed with result 'exit-code'. Dec 03 19:23:03 alarmpi systemd[1]: vdr.service: Service hold-off time over, scheduling restart. Dec 03 19:23:03 alarmpi systemd[1]: Stopped Video Disk Recorder.
-
Das war kein Absturz, sondern es kamen so lange keine Daten, da hat der watchdog zugeschlagen. Da wird wohl was an anderer Stelle geklemmt haben.
Im finalen Patch werde ich auch eine Buffergröße von 1024 eintragen, dann sollte nur noch sehr selten (wenn überhaupt) der Speicher neu angelegt werden.
Dass zwei mal auf den Kanal geschaltet wurde, liegt nur daran, dass sich irgendwas am Kanal geändert hat (eine PID oder so?), sieht man am "retuning".
Und wenn das Tonformat ständig wechselt, kann es zu den beschriebenen Problemen kommen.
Allgemein kann es sein, dass das Entschlüsseln dieses Kanals den vdr etwas aus dem Tritt bringt oder der Sender sendet einfach komischen Mist. Vielleicht muss da mal ein Encoder resettet werden.
Lars.
-
In Bash würde ich das mir Arrays machen, wo man einfach einen neuen Eintrag dran hängen kann. So was ähnliches muss es doch in C auch geben. Dann braucht man keinen festen Puffer und so was wie mit n-tv HD kann erst gar nicht passieren.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!