Opened 18 years ago
Closed 16 years ago
#5469 closed defect (fixed)
MythTV hangs sometimes playing a DVD
| Reported by: | Owned by: | skamithi | |
|---|---|---|---|
| Priority: | minor | Milestone: | unknown |
| Component: | MythTV - DVD Playback | Version: | 0.21-fixes |
| Severity: | medium | Keywords: | |
| Cc: | Ticket locked: | no |
Description
When I play a certain DVD (All About Eve, Criterion Collection) it usually displays the root menu, however occasionally I will get a black screen and mythtv will be hung. I have to remote login to kill mythfrontend.
Last few lines of the log file:
2008-06-24 19:49:07.086 AFD: Warning, video codec 0x1ba70d0 id(MPEG2VIDEO) type (Video) already open. 2008-06-24 19:49:07.188 AFD: codec AC3 has 0 channels 2008-06-24 19:49:07.189 AFD: Opened codec 0x7f19e39f50d0, id(AC3) type(Audio) 2008-06-24 19:49:07.191 Opening audio device '/dev/dsp'. ch 6(2) sr 48000 2008-06-24 19:49:07.191 Opening OSS audio device '/dev/dsp'. 2008-06-24 19:49:07.193 NVP: Enabling Audio 2008-06-24 19:49:07.227 Opening audio device '/dev/dsp'. ch 2(2) sr 48000 2008-06-24 19:49:07.227 Opening OSS audio device '/dev/dsp'. libdvdnav: RANDOM or SHUFFLE titles are NOT hand
Backtrace of the threads. It seems to be some sort of deadlock.
0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6 (gdb) i thr 11 Thread 0x412aa950 (LWP 10661) 0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 10 Thread 0x41e26950 (LWP 10662) 0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 9 Thread 0x427e7950 (LWP 10663) 0x00007f19ef6aceb2 in select () from /lib/libc.so.6 8 Thread 0x42fe8950 (LWP 10668) 0x00007f19f00e8d29 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 7 Thread 0x437e9950 (LWP 10669) 0x00007f19f00eb7db in read () from /lib/libpthread.so.0 6 Thread 0x447eb950 (LWP 10677) 0x00007f19ef6aceb2 in select () from /lib/libc.so.6 5 Thread 0x43fea950 (LWP 10748) 0x00007f19f00e5715 in pthread_join () from /lib/libpthread.so.0 4 Thread 0x44fec950 (LWP 10749) 0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6 3 Thread 0x45fee950 (LWP 10750) 0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6 2 Thread 0x457ed950 (LWP 10752) 0x00007f19ef6ac437 in ioctl () from /lib/libc.so.6 * 1 Thread 0x7f19f25eb730 (LWP 10660) 0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6 (gdb) bt #0 0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6 #1 0x00007f19ef6ad694 in usleep () from /lib/libc.so.6 #2 0x00007f19f1cbdc36 in TV::StartTV () from /usr/lib/libmythtv-0.21.so.0 #3 0x00000000004254d4 in ?? () #4 0x00007f19f0d7a912 in MythMainWindow::HandleMedia () from /usr/lib/libmythui-0.21.so.0 #5 0x00007f19dd928a2c in ?? () from /usr/lib/mythtv/plugins/libmythvideo.so #6 0x00007f19f0d788ee in MythMainWindow::ExitToMainMenu () from /usr/lib/libmythui-0.21.so.0 #7 0x00007f19f0d78dea in MythMainWindow::customEvent () from /usr/lib/libmythui-0.21.so.0 #8 0x00007f19f066a9fb in QObject::event () from /usr/lib/libqt-mt.so.3 #9 0x00007f19f069bdf3 in QWidget::event () from /usr/lib/libqt-mt.so.3 #10 0x00007f19f0615953 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 #11 0x00007f19f061662e in QApplication::notify () from /usr/lib/libqt-mt.so.3 #12 0x00007f19f061703a in QApplication::sendPostedEvents () from /usr/lib/libqt-mt.so.3 #13 0x00007f19f05cb9dd in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3 #14 0x00007f19f062a001 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3 #15 0x00007f19f0629eb2 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3 #16 0x000000000042d0e0 in ?? () ---Type <return> to continue, or q <return> to quit---q Quit (gdb) thr 2 [Switching to thread 2 (Thread 0x457ed950 (LWP 10752))]#0 0x00007f19ef6ac437 in ioctl () from /lib/libc.so.6 (gdb) bt #0 0x00007f19ef6ac437 in ioctl () from /lib/libc.so.6 #1 0x00007f19f12504bd in AudioOutputOSS::getSpaceOnSoundcard () from /usr/lib/libmyth-0.21.so.0 #2 0x00007f19f10c228a in AudioOutputBase::OutputAudioLoop () from /usr/lib/libmyth-0.21.so.0 #3 0x00007f19f10c4978 in AudioOutputBase::kickoffOutputAudioLoop () from /usr/lib/libmyth-0.21.so.0 #4 0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0 #5 0x00007f19ef6b378d in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () (gdb) thr 3 [Switching to thread 3 (Thread 0x45fee950 (LWP 10750))]#0 0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6 (gdb) bt #0 0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6 #1 0x00007f19ef6ad694 in usleep () from /lib/libc.so.6 #2 0x00007f19f1d0b794 in NuppelVideoPlayer::OutputVideoLoop () from /usr/lib/libmythtv-0.21.so.0 #3 0x00007f19f1d0bec8 in NuppelVideoPlayer::kickoffOutputVideoLoop () from /usr/lib/libmythtv-0.21.so.0 #4 0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0 #5 0x00007f19ef6b378d in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () (gdb) thr 4 [Switching to thread 4 (Thread 0x44fec950 (LWP 10749))]#0 0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6 (gdb) bt #0 0x00007f19ef6821f1 in nanosleep () from /lib/libc.so.6 #1 0x00007f19ef6ad694 in usleep () from /lib/libc.so.6 #2 0x00007f19f10ba280 in AudioOutputBase::Drain () from /usr/lib/libmyth-0.21.so.0 #3 0x00007f19f1cfe0bb in NuppelVideoPlayer::AddAudioData () from /usr/lib/libmythtv-0.21.so.0 #4 0x00007f19f1d72ba2 in AvFormatDecoder::GetFrame () from /usr/lib/libmythtv-0.21.so.0 #5 0x00007f19f1d077b0 in NuppelVideoPlayer::GetFrameNormal () from /usr/lib/libmythtv-0.21.so.0 #6 0x00007f19f1d07d21 in NuppelVideoPlayer::GetFrame () from /usr/lib/libmythtv-0.21.so.0 #7 0x00007f19f1d1b732 in NuppelVideoPlayer::StartPlaying () from /usr/lib/libmythtv-0.21.so.0 #8 0x00007f19f1c835f9 in SpawnDecode () from /usr/lib/libmythtv-0.21.so.0 #9 0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0 #10 0x00007f19ef6b378d in clone () from /lib/libc.so.6 #11 0x0000000000000000 in ?? () (gdb) thr 5 [Switching to thread 5 (Thread 0x43fea950 (LWP 10748))]#0 0x00007f19f00e5715 in pthread_join () from /lib/libpthread.so.0 (gdb) bt #0 0x00007f19f00e5715 in pthread_join () from /lib/libpthread.so.0 #1 0x00007f19f1c831e2 in TV::TeardownPlayer () from /usr/lib/libmythtv-0.21.so.0 #2 0x00007f19f1c94e74 in TV::StopStuff () from /usr/lib/libmythtv-0.21.so.0 #3 0x00007f19f1cb69b6 in TV::HandleStateChange () from /usr/lib/libmythtv-0.21.so.0 #4 0x00007f19f1cdf461 in TV::RunTV () from /usr/lib/libmythtv-0.21.so.0 #5 0x00007f19f1ce0359 in TV::EventThread () from /usr/lib/libmythtv-0.21.so.0 #6 0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0 #7 0x00007f19ef6b378d in clone () from /lib/libc.so.6 #8 0x0000000000000000 in ?? () (gdb) thr 6 [Switching to thread 6 (Thread 0x447eb950 (LWP 10677))]#0 0x00007f19ef6aceb2 in select () from /lib/libc.so.6 (gdb) bt #0 0x00007f19ef6aceb2 in select () from /lib/libc.so.6 #1 0x00007f19f118c3ea in MythSocket::readyReadThread () from /usr/lib/libmyth-0.21.so.0 #2 0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0 #3 0x00007f19ef6b378d in clone () from /lib/libc.so.6 #4 0x0000000000000000 in ?? () (gdb) thr 7 [Switching to thread 7 (Thread 0x437e9950 (LWP 10669))]#0 0x00007f19f00eb7db in read () from /lib/libpthread.so.0 (gdb) bt #0 0x00007f19f00eb7db in read () from /lib/libpthread.so.0 #1 0x00007f19ecc4c2bc in lirc_nextcode () from /usr/lib/liblirc_client.so.0 #2 0x00007f19f12713e0 in LircClient::Process () from /usr/lib/libmyth-0.21.so.0 #3 0x00007f19f0d81c88 in ?? () from /usr/lib/libmythui-0.21.so.0 #4 0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0 #5 0x00007f19ef6b378d in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () (gdb) thr 8 [Switching to thread 8 (Thread 0x42fe8950 (LWP 10668))]#0 0x00007f19f00e8d29 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 (gdb) bt #0 0x00007f19f00e8d29 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f19f08b8e62 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3 #2 0x00007f19f11146ea in MythContext::waitPrivRequest () from /usr/lib/libmyth-0.21.so.0 #3 0x0000000000427476 in ?? () #4 0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0 #5 0x00007f19ef6b378d in clone () from /lib/libc.so.6 #6 0x0000000000000000 in ?? () (gdb) thr 9 [Switching to thread 9 (Thread 0x427e7950 (LWP 10663))]#0 0x00007f19ef6aceb2 in select () from /lib/libc.so.6 (gdb) bt #0 0x00007f19ef6aceb2 in select () from /lib/libc.so.6 #1 0x00007f19f157b910 in SSDP::run () from /usr/lib/libmythupnp-0.21.so.0 #2 0x00007f19f060f64b in QThreadInstance::start () from /usr/lib/libqt-mt.so.3 #3 0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0 #4 0x00007f19ef6b378d in clone () from /lib/libc.so.6 #5 0x0000000000000000 in ?? () (gdb) thr 10 [Switching to thread 10 (Thread 0x41e26950 (LWP 10662))]#0 0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 (gdb) bt #0 0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f19f060f2d5 in ?? () from /usr/lib/libqt-mt.so.3 #2 0x00007f19f060f42e in QThread::msleep () from /usr/lib/libqt-mt.so.3 #3 0x00007f19f157d331 in TaskQueue::run () from /usr/lib/libmythupnp-0.21.so.0 #4 0x00007f19f060f64b in QThreadInstance::start () from /usr/lib/libqt-mt.so.3 #5 0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0 #6 0x00007f19ef6b378d in clone () from /lib/libc.so.6 #7 0x0000000000000000 in ?? () (gdb) thr 11 [Switching to thread 11 (Thread 0x412aa950 (LWP 10661))]#0 0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 (gdb) bt #0 0x00007f19f00e8fad in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f19f08b8e09 in QWaitCondition::wait () from /usr/lib/libqt-mt.so.3 #2 0x00007f19f158ce7f in CEvent::WaitForEvent () from /usr/lib/libmythupnp-0.21.so.0 #3 0x00007f19f158dd94 in WorkerThread::run () from /usr/lib/libmythupnp-0.21.so.0 #4 0x00007f19f060f64b in QThreadInstance::start () from /usr/lib/libqt-mt.so.3 #5 0x00007f19f00e4fc7 in start_thread () from /lib/libpthread.so.0 #6 0x00007f19ef6b378d in clone () from /lib/libc.so.6 #7 0x0000000000000000 in ?? ()
Attachments (3)
Change History (13)
comment:1 by , 18 years ago
| Status: | new → infoneeded_new |
|---|
comment:2 by , 18 years ago
I have a similar problem with a Harry Potter DVD (original) - plays fine in a standalone DVD player. Symptom: At a certain place, the picture freezes, and MythTV stops responding to keypresses. After a few minutes, MythTV returns to the DVD playback menu.
Attaching frontend log.
comment:4 by , 18 years ago
| Component: | mythtv → DVD Playback |
|---|---|
| Owner: | changed from to |
| Status: | infoneeded_new → new |
comment:5 by , 18 years ago
Sorry, I apparently forgot to attach the file the last time. Couldn't find it, so had to create another one.
I'm running 0-21-fixes revision 18322.
comment:6 by , 17 years ago
| Status: | new → assigned |
|---|
by , 17 years ago
| Attachment: | loony-vol5-disc1.errors added |
|---|
loony tunes dvd mythfrontend -v playback log
comment:7 by , 17 years ago
I've attached another mythfrontend -v playback log. This is from 0.21-fixes revision 19344. It is from Loony Tunes Volume 5 disc1, and hangs on the still frame that warns "these cartoons are a product of their time..."
Please let me know if there is anything else I can do to help track this down. I like that 0.21 has a built-in DVD player, especially with the bookmark feature, but MANY DVDs don't play properly with it, compared to 0.20, so it hasn't been very gf-friendly :)
by , 17 years ago
| Attachment: | dvd-stillframe-fix.diff added |
|---|
Potential fix for DVD still frames causing the player to get hung.
comment:8 by , 17 years ago
I have attached a patch to potentially resolve an issue that causes the NuppelVideoPlayer decoder thread to get stuck in the AudioOutputBase::Drain() function while the audio output thread is paused.
The first part of the patch allows the audio to be un-paused when prebuffering is done. The second part of the patch keeps a thread from getting stuck in the Drain() function if the audio buffer level is not changing. This is really a fail-safe in case there are other conditions where this set of events can occur.
comment:9 by , 16 years ago
| Component: | DVD Playback → MythTV - DVD Playback |
|---|---|
| Status: | assigned → infoneeded |
Could you possibly test with .23-fixes (or even better, current trunk) and let us know if this problem persists? Stanley has been doing a lot of work on the DVD playback lately and one of the fixes might pertain to your issue.
comment:10 by , 16 years ago
| Resolution: | → fixed |
|---|---|
| Status: | infoneeded → closed |
Closing with no response, very very old ticket, and many recent fixes to this kind of thing in .23 and trunk. If this issue exists on .23-rc3 or later, please reopen with -v playback logs.

please run the latest 0.21 fixes. if the problem is still reproducible, get the "mythfrontend -v playback" from the beginning of dvd playback to when it hangs. then gzip/bzip the output and attach it to the ticket.