MythArchive: Add some initial storage group support to Create DVD

This is based on a patch from Lawrence Rust with some changes to make it work
with current Myth.

Also fixes #7274 (sometimes failing to get the proper file size).
Add some comments to the TrackTypes enum.
Add some logging to ScanDSMCCStreams
Remove an unnecessary null pointer check that was preventing ScanDSMCCStreams() from working. The interactive TV code doesn't use the OSD class at all.
MythArchive: Set the ionice level to idle

If the psutil python module is available lower the ionice level of the
mythburn.py script. Fixes #11147.
Revert "mpegts: Make sure we don't return uninitialized packets"

This change broke data streams, particularly DSMCC packets were
rejected which in turn broke MHEG Interactive Services e.g. 'Red
Button' services

This reverts commit 2ea63fc01cec3a7a87c1ec2279dbb08ff8f21445.
Add a setting to control MHEG interaction channel, patch by Lawrence Rust

This also disables the interaction channel (and iplayer) by default as
it appears that this is currently broken, possibly by an upstream
change at the BBC.
Tidy comment
Fix Saorview MHEG problems

In MHEngine::GenerateUserAction? the current scene is passed to EventTriggered?
 , but Saorview MHEG works if the current app is passed instead. This change does not seem to break BBC MHEG.

 This is from MHEG-5 Broadcast Profile (ETSI ES 202 184), and I'm assuming there's something similar in the Corrigenda to the UK Profile (the Corrigenda doesn't seem to be available from dtg.org.uk any more).:
UniversalEngineProfile(N)

Receivers based on the present document but which have not been
verified as fully conformant shall not return true when N=1 285. Instead
they shall return true when N=2.

 Saorview expects UEP(1285) to return true, MythTV returns true for UEP(2), but not UEP(1285).

 Also there are bugs in MHText and MHLineArt.

Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
Prevent DVDRingBuffer waiting in 'safe_read' during a still frame as this can lead to a deadlock with the player thread if the user tries to call up the OSD menu (due to avcodeclock being locked until the still frame is dismissed, which will never happen if the still frame has an indefinite timeout).
Update German MythFrontend, MythGallery and MythGame translation
from Florian Bittner

(The other files contained no new translations)

Thank you Florian!

Refs #11823

Signed-off-by: Nicolas Riendeau <nriendeau@mythtv.org>
Merge branch 'master' of code.mythtv.org:mythtv
MythArchive: pretty print the created xml files in mythburn.py

This just makes reading them easier while debugging.
AFD: Correctly render data only (MHEG) streams without audio or video

Signed-off-by: Lawrence Rust <lvr@softsystem.co.uk>
Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MHEG: Fixes for InteractionChannel streaming from network URI's

This patch includes fixes for:
- Prevent memory leak on stream close
- Improve logging of streams with no content length header
- Add a mutex to prevent concurrent access to QNetworkAccessManager

Signed-off-by: Lawrence Rust <lvr@softsystem.co.uk>
Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MHEG: Interaction channel uses SSL certificate from the DSMCC carousel

Signed-off-by: Lawrence Rust <lvr@softsystem.co.uk>
Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MHEG: Serialise accesses to the MHEG engine

Fix race conditions in the MHEG engine that can occur when delivering
asynchronous engine events during restart and stream start/stop.

Fix race conditions in the DSM carousel which can result in page loading
timeouts.

Signed-off-by: Lawrence Rust <lvr@softsystem.co.uk>
Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MHEG: Support BBC iPLayer on Freeview

Signed-off-by: Lawrence Rust <lvr@softsystem.co.uk>
Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MHEG: Rermove an unnecessary mutex lock operation

QueueDSMCCPacket is called by the decoder thread to deliver MHEG data
packets.  If the MHEG engine is in a busy wait then acqiring m_runLock
can stall the decodere and caused dropped frames.

Acquiring the mutex is unnecessary simply to signal the m_engine_wait
condition

Signed-off-by: Lawrence Rust <lvr@softsystem.co.uk>
Signed-off-by: Stuart Morgan <smorgan@mythtv.org>
MHEG: Avoid an Interaction channel deadlock if data is cached

If a request to NetStream is pending when a 2nd is requested that can be
resolved from the cache then a deadlock occurs if the 1st request
finishes while the cached request is processed.

This patch releases the MHInteractionChannel mutex while the
synchronous request for cached data is processed.

Signed-off-by: Lawrence Rust <lvr@softsystem.co.uk>
Signed-off-by: Stuart Morgan <smorgan@mythtv.org>