Ausgehend von hier betreffend fehlerhafter Timeraufnahmen:
'cRecordControls::Start()' in 'menu.c' hält einen Read-Lock auf die "Channels". Beim Erzeugen der cRecordControls kann es vorkommen, dass GetEvent() für den Event erst auf die EPG Daten warten muss, was bis zu 4 Sekunden dauern kann - und genau so lange bleibt der Lock auf "Channels".
Das hat unter anderem zur Folge, das in pat.c die PMT mancher Programme nicht eingelesen wird, und damit - wenn es der erste Zugriff auf den Transponder war - die CaDescriptoren der verschlüsselten Programme nicht bekannt sind. Aufnahmen solcher Programme enden daher mit einem Emergency Exit.
Der 1.Patch im Anhang löst nun den Lock schon bevor die cRecordControl erzeugt werden, und im 2. Patch wird in pat.c das Timeout für GetChannelsWrite() von 10ms auf 20ms erhöht. Das genügt um bei mir alle PMTs korrekt einzulesen - ist aber vom Gefühl her noch nicht die beste Lösung für 'pat.c'.
Helmut