Author: danielk
Date: 2010-09-03 19:55:56 +0000 (Fri, 03 Sep 2010)
New Revision: 26106
Changeset: http://svn.mythtv.org/trac/changeset/26106
Log:
Fixes #7195. This speeds up preview generation and transport.
It's been some time since preview generation had any real love, it's been updated to deal with storage groups and it's been moved from the frontend to the backend and from an internal thread to an external process and generally a lot of cruft has built up. This dumps a lot of that. It abstracts the preview generation queue that was being used on the frontend so it can run on both the front and back ends and consequently limit the thread count on the backend to the number of cores *2 instead of the number of cores on all frontends * 2 as was effectively the case after it was moved out of the frontend.
There is still at least one major optimization that can be made, documented in the ticket. But this gets the performance up to an acceptable level and is all I have ready before the feature freeze anyway.
Thanks go out to Stuart Morgan who very quickly came up with a fix for a wexing problem in MythUIButtonList which allows preview generation to run well for those using the Arclight and Terra themes (I've had a patch that worked well for the MythCenter themes for some time now :)
Note: distclean is recommended and all clients need to be updated due to a new mythproto version.
Modified:
trunk/mythplugins/mythweb/classes/MythBackend.php
trunk/mythplugins/mythweb/modules/tv/classes/Program.php
trunk/mythtv/bindings/perl/MythTV.pm
trunk/mythtv/bindings/perl/MythTV/Recording.pm
trunk/mythtv/bindings/python/MythTV/static.py
trunk/mythtv/libs/libmyth/remoteutil.cpp
trunk/mythtv/libs/libmyth/remoteutil.h
trunk/mythtv/libs/libmythdb/mythversion.h
trunk/mythtv/libs/libmythtv/jobqueue.cpp
trunk/mythtv/libs/libmythtv/libmythtv.pro
trunk/mythtv/libs/libmythtv/previewgenerator.cpp
trunk/mythtv/libs/libmythtv/previewgenerator.h
trunk/mythtv/libs/libmythtv/previewgeneratorqueue.cpp
trunk/mythtv/libs/libmythtv/previewgeneratorqueue.h
trunk/mythtv/libs/libmythtv/tv_play.cpp
trunk/mythtv/libs/libmythtv/tv_rec.cpp
trunk/mythtv/libs/libmythtv/tvremoteutil.cpp
trunk/mythtv/libs/libmythtv/tvremoteutil.h
trunk/mythtv/libs/libmythui/mythuibuttonlist.cpp
trunk/mythtv/libs/libmythui/mythuibuttonlist.h
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/mythbackend/main.cpp
trunk/mythtv/programs/mythbackend/mainserver.cpp
trunk/mythtv/programs/mythbackend/mainserver.h
trunk/mythtv/programs/mythbackend/mythxml.cpp
trunk/mythtv/programs/mythbackend/playbacksock.cpp
trunk/mythtv/programs/mythbackend/playbacksock.h
trunk/mythtv/programs/mythfrontend/main.cpp
trunk/mythtv/programs/mythfrontend/networkcontrol.cpp
trunk/mythtv/programs/mythfrontend/playbackbox.cpp
trunk/mythtv/programs/mythfrontend/playbackbox.h
trunk/mythtv/programs/mythfrontend/playbackboxhelper.cpp
trunk/mythtv/programs/mythfrontend/playbackboxhelper.h
trunk/mythtv/programs/mythfrontend/playbackboxlistitem.cpp
trunk/mythtv/programs/mythfrontend/playbackboxlistitem.h
trunk/mythtv/programs/mythpreviewgen/main.cpp