[mythtv-commits] mythtv commit: r22239 - in trunk/mythtv by cpinkham
mythtv at cvs.mythtv.org
mythtv at cvs.mythtv.org
Sun Oct 4 20:09:51 UTC 2009
Author: cpinkham
Date: 2009-10-04 20:09:51 +0000 (Sun, 04 Oct 2009)
New Revision: 22239
Changeset: http://cvs.mythtv.org/trac/changeset/22239
Modified:
trunk/mythtv/libs/libmythdb/mythversion.h
trunk/mythtv/libs/libmythui/mythpainter_ogl.cpp
trunk/mythtv/libs/libmythui/mythpainter_ogl.h
trunk/mythtv/libs/libmythui/mythpainter_vdpau.cpp
trunk/mythtv/libs/libmythui/mythuihelper.cpp
trunk/mythtv/libs/libmythui/mythuihelper.h
trunk/mythtv/libs/libmythui/mythuiimage.cpp
trunk/mythtv/libs/libmythui/mythuiimage.h
trunk/mythtv/programs/mythfrontend/playbackbox.cpp
trunk/mythtv/programs/mythfrontend/playbackbox.h
Log:
This commit converts libmythui's MythUIImage to load uncached images in a
separate thread so that the UI is not blocked by image loads. As a
side-effect, this clears up and should prevent any issues with images
Load()-ed outside of the main UI thread.
Specific changes included in this commit are:
- libs/libmythui/mythpainter_vdpau.cpp
Supporting changes for the MythUIImage threading. Implemented a delete
surface list that can be populated from any thread and is processed by
the main UI thread since this requires VDPAU methods.
- libs/libmythui/mythpainter_ogl.h
- libs/libmythui/mythpainter_ogl.cpp
Supporting changes for the MythUIImage threading. Implemented a delete
texture list that can be populated from any thread and is processed by
the main UI thread since this requires glDeleteTexture.
- libs/libmythui/mythuihelper.h
- libs/libmythui/mythuihelper.cpp
Supporting changes for the MythUIImage threading. The images are loaded
in threads controlled by a QThreadPool which resides in MythUIHelper. I
also added locking around the necessary places that access the in-memory
image cache since this cache can now be accessed and updated from
multiple threads. The number of threads is left at the default which is
QThread::idealThreadCount(). The minimum is 1, the maximum should be the
number of CPUs (real & logical) in the system.
- libs/libmythui/mythuiimage.cpp
- libs/libmythui/mythuiimage.h
Split out the loading of uncached images into another thread. The bulk
of this part of the commit is from a preliminary patch by Stuart Morgan,
with a bunch of tweaking and changes by me. If an image already exists
in the in-memory image cache, it is loaded immediately, otherwise we
put a new QRunnable in the thread pool to be processed.
- programs/mythfrontend/playbackbox.cpp
- programs/mythfrontend/playbackbox.h
Various cleanup/optimizations to the artwork loading in PlaybackBox (aka
the Watch Recordings scren) some of which depended on the above patches.
- libs/libmythdb/mythversion.h
Bumped the binary version, so 'make clean'....
More information about the mythtv-commits
mailing list