MythTV  master
Todo List
Class MythVAAPIInterop
Scaling of some 1080 H.264 material (garbage line at bottom - presumably scaling from 1088 to 1080 - but only some files). Same effect on all VAAPI interop types.
Class MythVAAPIContext
Fix crash when skipping to the end of an H.264 stream. Appears to be because the decoder is partially initialised but we never feed it any packets to complete the setup (as we have reached the end of the file). Should be a simple null pointer check in FFmpeg.
Member ATSCStreamData::IsRedundant (uint pid, const PSIPTable &psip) const override

All RRT tables are ignored

We don't check the start time of EIT and ETT tables in the version check, so many tables are improperly ignored.

Member DVBStreamData::IsRedundant (uint pid, const PSIPTable &psip) const override
This is just a stub.
Class NetworkInformationTable
This is just a stub.
Class ServiceDescriptionTable
This is just a stub.
Member MythEGLDMABUF::CreateSeparate2 (AVDRMFrameDescriptor *Desc, MythRenderOpenGL *Context, MythVideoFrame *Frame) const
Add support for simple onefield/bob with YUV textures.
Class MythVAAPIInterop

Fix pause frame deinterlacing

Deinterlacing 'breaks' after certain stream changes (e.g. aspect ratio)

Class MythVAAPIContext
Scaling errors when deinterlacing H.264 1080 and for 10bit HEVC 1080p.
Member TV::TV (MythMainWindow *MainWindow)

Remove m_playerLock. m_playerContext is always present and we should be using the lower level locks in PlayerContext (around player etc)

Move TV only state currently held in PlayerContext into TV

Try and remove friend class usage. This is a blunt tool and allows potentially unsafe calls into TV

Member VideoBuffers::SetDeinterlacingFlags (MythVideoFrame &Frame, MythDeintType Single, MythDeintType Double, MythCodecID CodecID)
Handling of decoder deinterlacing with NVDEC
Class MythInputDeviceHandler
This could be better implemented with a framework/standardised API and factory methods to simplify adding new devices.
Class MythDisplay
Complete handling of screen changes. We need to handle several cases. Firstly, when the main window is moved (dragged) to a new screen. This generally works but need to check if all display details are updated (VideoOutWindow is currently hooked up to the CurrentScreenChanged signal - so video window sizing should work without issue). Various other parameters need updating though e.g. refresh rates, supported rates etc Secondly, when a new screen is added and the user has configured a multiscreen setup - in which case we might want to move the main window to the new screen. There are various complications here. Currently switching windows is triggered from the settings screens - which initiate a teardown of painter/render/UI etc. We cannot do that from random parts of the UI or during video playback.
Class MythScreenSaverDRM
Other screensavers assume system daemons are hooked into input events and reset when user activity is detected. Hence they only reset for 'external' inputs (e.g. network control, services API, cec, lirc etc). When authentication is available this class will also need to reset on each keypress, mouse action etc (probably just connect to a new signal from MythMainWindow).
Member ActionSet::Remove (const ActionID &id, const QString &key)
Remove the actionlist from the m_keyToActionMap if the key is no longer bound to any actions.
Member SchemaUpgradeWizard::PromptForUpgrade (const char *name, bool upgradeAllowed, bool upgradeIfNoUI, int minDBMSmajor=0, int minDBMSminor=0, int minDBMSpoint=0)
This uses GetMythUI()->IsScreenSetup() to work out if this program's context is a GUI, but GetMythUI() might create a MythUIHelper. Having a static bool MythUIHelper::ValidMythUI() would be much tidier?
Module recorder_subsystem

Check if the TVRec is actually still passed a ProgramInfo for the current and next recordings

Document the massive changes Daniel has made in the Vid and MultiRec branches

Module audio_subsystem
No one is working on documenting the audio subsystem.
Module video_subsystem
No one is working on documenting the video subsystem.
Module osd_subsystem
No one is working on documenting the osd subsystem.
Module lcd_subsystem
No one is working on documenting the lcd subsystem.
Module lirc_subsystem
No one is working on documenting the lirc subsystem.
Member MythContextPrivate::TestDBconnection (bool prompt=true)
Rationalise the WOL stuff. We should have one method to wake BEs
Member SchemaUpgradeWizard::PromptForUpgrade (const char *name, bool upgradeAllowed, bool upgradeIfNoUI, int minDBMSmajor=0, int minDBMSminor=0, int minDBMSpoint=0)
Clarify whether the minDBMS stuff is just for upgrading, or if it is a runtime requirement too. If the latter, then this possibly should be called even if the schema match, to ensure the user is informed of the MySQL upgrade requirement.
Module database_subsystem
No one is working on documenting the database subsystem.
Member getMemStats (int &totalMB, int &freeMB, int &totalVM, int &freeVM)
Memory Statistics are not supported (by MythTV) on NT or DOS.
Class MythPower

Add OSX subclass

Add Windows subclass

Add Android subclass

Add sending Myth events as well as emitting signals.

Member MythPowerDBus::IsAvailable (void)
Check status of KDE ("org.kde.KSMServerInterface") and Gnome("org.gnome.SessionManager").
Member CardUtil::HDHRdoesDVB (const QString &device)
Replace with a more general purpose routine - something that gets /sys/features and searches that for particular modulation types. e.g. bool CardUtil::DoesHDHRsupport(const QString &device, const QStringList &modTypes);
Class MythDRMPRIMEContext
When Rockchip support is complete, refactor this to a pure virtual class and create appropriate sub-classes as needed for the specific codecs.