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">&lt;<a href="mailto:mythtv@cvs.mythtv.org">mythtv@cvs.mythtv.org</a>&gt;</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&#39;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 &amp; 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 &#39;make clean&#39;....<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>