Simplify Setup pincode checking. Refs #10950
Restore setup pincode following [57adc5d120]

'57adc5d120 - Flatten the Setup Menus in the default menu theme' dropped util_menu.xml but failed to carry over the <password> markup.

Fixes #10950
Ignore time periods in the past for the Metoffice 18 hour grabber.

The feed doesn't always update on time so it's possible for one or
even two 'historical' time periods to precede the data we're
interested in. This just ignores any forecasts more than 3 hours in
the past, which is the duration of each forecast period.
Set s_pgq to NULL after we delete it PreviewGeneratorQueue.
Make SignalHandler a singleton.

There can only be one SignalHandler object per application.
This allows AddHandler to be a static method so it can
be used outside the main initialization. Since AddHandler
doesn't actually chain handlers as suggested by it's name
this also renames the method to SetHandler.

This also adds a lock for m_sigMap so we can call SetHandler
in a thread other than the main thread.

Finally, this allows a handler to be added for SIGINT and
SIGKILL.
Fix SIGINT/SIGTERM handling during video playback.

This was broken when SignalHandler was introduced.
There were two problems:
  1/ Calling QCoreApplication::exit()/quit() doesn't actually make the
     program exit if it is in the video playback loop since we take
     over the UI event loop. This has been fixed by periodically
     checking SignalHandler::IsExiting() and setting TV::wantsToExit
     if it is true.
  2/ The VideoOutputXv already had a signal handler for SIGINT, but
     so when we exit playback the first time we were resetting the
     SIGINT handler. This has been fixed by using the
     SignalHandler::SetHandler() method introduced in the last commit
     instead of registering a signal handler ourselves and making the
     new signal handler call QCoreApplication::exit() instead of exit().
Make mythavtest always use OpenGL on Mac

Following 0a5d426a0c4ab4ac8791c9e87f8f44bf2e0b8514, do the same for mythavtest
Fix possible deadlock in AirPlay server

Under some circumstances, we could send a PLAY command while the system was already playing, so we would never receive the TVPlaybackUnpaused signal and wait forever.
Add a new TVPlaybackPlaying() signal that is always emit after handling the ACTION_PLAY event
Add method to immediately interrupt HLS read or seek.

HLSRingBuffer::Read and HLSRingBuffer::Seek always wait for sufficient data to be buffered before returning. Add two new methods: HLSRingBuffer::Interrupt() and HLSRingBuffer::Continue() to stop any wait.

Ref #10934
Fixes #10956. Special case LoggingItem in ReferenceCounter.

We can't LOG the LoggingItem reference counter as that will lead to infinite recursion.
We also can't LOG in PrintDebug() under the leakLock lock anymore because that will lead to a deadlock.
Add Ceton usb support

The attached patch fixes an issue with the Ceton RTP code that
prevents it from working on the USB version Ceton device.  The
previous code attempted to filter out any packets originating from IPs
other than the Ceton's configured IP.  This worked fine with the PCIe
ceton device, but the USB version does not behave the same way.
Packets will be originated from another IP address.  Thus the code
will not let any packets through when using a USB Ceton.  Removing
this check will allow both the PCIe and USB Ceton devices to function
properly.  Fixes #10952 .

Signed-off-by: David Engel <dengel@mythtv.org>
Fixes #10948. Fixes EIT shutdown deadlock.
Fixes #10872. Use desired start and end times.

The recording quality measurement needs to know when a recording was
supposed to start and end to know how much is actually missing from
the recording. We used to use the scheduled start and end times for
this, but sometimes a recording is intentionally started late or ended
early. This captures that by tracking the 'desired' start and end point.
This is initially set by the scheduler using and pre and post roll
values, and if the user intentionally stops a recording early that
updates the desired end time as well.

Conflicts:

	mythtv/libs/libmythtv/dtvrecorder.h
Refs #10872. Use desired start and end times for recording quality.

This is the rest of [07acf0e85]. The constructors weren't right in
the previous commit and we need to get updated desired times to
the recorder for the recording quality determination to use them.
Fixes #10897. Clear paused when we unpause FirewireRecorder.

Signed-off-by: Daniel Thor Kristjansson <danielk@cuymedia.net>
Refs #10948. Fully randomize EIT crawl start time.

The deadlocks we've been seeing here should be fixed now, but they
should have been rare to begin with due to randomization of the
EIT Scanning start time. But they were occurring at fairly high
frequency. It turns out we were not applying enough randomness when
there were multiple cards and we were also losing randomness after
the first recording on a tuner finished and we reset the clock.
Fixes #10933. Don't close readfd from under MPEGRecorder::run()
fix braino in parser of delivery system descriptor

Use "a" instead of "auto" as default for DTVInversion to silence error.
Actualy show what inversion parameter is considered invalid.
Make both copies of the error message identical while here.

Fixes #10917

Signed-off-by: Daniel Thor Kristjansson <danielk@cuymedia.net>
Updated Hong Kong Chinese MythFrontend and MythArchive translatation
from Walter Cheuk

Thank you Walter!

Refs #10960

Signed-off-by: Nicolas Riendeau <nriendeau@mythtv.org>
Clarify an error message to indicate that the xmltv grabber is erroring, not mythfilldatabase