this might explain why vdr often dies when switching from/to a channel with DD sound - like ZDF and Pro 7, at least I hope so. Not tested yet, but the bug seems clear enough: --- xx 2005-06-05 20:59:08.000000000 +0200 +++ transfer.c 2005-06-05 20:59:16.000000000 +0200 @@ -68,7 +68,7 @@ int Result = 0; #ifdef FW_NEEDS_BUFFER_RESERVE_FOR_AC3 bool GotBufferReserve = false; - int RequiredBufferReserve = KILOBYTE(DvbCardWith4MBofSDRAM ? 288 : 576); + int RequiredBufferReserve = KILOBYTE(DvbCardWith4MBofSDRAM ? 576 : 288); #endif active = true; while (active) { Program received signal SIGILL, Illegal instruction. [Switching to Thread 557063 (LWP 15183)] 0xb7db542e in main_arena () from /lib/libc.so.6 (gdb) bt #0 0xb7db542e in main_arena () from /lib/libc.so.6 #1 0x0811db65 in cTransfer::Action (this=0xac88870) at transfer.c:84 #2 0x08114d9e in cThread::StartThread (Thread=0xac88990) at thread.c:233 #3 0xb7ea7e51 in pthread_start_thread () from /lib/libpthread.so.0 #4 0xb7ea7ecf in pthread_start_thread_event () from /lib/libpthread.so.0 #5 0xb7d5c92a in clone () from /lib/libc.so.6 (gdb) up #1 0x0811db65 in cTransfer::Action (this=0xac88870) at transfer.c:84 84 if (ringBuffer->Available() < RequiredBufferReserve) { // used to be MAXFRAMESIZE, but the HDTV value of KILOBYTE(512) is way too much here Current language: auto; currently c++ (gdb) p RequiredBufferReserve $1 = 589824 (gdb) p DvbCardWith4MBofSDRAM $4 = false -- Wolfgang