Guys, I just want to say a quick thank you. I think this goes a long way to making 0.22 a much more complete release. I know from your talk in IRC that you spent a great deal of time discussing and implementing this and I wanted to know your efforts are greatly appreciated.<br>
<br>Kevin<br><br><div class="gmail_quote">On Sun, Oct 4, 2009 at 3:09 PM, <span dir="ltr"><<a href="mailto:mythtv@cvs.mythtv.org">mythtv@cvs.mythtv.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Author: cpinkham<br>
Date: 2009-10-04 20:09:51 +0000 (Sun, 04 Oct 2009)<br>
New Revision: 22239<br>
Changeset: <a href="http://cvs.mythtv.org/trac/changeset/22239" target="_blank">http://cvs.mythtv.org/trac/changeset/22239</a><br>
<br>
Modified:<br>
<br>
trunk/mythtv/libs/libmythdb/mythversion.h<br>
trunk/mythtv/libs/libmythui/mythpainter_ogl.cpp<br>
trunk/mythtv/libs/libmythui/mythpainter_ogl.h<br>
trunk/mythtv/libs/libmythui/mythpainter_vdpau.cpp<br>
trunk/mythtv/libs/libmythui/mythuihelper.cpp<br>
trunk/mythtv/libs/libmythui/mythuihelper.h<br>
trunk/mythtv/libs/libmythui/mythuiimage.cpp<br>
trunk/mythtv/libs/libmythui/mythuiimage.h<br>
trunk/mythtv/programs/mythfrontend/playbackbox.cpp<br>
trunk/mythtv/programs/mythfrontend/playbackbox.h<br>
<br>
Log:<br>
<br>
This commit converts libmythui's MythUIImage to load uncached images in a<br>
separate thread so that the UI is not blocked by image loads. As a<br>
side-effect, this clears up and should prevent any issues with images<br>
Load()-ed outside of the main UI thread.<br>
<br>
Specific changes included in this commit are:<br>
<br>
- libs/libmythui/mythpainter_vdpau.cpp<br>
<br>
Supporting changes for the MythUIImage threading. Implemented a delete<br>
surface list that can be populated from any thread and is processed by<br>
the main UI thread since this requires VDPAU methods.<br>
<br>
- libs/libmythui/mythpainter_ogl.h<br>
- libs/libmythui/mythpainter_ogl.cpp<br>
<br>
Supporting changes for the MythUIImage threading. Implemented a delete<br>
texture list that can be populated from any thread and is processed by<br>
the main UI thread since this requires glDeleteTexture.<br>
<br>
- libs/libmythui/mythuihelper.h<br>
- libs/libmythui/mythuihelper.cpp<br>
<br>
Supporting changes for the MythUIImage threading. The images are loaded<br>
in threads controlled by a QThreadPool which resides in MythUIHelper. I<br>
also added locking around the necessary places that access the in-memory<br>
image cache since this cache can now be accessed and updated from<br>
multiple threads. The number of threads is left at the default which is<br>
QThread::idealThreadCount(). The minimum is 1, the maximum should be the<br>
number of CPUs (real & logical) in the system.<br>
<br>
- libs/libmythui/mythuiimage.cpp<br>
- libs/libmythui/mythuiimage.h<br>
<br>
Split out the loading of uncached images into another thread. The bulk<br>
of this part of the commit is from a preliminary patch by Stuart Morgan,<br>
with a bunch of tweaking and changes by me. If an image already exists<br>
in the in-memory image cache, it is loaded immediately, otherwise we<br>
put a new QRunnable in the thread pool to be processed.<br>
<br>
- programs/mythfrontend/playbackbox.cpp<br>
- programs/mythfrontend/playbackbox.h<br>
<br>
Various cleanup/optimizations to the artwork loading in PlaybackBox (aka<br>
the Watch Recordings scren) some of which depended on the above patches.<br>
<br>
- libs/libmythdb/mythversion.h<br>
<br>
Bumped the binary version, so 'make clean'....<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
mythtv-commits mailing list<br>
<a href="mailto:mythtv-commits@mythtv.org">mythtv-commits@mythtv.org</a><br>
<a href="http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-commits" target="_blank">http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-commits</a><br>
</blockquote></div><br>