Opened 10 years ago

Closed 10 years ago

#7779 closed defect (fixed)

Segfault watching recorded program via vdpau

Reported by: Kenn Casper <casper0082@…> Owned by: markk
Priority: minor Milestone: 0.23
Component: MythTV - Video Playback Version: 0.22-fixes
Severity: medium Keywords:
Cc: Ticket locked: no

Description

While watching a recording, mythfrontend segfaulted. It appears to happen when going from commercial back to the actual show.

I will keep the recording as it appears to be reproducible. Attached is the mythfrontend -v all log with backtrace.

MythTV Version : 22957 MythTV Branch : branches/release-0-22-fixes Network Protocol : 50 Library API : 0.22.20091023-1 QT Version : 4.5.2 Options compiled in:

linux profile using_oss using_alsa using_pulse using_jack using_backend using_dvb using_firewire using_frontend using_glx_proc_addr_arb using_hdhomerun using_hdpvr using_iptv using_ivtv using_joystick_menu using_libfftw3 using_lirc using_mheg using_opengl_video using_opengl_vsync using_qtwebkit using_v4l using_x11 using_xrandr using_xv using_xvmc using_xvmc_vld using_xvmcw using_bindings_perl using_bindings_python using_opengl using_vdpau using_ffmpeg_threads using_libavc_5_3 using_live using_mheg

Attachments (1)

mythfrontend.log.1.gz (15.3 KB) - added by Kenn Casper <casper0082@…> 10 years ago.
mythfrontend -v all. Log truncated due to file size limitations.

Download all attachments as: .zip

Change History (9)

Changed 10 years ago by Kenn Casper <casper0082@…>

Attachment: mythfrontend.log.1.gz added

mythfrontend -v all. Log truncated due to file size limitations.

comment:1 Changed 10 years ago by sphery

Status: newinfoneeded_new

comment:2 Changed 10 years ago by Kenn Casper <casper0082@…>

Backtrace supplied as specified. See https://bugs.launchpad.net/mythbuntu/+bug/501539/+index

comment:3 Changed 10 years ago by stuartm

Milestone: unknown0.23
Status: infoneeded_newnew

comment:4 Changed 10 years ago by markk

Owner: changed from Janne Grunau to markk
Status: newaccepted

comment:5 Changed 10 years ago by markk

Status: acceptedinfoneeded

Kenn

This looks interesting! Can you upload a clip somewhere that triggers this behaviour? - i.e. that spans the transition to/from a commercial break.

thanks, Mark.

comment:6 Changed 10 years ago by Kenn Casper <casper0082@…>

Here is the clip that I used to reproduce the error: http://filebin.ca/aqmmbq If you need a longer clip, let me know.

comment:7 Changed 10 years ago by markk

(In [23466]) Prevent some unruly QVector access in MythRenderVDPAU when the video stream has been reset. Refs #7779.

comment:8 Changed 10 years ago by markk

Resolution: fixed
Status: infoneededclosed

(In [23467]) Improved VDPAU thread safety.

Firstly, internalise all access to the display device in MythRenderVDPAU to ensure calls are serialised. Secondly, extend and tidy up locking within VideoOutputVDPAU to ensure access to the MythRenderVDPAU object is always safe when the object is being re-created. Generally this means applying the lock in all public methods (hence assuming that private methods are safe).

The only exception to this is VideoOutputVDPAU::DrawSlice?. Locking here would synchronise the decode and render threads (not a good thing) but actually the main issue being addressed here is when the decoder thread initiates recreation of the object when the input changes - hence calls to InputChanged? and DrawSlice? should not be concurrent.

Closes #7779.

Note: See TracTickets for help on using tickets.