Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#6587 closed defect (fixed)

DVD skip forward/rewind hangs mythfrontend

Reported by: rafmoslin@… Owned by: markk
Priority: major Milestone: 0.22
Component: MythTV - DVD Playback Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Looking for some pointers to help in working out why seeking either forward or reverse during DVD playback with either a physical or iso DVD causes the front end to freeze.

The problem only affects Mythtv, all other media programs work fine, ie. xbmc, Kaffeine, Mplayer. There is nothing in the logs below that I, at my knowledge level, can see that helps pinpoint the problem.

This is all with trunk rev 20619 compiled in debug running on 32bit fully updated PCLinuxOS.

A bit of -v playback log shows:

'video_output' mean = '33332.21', std. dev. = '65.37', fps = '30.00' 2009-05-25 10:20:05.852 AFD: HandleGopStart?: Key frame distance changed from 4 to 12. 2009-05-25 10:20:05.985 AFD: HandleGopStart?: Key frame distance changed from 12 to 3. 2009-05-25 10:20:06.253 AFD: HandleGopStart?: Key frame distance changed from 3 to 9. 2009-05-25 10:20:06.518 AFD: HandleGopStart?: Key frame distance changed from 9 to 6. 2009-05-25 10:20:06.718 TV: DoNVPSeek() -- begin 2009-05-25 10:20:06.718 TV: DoNVPSeek() -- ff 2009-05-25 10:20:06.718 TV: DoNVPSeek() -- end 2009-05-25 10:20:06.718 UpdateOSDSeekMessage(Skip Ahead, 2) 2009-05-25 10:20:06.785 VideoOutputXv?: UpdatePauseFrame?() DUUUUUUUDuUDAuUUL 2009-05-25 10:20:06.785 AFD: DoFastForward?(1168 (269), do discard frames) 2009-05-25 10:20:06.785 Dec: DoFastForward?(1168 (269), do discard frames) 2009-05-25 10:20:06.786 AFD: SeekReset?(1169, 0, do flush, do discard) 2009-05-25 10:20:06.786 AFD: SeekReset?() flushing 2009-05-25 10:20:06.786 VideoOutputXv?: DiscardFrames?(1) 2009-05-25 10:20:06.786 VideoBuffers::DiscardFrames?(1): DUUUUUUUDUUDAUUUA 2009-05-25 10:20:06.786 VideoBuffers::DiscardFrames?(): DAAAAAAADAADAAAAA -- done() 2009-05-25 10:20:06.786 VideoBuffers::DiscardFrames?(1): DAAAAAAADAADAAAAA -- done 2009-05-25 10:20:06.786 VideoOutputXv?: DiscardFrames?() 3: DAAAAAAADAADAAAAA -- done() 2009-05-25 10:20:06.786 NVP(0): ClearAfterSeek?(0) 2009-05-25 10:20:06.802 DVDNAV_HOP_CHANNEL happened. 2009-05-25 10:20:06.802 NVP(0): Waiting for prebuffer.. 0 AAAAAAAAAAAAAAAAA 2009-05-25 10:20:06.802 DVDNAV_CELL_CHANGE: pg_length == 65700000, pgc_length == 639516000, cell_start == 0, pg_start == 0, title == 2, part == 1 titleParts 10 2009-05-25 10:20:06.802 DVDNAV_SPU_CLUT_CHANGE happened. 2009-05-25 10:20:06.802 DVDNAV_SPU_STREAM_CHANGE: physical_wide==-1, physical_letterbox==-1, physical_pan_scan==-1, current_track==-1 2009-05-25 10:20:06.802 DVDNAV_AUDIO_STREAM_CHANGE: Current Active Stream 0 2009-05-25 10:20:06.802 DVDNAV_HOP_CHANNEL happened. 2009-05-25 10:20:06.802 DVDNAV_CELL_CHANGE: pg_length == 65700000, pgc_length == 639516000, cell_start == 0, pg_start == 0, title == 2, part == 1 titleParts 10 2009-05-25 10:20:06.802 DVDNAV_SPU_CLUT_CHANGE happened. 2009-05-25 10:20:06.802 DVDNAV_SPU_STREAM_CHANGE: physical_wide==-1, physical_letterbox==-1, physical_pan_scan==-1, current_track==-1 2009-05-25 10:20:06.802 DVDNAV_AUDIO_STREAM_CHANGE: Current Active Stream 0 2009-05-25 10:20:06.802 DVDNAV_HOP_CHANNEL happened. 2009-05-25 10:20:06.802 DVDNAV_CELL_CHANGE: pg_length == 65700000, pgc_length == 639516000, cell_start == 0, pg_start == 0, title == 2, part == 1 titleParts 10 <Repeats>

Plain log output:

2009-05-25 10:49:42.864 Opened DVD device at /films/Billy.iso 2009-05-25 10:49:42.867 There are 6 titles on the disk 2009-05-25 10:49:42.867 Title 0 has 0 parts. 2009-05-25 10:49:42.867 Title 1 has 3 parts. 2009-05-25 10:49:42.867 Title 2 has 10 parts. 2009-05-25 10:49:42.868 Title 3 has 7 parts. 2009-05-25 10:49:42.868 Title 4 has 9 parts. 2009-05-25 10:49:42.868 Title 5 has 2 parts. 2009-05-25 10:49:42.869 TV: StartPlayer?(0, Watching DVD, main) -- begin

libdvdread: Attempting to retrieve all CSS keys libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x0000014d libdvdread: Elapsed time 1 libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x000044af libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_02_0.VOB at 0x0000562f libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_02_1.VOB at 0x0000563a libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_03_0.VOB at 0x0029c042 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_03_1.VOB at 0x0029c04d libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_04_0.VOB at 0x002b02e9 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_04_1.VOB at 0x002b02f4 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_05_0.VOB at 0x002c69fe libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_05_1.VOB at 0x002c6a09 libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_06_0.VOB at 0x002dd12a libdvdread: Elapsed time 0 libdvdread: Get key for /VIDEO_TS/VTS_06_1.VOB at 0x002dd135 libdvdread: Elapsed time 0 libdvdread: Found 6 VTS's libdvdread: Elapsed time 1 2009-05-25 10:49:44.191 AFD: Opened codec 0x9375c80, id(MPEGVIDEO_VDPAU) type(Video) 2009-05-25 10:49:44.191 NVP(0): Disabling Audio, params(-1,-1,-1) 2009-05-25 10:49:45.511 OSD Theme Dimensions W: 1280 H: 720 2009-05-25 10:49:45.765 Container: settings already exists 2009-05-25 10:49:46.466 TV: StartPlayer?(0, Watching DVD, main) -- end ok 2009-05-25 10:49:46.466 TV: Changing from None to Watching DVD 2009-05-25 10:49:46.468 OpenGLVideoSync() 2009-05-25 10:49:46.496 Video timing method: SGI OpenGL 2009-05-25 10:49:47.270 AFD: Warning, video codec 0x9375c80 id(MPEGVIDEO_VDPAU) type (Video) already open. 2009-05-25 10:49:47.537 AFD: codec AC3 has 0 channels 2009-05-25 10:49:47.537 AFD: Opened codec 0x9569b30, id(AC3) type(Audio) 2009-05-25 10:49:47.540 Opening audio device 'default'. ch 2(2) sr 48000 2009-05-25 10:49:47.540 Opening ALSA audio device 'default'. 2009-05-25 10:49:47.603 mixer unable to find control Master 1 2009-05-25 10:49:47.604 NVP(0): Enabling Audio 2009-05-25 10:49:47.607 Opening audio device 'default'. ch 2(2) sr 48000 2009-05-25 10:49:47.607 Opening ALSA audio device 'default'. 2009-05-25 10:49:47.625 mixer unable to find control Master 1 2009-05-25 10:49:47.625 AFD: Warning, audio codec 0x9569b30 id(AC3) type (Audio) already open, leaving it alone. 2009-05-25 10:49:47.625 AFD: codec AC3 has 2 channels 2009-05-25 10:50:14.330 WriteAudio?: buffer underrun 2009-05-25 10:50:14.888 AFD: Warning, video codec 0x9375c80 id(MPEGVIDEO_VDPAU) type (Video) already open. 2009-05-25 10:50:14.888 AFD: Opened codec 0xa016fd60, id(DVD_SUBTITLE) type(Subtitle) 2009-05-25 10:50:14.888 NVP(0): Disabling Audio, params(-1,-1,-1) 2009-05-25 10:50:15.456 AFD: Warning, video codec 0x9375c80 id(MPEGVIDEO_VDPAU) type (Video) already open. 2009-05-25 10:50:15.456 AFD: codec AC3 has 0 channels 2009-05-25 10:50:15.456 AFD: Opened codec 0xb0c5a050, id(AC3) type(Audio) 2009-05-25 10:50:15.460 Opening audio device 'default'. ch 2(2) sr 48000 2009-05-25 10:50:15.460 Opening ALSA audio device 'default'. 2009-05-25 10:50:15.477 mixer unable to find control Master 1 2009-05-25 10:50:15.477 NVP(0): Enabling Audio 2009-05-25 10:50:15.479 Opening audio device 'default'. ch 2(2) sr 48000 2009-05-25 10:50:15.480 Opening ALSA audio device 'default'. 2009-05-25 10:50:15.496 mixer unable to find control Master 1 2009-05-25 10:50:15.497 AFD: Warning, audio codec 0xb0c5a050 id(AC3) type (Audio) already open, leaving it alone. 2009-05-25 10:50:15.497 AFD: codec AC3 has 2 channels 2009-05-25 10:50:16.108 GetNextFreeFrame?() served a busy frame C. Dropping. AAUUUUUUUUUUUUUuL 2009-05-25 10:50:17.704 NVP(0): Disabling Audio, params(-1,-1,-1) 2009-05-25 10:50:18.784 AFD: Warning, video codec 0x9375c80 id(MPEGVIDEO_VDPAU) type (Video) already open. 2009-05-25 10:50:18.784 AFD: codec AC3 has 0 channels 2009-05-25 10:50:18.784 AFD: Opened codec 0xa01f9cc0, id(AC3) type(Audio) 2009-05-25 10:50:18.787 Opening audio device 'default'. ch 2(2) sr 48000 2009-05-25 10:50:18.787 Opening ALSA audio device 'default'. 2009-05-25 10:50:18.804 mixer unable to find control Master 1 2009-05-25 10:50:18.805 NVP(0): Enabling Audio 2009-05-25 10:50:18.807 Opening audio device 'default'. ch 2(2) sr 48000 2009-05-25 10:50:18.807 Opening ALSA audio device 'default'. 2009-05-25 10:50:18.824 mixer unable to find control Master 1 2009-05-25 10:50:18.845 GetNextFreeFrame?() served a busy frame A. Dropping. UUUUUUULUUUUUUAUU 2009-05-25 10:50:28.645 NVP(0): Prebuffer wait timed out 10 times. 2009-05-25 10:50:30.145 NVP(0): Prebuffer wait timed out 20 times. <Repeats - with increment>

Though the above shows that I'm using vdpau the problem remains when using the normal libraries.

Compiled with configure options:

Compile type debug Compiler cache no DistCC no qmake /usr/bin/qmake-qt4 install prefix /usr/local runtime prefix /usr/local CPU x86_32 (AMD Athlon(tm) 64 X2 Dual Core Processor 6000+) big-endian no yasm yes MMX enabled yes CMOV enabled yes CMOV is fast yes

# Input Support Joystick menu no lirc support yes Video4Linux sup. yes ivtv support yes HR-PVR support no FireWire? support yes DVB support yes usr/include HDHomeRun support no IPTV support yes

# Sound Output Support PulseAudio? support no OSS support no ALSA support yes aRts support no JACK support no libfftw3 support yes

# Video Output Support x11 support yes xrandr support yes xv support yes XvMC support no XvMC VLD support no XvMC pro support no XvMC OpenGL sup. no XvMC libs -lXvMCW VDPAU support yes OpenGL video yes OpenGL vsync yes DirectFB yes Fribidi formatting yes MHEG support yes

# Misc Features multi threaded libavcodec yes Frontend yes Backend yes

# Bindings bindings_perl yes bindings_python yes

Attachments (2)

gdb1.txt (46.9 KB) - added by rafmoslin@… 10 years ago.
Backtrace
dvdseek_r20653.diff.txt (553 bytes) - added by greg 10 years ago.
DVD Seek loop patch

Download all attachments as: .zip

Change History (7)

Changed 10 years ago by rafmoslin@…

Attachment: gdb1.txt added

Backtrace

comment:1 Changed 10 years ago by markk

Owner: changed from skamithi to markk
Status: newaccepted

comment:2 Changed 10 years ago by greg

Try the attached patch. We were getting into a seek loop and this avoids it. So far with 20 minutes of solid trying I can't reproduce the problem whereas before I could do it reliably within seconds.

Changed 10 years ago by greg

Attachment: dvdseek_r20653.diff.txt added

DVD Seek loop patch

comment:3 Changed 10 years ago by markk

Resolution: fixed
Status: acceptedclosed

(In [20654]) Fix an infinite loop during dvd seeking/skipping. Closes #6587. Thanks to greg for the fix.

I've tested this with about 20 dvds/iso's, roughly half of which previously had issues. All now seem to work as intended with no adverse effects for the others.

comment:4 Changed 10 years ago by mrand

Could this be applied to 0.21-fixes as well?

comment:5 Changed 10 years ago by markk

(In [20673]) Backport dvd seeking fix from r20654 to 0.21-fixes. Refs #6587.

Note: See TracTickets for help on using tickets.