[linux-dvb] driver deadlock when calling VIDEO_STILLPICTURE while replaying audio

Wolfgang Rohdewald wolfgang at rohdewald.de
Wed Jul 20 00:20:12 CEST 2005


Hi,

this is 2.6.12 with rather current cvs driver and firmware 261f

the muggle player now can show cover images. 
When playing a track ends, the next image is displayed and the next track
starts playing. However when displaying the next image the driver
still has audio data to be processed. This seems to cause dvb_play_kernel()
to never return, it hangs forever in
wait_event_interruptible(av7110->avout.queue,FREE_COND)

I can fix this in muggle by sleeping for 1 second before displaying
the picture but still this seems like a driver bug. Maybe play_iframe()
should write into the aux_ring_buffer?

                dprintk(1,"dvb_play_kernel before wait_event_interruptible,todo=%ld\n",todo);
                rc = wait_event_interruptible(av7110->avout.queue, FREE_COND);
                dprintk(1,"dvb_play_kernel after wait_event_interruptible\n");

Jul 20 00:11:44 mm kernel: dvb-ttpci: aux_ring_buffer_write(): aux_ring_buffer_write
Jul 20 00:11:44 mm kernel: dvb-ttpci: av7110_pes_play(): av7110_pes_play(2048)
Jul 20 00:11:44 mm last message repeated 26 times
Jul 20 00:11:44 mm kernel: dvb-ttpci: aux_ring_buffer_write(): aux_ring_buffer_write
Jul 20 00:11:44 mm kernel: dvb-ttpci: aux_ring_buffer_write(): aux_ring_buffer_write
Jul 20 00:11:44 mm kernel: dvb-ttpci: av7110_pes_play(): av7110_pes_play(2048)
Jul 20 00:11:44 mm last message repeated 24 times
Jul 20 00:11:44 mm kernel: dvb-ttpci: aux_ring_buffer_write(): aux_ring_buffer_write
Jul 20 00:11:44 mm kernel: dvb-ttpci: av7110_pes_play(): av7110_pes_play(2048)
Jul 20 00:11:44 mm last message repeated 31 times
Jul 20 00:11:44 mm kernel: dvb-ttpci: aux_ring_buffer_write(): aux_ring_buffer_write
Jul 20 00:11:44 mm kernel: dvb-ttpci: aux_ring_buffer_write(): aux_ring_buffer_write
Jul 20 00:11:44 mm kernel: dvb-ttpci: dvb_video_ioctl(): av7110:c3970000, cmd=40086f1e
Jul 20 00:11:44 mm kernel: dvb-ttpci: dvb_video_ioctl(): VIDEO_STILLPICTURE:before play_iframe
Jul 20 00:11:44 mm kernel: dvb-ttpci: dvb_play_kernel(): dvb_play_kernel before wait_event_interruptible,todo=9
Jul 20 00:11:44 mm kernel: dvb-ttpci: av7110_pes_play(): av7110_pes_play(2048)
Jul 20 00:12:03 mm last message repeated 101738 times
Jul 20 00:12:03 mm kernel: -ttpci: av7110_pes_play(): av7110_pes_play(2048)
Jul 20 00:12:03 mm kernel: dvb-ttpci: av7110_pes_play(): av7110_pes_play(2048)
Jul 20 00:12:03 mm last message repeated 101738 times


-- 
Wolfgang




More information about the linux-dvb mailing list