Add more logging HandleIdleShutdown() to give a clearer picture of what's happening
(cherry picked from commit be074d181b21b4107d7084d1dd6648820ed5aaed)
More robust checks before blocking shutdown for a mfdb run in the near future
(cherry picked from commit a269f9538763c426414e7dc9dd6d93d3329e2156)
Fix startup 'wait for client' check that assumed the client would be non-blocking. It's possible for a frontend to connect to the backend, then go idle before we re-checked for it's presence, which would have prevented the backend shutting down. If _any_ client is connected, then release the block on shutdown.
(cherry picked from commit 7e0fa3f28320ca658ef2e1945e3f1919bb6e2022)
Add some logging to show what is happening with the startup shutdown block.
Provide better seeking and position display for some videos.

Specifically, there are examples of poorly-encoded avi files that
report a video frame rate of 30fps but the video stream is actually
24fps.  Because frame intervals are actually encoded as 30fps, every
4th frame has to be repeated.  Without an adjustment to framesPlayed,
translations between MythPlayer's frame-based seeking/display and
ffmpeg's timecode-based seeking drift out of sync.

Note: Similar adjustments may be necessary if frames have to be
dropped due to a frame rate mismatch.

Refs #11415.
(cherry picked from commit e7a8dfc62226f3b192559828e43f3396640c7c0e)
Bump the ABI version after 990757a.  Refs #11415.
Ensure the date we pulled as a string from the database is actually valid
Use MythDate::fromString() instead of QDateTime::fromString()