[mythtv-commits] mythtv commit: r24694 - in trunk by danielk

mythtv at cvs.mythtv.org mythtv at cvs.mythtv.org
Sun May 16 14:23:11 UTC 2010


      Author: danielk
        Date: 2010-05-16 14:23:11 +0000 (Sun, 16 May 2010)
New Revision: 24694
   Changeset: http://svn.mythtv.org/trac/changeset/24694

Added:

   trunk/mythtv/libs/libmyth/autodeletedeque.h
   trunk/mythtv/libs/libmyth/programtypes.cpp
   trunk/mythtv/libs/libmyth/programtypes.h
   trunk/mythtv/libs/libmythtv/videometadatautil.cpp
   trunk/mythtv/libs/libmythtv/videometadatautil.h

Removed:

   trunk/mythtv/libs/libmyth/programlist.cpp
   trunk/mythtv/libs/libmyth/programlist.h
   trunk/mythtv/libs/libmythtv/recordinglist.cpp
   trunk/mythtv/libs/libmythtv/recordinglist.h

Modified:

   trunk/mythplugins/mytharchive/mytharchive/archiveutil.cpp
   trunk/mythplugins/mytharchive/mytharchive/recordingselector.cpp
   trunk/mythplugins/mytharchive/mytharchive/thumbfinder.cpp
   trunk/mythplugins/mytharchive/mytharchive/thumbfinder.h
   trunk/mythplugins/mytharchive/mytharchivehelper/main.cpp
   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/Program.pm
   trunk/mythtv/bindings/python/MythTV/MythData.py
   trunk/mythtv/bindings/python/MythTV/MythFunc.py
   trunk/mythtv/bindings/python/MythTV/MythStatic.py
   trunk/mythtv/libs/libmyth/libmyth.pro
   trunk/mythtv/libs/libmyth/programinfo.cpp
   trunk/mythtv/libs/libmyth/programinfo.h
   trunk/mythtv/libs/libmyth/recordingtypes.cpp
   trunk/mythtv/libs/libmyth/recordingtypes.h
   trunk/mythtv/libs/libmyth/remoteutil.cpp
   trunk/mythtv/libs/libmyth/remoteutil.h
   trunk/mythtv/libs/libmyth/util.cpp
   trunk/mythtv/libs/libmyth/util.h
   trunk/mythtv/libs/libmythdb/mythversion.h
   trunk/mythtv/libs/libmythtv/NuppelVideoPlayer.cpp
   trunk/mythtv/libs/libmythtv/NuppelVideoPlayer.h
   trunk/mythtv/libs/libmythtv/NuppelVideoRecorder.cpp
   trunk/mythtv/libs/libmythtv/dbcheck.cpp
   trunk/mythtv/libs/libmythtv/decoderbase.cpp
   trunk/mythtv/libs/libmythtv/decoderbase.h
   trunk/mythtv/libs/libmythtv/dtvrecorder.cpp
   trunk/mythtv/libs/libmythtv/importrecorder.cpp
   trunk/mythtv/libs/libmythtv/jobqueue.cpp
   trunk/mythtv/libs/libmythtv/jobqueue.h
   trunk/mythtv/libs/libmythtv/libmythtv.pro
   trunk/mythtv/libs/libmythtv/livetvchain.cpp
   trunk/mythtv/libs/libmythtv/livetvchain.h
   trunk/mythtv/libs/libmythtv/mpegrecorder.cpp
   trunk/mythtv/libs/libmythtv/mythsystemevent.cpp
   trunk/mythtv/libs/libmythtv/osd.cpp
   trunk/mythtv/libs/libmythtv/osd.h
   trunk/mythtv/libs/libmythtv/playercontext.cpp
   trunk/mythtv/libs/libmythtv/playercontext.h
   trunk/mythtv/libs/libmythtv/playgroup.cpp
   trunk/mythtv/libs/libmythtv/previewgenerator.cpp
   trunk/mythtv/libs/libmythtv/programdetail.cpp
   trunk/mythtv/libs/libmythtv/recorderbase.cpp
   trunk/mythtv/libs/libmythtv/recorderbase.h
   trunk/mythtv/libs/libmythtv/recordinginfo.cpp
   trunk/mythtv/libs/libmythtv/recordinginfo.h
   trunk/mythtv/libs/libmythtv/recordingprofile.h
   trunk/mythtv/libs/libmythtv/recordingrule.cpp
   trunk/mythtv/libs/libmythtv/recordingrule.h
   trunk/mythtv/libs/libmythtv/remoteencoder.cpp
   trunk/mythtv/libs/libmythtv/remoteencoder.h
   trunk/mythtv/libs/libmythtv/tv.h
   trunk/mythtv/libs/libmythtv/tv_play.cpp
   trunk/mythtv/libs/libmythtv/tv_play.h
   trunk/mythtv/libs/libmythtv/tv_rec.cpp
   trunk/mythtv/libs/libmythtv/tv_rec.h
   trunk/mythtv/libs/libmythtv/tvremoteutil.cpp
   trunk/mythtv/programs/mythavtest/main.cpp
   trunk/mythtv/programs/mythbackend/autoexpire.cpp
   trunk/mythtv/programs/mythbackend/backendutil.cpp
   trunk/mythtv/programs/mythbackend/encoderlink.cpp
   trunk/mythtv/programs/mythbackend/encoderlink.h
   trunk/mythtv/programs/mythbackend/filetransfer.cpp
   trunk/mythtv/programs/mythbackend/httpstatus.cpp
   trunk/mythtv/programs/mythbackend/main_helpers.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/mythbackend/scheduler.cpp
   trunk/mythtv/programs/mythbackend/scheduler.h
   trunk/mythtv/programs/mythcommflag/ClassicCommDetector.cpp
   trunk/mythtv/programs/mythcommflag/ClassicCommDetector.h
   trunk/mythtv/programs/mythcommflag/CommDetector2.cpp
   trunk/mythtv/programs/mythcommflag/CommDetector2.h
   trunk/mythtv/programs/mythcommflag/CommDetectorBase.h
   trunk/mythtv/programs/mythcommflag/PrePostRollFlagger.cpp
   trunk/mythtv/programs/mythcommflag/PrePostRollFlagger.h
   trunk/mythtv/programs/mythcommflag/main.cpp
   trunk/mythtv/programs/mythfrontend/customedit.cpp
   trunk/mythtv/programs/mythfrontend/custompriority.cpp
   trunk/mythtv/programs/mythfrontend/globalsettings.cpp
   trunk/mythtv/programs/mythfrontend/guidegrid.cpp
   trunk/mythtv/programs/mythfrontend/guidegrid.h
   trunk/mythtv/programs/mythfrontend/main.cpp
   trunk/mythtv/programs/mythfrontend/manualschedule.cpp
   trunk/mythtv/programs/mythfrontend/manualschedule.h
   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/progdetails.cpp
   trunk/mythtv/programs/mythfrontend/progfind.cpp
   trunk/mythtv/programs/mythfrontend/progfind.h
   trunk/mythtv/programs/mythfrontend/proglist.cpp
   trunk/mythtv/programs/mythfrontend/proglist.h
   trunk/mythtv/programs/mythfrontend/programinfocache.cpp
   trunk/mythtv/programs/mythfrontend/programrecpriority.cpp
   trunk/mythtv/programs/mythfrontend/programrecpriority.h
   trunk/mythtv/programs/mythfrontend/schedulecommon.cpp
   trunk/mythtv/programs/mythfrontend/scheduleeditor.cpp
   trunk/mythtv/programs/mythfrontend/statusbox.cpp
   trunk/mythtv/programs/mythfrontend/viewscheduled.cpp
   trunk/mythtv/programs/mythfrontend/viewscheduled.h
   trunk/mythtv/programs/mythfrontend/viewschedulediff.cpp
   trunk/mythtv/programs/mythfrontend/viewschedulediff.h
   trunk/mythtv/programs/mythtranscode/main.cpp
   trunk/mythtv/programs/mythtranscode/mpeg2fix.cpp
   trunk/mythtv/programs/mythtranscode/mpeg2fix.h
   trunk/mythtv/programs/mythtranscode/transcode.cpp
   trunk/mythtv/programs/mythtranscode/transcode.h

Log:

Refs #8406. ProgramInfo refactor. Step 2.

You will need to distclean and recompile both mythtv and the plugins.

This continues the ProgramInfo refactor started prior to 0.23.
I held this back at the time because it was to risky to apply
just prior to that release. It is a large patch that touches
on many parts of MythTV. It reduces the in core requirements of
ProgramInfo as well as removing a large number of redundant bits
of code and standardizing the way we handle things like generating
a QString key for a recording. This also centralizes the loading
of ProgramInfo to programinfo.cpp, we had about three dozen places
in the code loading these, all with different levels of metadata
which produced some strange bugs.

This also starts to address the problem of containers for ProgramInfo
based clases with the AutoDeleteDeque, but this will be addressed
more completely in later patches. AutoDeleteDeque simply lets us
get rid of the old ProgramList and RecordingList which were copy
and pastes of each other (a maintenance nightmare.)

There are still a number of problems remaining, we don't have any way
currently to debug when someone tries to access data that has not been
loaded, so it's difficult to track down such bugs. ProgramInfo now uses
accessors so it is possible to add such checking to the debug build.
There are a number of algorithms that have inserted their own private
data into ProgramInfo, these have not all been addressed, but these
members have been labeled. It will be easier to inherit from ProgramInfo
to add private data once the containter problem has been addressed.
RecordingInfo has not been refactored in this pass, there are a number
of issues there.

Loading additional metadata for the UI or other uses has not been
addressed in a systematic way. I have some ideas on this but want
to do this in a seperate pass as this patch is already very large.

I've been running versions of this changeset on my production systems
for a week and there have been no showstoppers, only small bugs that
were easily fixed. However, I do not use every feature of MythTV so
I'm sure some bugs will turn up. Please note them on ticket #8406.






More information about the mythtv-commits mailing list