Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#10185 closed Bug Report - General (fixed)

Exiting mythgallery (photo gallery) hangs frontend

Reported by: Ken Emerson <kenneth.emerson@…> Owned by: beirdo
Priority: minor Milestone: 0.25
Component: Plugin - MythGallery Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no


Upon exiting the mythgallery plugin (photo gallery) the menu returns but a ghost image of the photo gallery remains (about 70% transparent). The frontend then hangs and must be killed then restarted to continue. Backtrace, frontend log attached.

$ mythfrontend --version Please attach all output as a file in bug reports. MythTV Version : v0.25pre-3813-gda49d79 MythTV Branch : master Network Protocol : 69 Library API : 0.25.20111116-1 QT Version : 4.6.2 Options compiled in:

linux debug use_hidesyms using_alsa using_oss using_pulse using_pulseoutput using_backend using_bindings_perl using_bindings_python using_bindings_php using_dvb using_firewire using_frontend using_hdhomerun using_hdpvr using_iptv using_ivtv using_joystick_menu using_libfftw3 using_libxml2 using_libudf using_lirc using_mheg using_opengl_video using_qtwebkit using_qtscript using_qtdbus using_v4l2 using_v4l1 using_x11 using_xrandr using_xv using_bindings_perl using_bindings_python using_bindings_php using_mythtranscode using_opengl using_vdpau using_ffmpeg_threads using_live using_mheg using_libxml2 using_libudf

Attachments (2)

mythtv_backtrace.txt (37.5 KB) - added by Ken Emerson <kenneth.emerson@…> 9 years ago.
mythfrontend.20111125012502.19777.log.1.gz (2.6 KB) - added by Ken Emerson <kenneth.emerson@…> 9 years ago.

Download all attachments as: .zip

Change History (6)

Changed 9 years ago by Ken Emerson <kenneth.emerson@…>

Attachment: mythtv_backtrace.txt added

Changed 9 years ago by Ken Emerson <kenneth.emerson@…>

comment:1 Changed 9 years ago by paulh

This sounds exactly like what I was seeing after the patch on #9523 was applied and later fixed when beirdo reverted it. I'm using Qt4.7 I notice you are using 4.6.2 I'm wondering if there is a bug or change in behavior between Qt versions that could account for why some people seem to need this patch and others don't?

comment:2 Changed 9 years ago by beirdo

OK. I am working on making this a bit better. The issue is twofold:

1) the thumbnail generation didn't cancel properly, but ran to completion even though you exited. The "hang" you were seeing was the thumbnail generation thread still running.

2) this takes effect mostly when you are using RAW formats, as we shell out to dcraw to deal with them, and dcraw is sloooow. I have an idea how to get around this.

I will be committing the fix for 1) shortly. This will still wait for the current dcraw execution to finish, but that's usually a max of 10s, rather than 10s * number of directories... Then I'll work on making RAW format faster.

Last edited 9 years ago by beirdo (previous) (diff)

comment:3 Changed 9 years ago by Github

Milestone: unknown0.25
Resolution: fixed
Status: newclosed

Make the ThumbGenerator? thread actually abort

When you exit mythgallery, it deletes the ThumbGenerator?, which causes it to wait for completion. As the inner code was never checking for an abort, sometimes this would take a very long time, especially when dealing with RAW format pictures.

Now, when cancel() is called, a flag is set that is checked in the inner loops to cause a more immediate exit.

Fixes #10185

Branch: master Changeset: 3b83dbd6de293f1f5844675ff20da17a78e3a5ff

comment:4 Changed 9 years ago by Github

Make RAW image thumbnails much faster

Turns out that nearly all supported RAW image formats actually have embedded JPG thumbnails in them. Rather than decode to RAW then reencode, just load the thumbnail from it if it's there. Also, rotate the image based on the EXIF orientation in the thumbnail.

Now creating a thumbnail from a supported RAW format takes avout 200ms instead of 10-15s.

Refs #10185

Branch: master Changeset: 9cfa8a17a2c41b0cbe24110a65e9cf63193a3b64

Note: See TracTickets for help on using tickets.