commit 89d1991ef285567f8b46f287786b2d8ca1fb9236
Author: Peter Bennett <pbennett@mythtv.org>
Date:   Wed Jul 15 15:13:26 2020 -0400

    Android: Fix support for android 5
    
    For android 5 we need to build with api level 21 and that level does
    not have the ftello and fseeko functions.
    
    (cherry picked from commit b76dbf4214614fa4cd572cc38c62481bb97e0146)

commit 8602e978777fc20bea760ff37b620017f77a1fc1
Author: Gary Buhrmaster <gary.buhrmaster@gmail.com>
Date:   Sun Jun 14 00:19:39 2020 +0000

    Update XMLTV loglevel in programdata
    
    Change the loglevel in programdata to be the same as
    EIT updates for the equivalent changes (i.e. debug).
    This allows a run of mythfilldatabase with the options
    of --verbose general,xmltv with the default loglevel
    of info to not blather on about the expected case of
    adding, deleting, updating programs (i.e. making the
    usage easier to review), but just include the XMLTV
    logging that likely matters for the average use case.
    
    Last of four patches. Fixes #13633.
    
    Signed-off-by: David Hampton <mythtv@love2code.net>
    (cherry picked from commit 6e61aa988fe1cbc260798d5be53c496f66b04f4f)

commit 85dec4804c286483794bb4d11646ef1ff910c0ee
Author: Gary Buhrmaster <gary.buhrmaster@gmail.com>
Date:   Sun Jun 14 00:01:39 2020 +0000

    Enable output from the grabber to be logged
    
    Invoke the running of the grabber such that the output is
    actually captured and logged if the verbose xmltv option
    is specified (the header/trailer implies that at some time
    in the past the output was made available in the logs, but
    it has not been included for some time).
    
    Signed-off-by: David Hampton <mythtv@love2code.net>
    (cherry picked from commit be1c88665a79e654f12f818944732101b0fcbcfc)

commit 396dd023e60aecf667d2e7affa63bb18b468c660
Author: Gary Buhrmaster <gary.buhrmaster@gmail.com>
Date:   Sat Jun 13 23:54:59 2020 +0000

    eliminate extranous LOC in logging
    
    All the other LOG_ERR logging in mythfilldata do not
    include the LOC field.  Eliminate it for consistency
    in the logging output
    
    Signed-off-by: David Hampton <mythtv@love2code.net>
    (cherry picked from commit a8eeda8f0ed97cc6aca025d2a517110eb11b5aa9)

commit 62af47c971c30d2201705302ab260147b7fffd26
Author: Gary Buhrmaster <gary.buhrmaster@gmail.com>
Date:   Sat Jun 13 23:50:45 2020 +0000

    add missing(?) log message when grabber interrupted
    
    Signed-off-by: David Hampton <mythtv@love2code.net>
    (cherry picked from commit da860e00f7ca51e709485cb7358546a551b46828)

commit 167c8d56e20167a5cc39f1ab8b301313a562b929
Author: Bill Meek <billmeek@mythtv.org>
Date:   Thu Jul 16 07:55:45 2020 -0500

    Plugins/dbcheck: Replace CHARACTER SET 'default' with 'utf8'
    
    Fix required for MySQL v8 because using 'default' CHARACTER
    SET results in a "You have an error in your SQL syntax"
    message.
    
    There are two cases to solve.
    
     1. New systems that will execute the DBSchemaVer changes
        for the mytharchive, mythgame, mythmusic & mythweather
        plugin tables. The origial Trac ticket.
    
     2. Existing systems that have up to date DBSchemaVer for
        the above but need a new version to use the unambiguous
        character set. Not solved here, just to get the the
        above fixed.
    
    Refs #13577

commit 7bf1284867b94509cdbf473cb6e216c0c36145f1
Author: Peter Bennett <pbennett@mythtv.org>
Date:   Fri Jul 10 15:00:58 2020 -0400

    Services: Add new Video GetSavedBookmark and SetSavedBookmark methods
    
    Previously these methods only existed for recordings. Now adding
    similar methods for Videos.
    
    (cherry picked from commit 48557d32c25903c58042b9b4b2c71e5da8631390)

commit 8212a9b7bf0354894013b102f88e4ef9d827c26c
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Sat Jul 11 11:47:01 2020 +0100

    VDPAU: Fix VDPAU rendering for AMD/Gallium
    
    Fixes #13253
    
    (cherry picked from commit 2fb7e4cb51408343ef40e13d099ca9802a576a8c)

commit 0add177794446f98e0dfc4b40d628017e864701f
Author: Bill Meek <billmeek@mythtv.org>
Date:   Mon Jul 6 22:07:23 2020 -0500

    MacOS: remove hard-coded python2.6 PYTHONPATH code
    
    Based on a patch from John Hoyt, and thanks for testing
    on MacOS.
    
    This could prevent the location of Python packages in
    the future if the OSX packaging sets --python=python
    (for example). Currently the version is included in
    the Python executable's file name:
    
        --python=/opt/local/bin/python3.8
    
    Fixes #13643
    
    (cherry picked from commit d30fd541c74a37d589548eadb9d225b2a96563ab)

commit 3ef7db67fec2a2d843cea673d14240d9ee512332
Author: Bill Meek <billmeek@mythtv.org>
Date:   Fri Jul 3 19:45:12 2020 -0500

    Games Plugin: change system to `system` for MySQL v8
    
    (cherry picked from commit 94931c00dc5b67d72503fd112846f148a8e942c4)

commit 8a0c4f9bd2d9567ccbdb4151d7c03068388b45a6
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Mon Jun 29 17:15:57 2020 +0100

    macos: Handle high DPI displays
    
    - behaviour should be unchanged for non-macos installations
    - the underlying problem is that when macos is using high DPI, the
    windowing system reports e.g. 1920x1080 as the window size but the
    underlying OpenGL context is using the full resolution e.g. 3840x2160.
    - video playback is actually easiest - as we just scale the video
    window/viewport as needed - and everything else falls into place.
    - the UI painter is slightly more complicated as our UI images are at
    the lower resolution - and the entire UI code is operating on the
    reported window size. So scale incoming rendering data as required,
    which also requires some tweaking of the texture vertices.
    
    Refs #13618

commit ade713f98c5846e9c5f08a76e72cbe24ad7057ef
Author: Peter Bennett <pbennett@mythtv.org>
Date:   Fri Jun 5 14:21:59 2020 -0400

    Services: Add new GetStreamInfo method
    
    GetStreamInfo gets basic stream information for a video or recording, including
    frame rate, picture dimensons and video codec, as well as audio codec and number
    of channels. The information is obtained from the ffmpeg avformat apis.
    
    (cherry picked from commit a2af89101bd4a4a28e83f85fbcd7b30456a01ca8)

commit a675ee1e110fca3ea61a197729ca42c899db94f9
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Thu Jun 25 11:34:54 2020 +0100

    VDPAU: Disable level checks in MythTV and FFmpeg
    
    - per the FFmpeg docs, this should be the default and it is causing
    hardware acceleration to fail on older VDPAU devices.
    
    (cherry picked from commit 9995644dac9047e04a8c09ebfe029099aa915ec9)

commit 261eeff1bd1a5ec8a3573f5957238961793d9356
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Thu Jun 25 11:04:14 2020 +0100

    VDPAU: Extend FFmpeg constrained baseline check to include baseline
    
    - to match the changes in our own code.
    
    (cherry picked from commit f142e8535fa61db91454f571b57d479c9130515f)

commit b89d76fa944a5dfc61e96eaa532eb399d92419ab
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Tue May 5 23:36:21 2020 +0200

    Transport Editor updates
    
    Show the DVB-C parameter edit page for HDHomeRun tuners when they can do DVB-C.
    Previously the ATSC parameter edit page was shown.
    Show the DVB-T2 parameter edit page for HDHomeRun tuners when they can do other DVB.
    Previously the ATSC parameter edit page was shown.
    Fixed a problem where sometimes the Transport Editor did not show any
    transports when there were only a small number of transports in the video source.
    FIxed a problem where the modulation system was not saved in the transport when a
    DVB-S (not a DVB-S2) tuner and the transports came from the NIT transport loop.
    
    (cherry picked from commit fcf9e8e79fd4971d298cd8c3a53466d256f7f0ff)
    
    Fixes #13640
    
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit 1182a9abea4724d8af0b8690f04e39779855fce9
Author: Bill Meek <billmeek@mythtv.org>
Date:   Mon Jun 22 13:23:25 2020 -0500

    Python Bindings: care for python3.3+ use of ElementTree
    
    Fedora 33 is using Python 3.9 and no longer has cElementTree.
    Which was depracated in v3.3, thanks GB.
    
    https://docs.python.org/3/library/xml.etree.elementtree.html
    (cherry picked from commit d7c0c5d263d62312559b1c96f375b5f081cf564b)

commit bcd9a63ec012adeb4a028d6873c512bb93afa3e2
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Mon Jun 22 18:36:33 2020 +0100

    VDPAU: Fall 'back' to H264 Main profile for H264Baseline
    
    - as well as constrained baseline
    
    (cherry picked from commit d3719e6b110c76b188a3e4217ed5e253d2f6bd7b)

commit 94423151e51e155472531d80a7e24b875a13b13c
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Thu Jun 18 11:25:09 2020 +0100

    MythPlayer: Use yadif for deinterlacing previews (regression)
    
    - the cpu deinterlacers were re-factored shortly before v31 and yadif is
    now 'high' quality
    
    (cherry picked from commit d3378789e99f00ec9c2b911cc244ffec6b82b6d6)

commit e9e48d190e11b51051dfea9485dc4f903af7b8e9
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Thu Jun 18 11:22:02 2020 +0100

    VDPAU: Further extend debug logging of support tests
    
    (cherry picked from commit 43714e821ba5e53a4e3e9726c658fb4b2aaeccea)

commit 9e47ae9d385be2b5fdb72007aad998443fbab11d
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Tue Jun 16 17:30:20 2020 +0100

    MythOpenGLVideo: Fix chroma sampling for multiplanar formats when
    resizing
    
    - we need GL_NEAREST for YUY2 and when using unsigned integers texture
    formats (GLES3.X for 10bit)
    - but it introduces some sampling errors for the chroma planes as, while
    the textures are not being resized for the first pass, the chroma planes
    are a different size to the main texture.
    - so where possible, use GL_LINEAR to filter the chroma planes and
    improve playback quality in the bulk of cases.
    
    (cherry picked from commit 3a4da22e3b1fa941d3495a6950ef6e5a6bfef7ab)

commit 16e06262ba588597496306467dbea845d5f53c47
Author: David Hampton <mythtv@love2code.net>
Date:   Sun May 31 20:20:21 2020 -0400

    Fix missing Qt 5.15 include in mythpainter.cpp.
    
    (cherry picked from commit f12096ba57c37f8966b9cc8fa2a775255862df9f)

commit 134ebd7b2938dfede4a916932e52146cf66c4a9c
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Wed Jun 10 19:28:39 2020 +0200

    Python: Resolve deprecation warnings
    
    Python3.8 shows a couple of deprecation warnings when running
    with the "-Wall" switch:
    
    The method locale.format() will be removed in a future version of Python.
    Use 'locale.format_string()' instead.
    
    DeprecationWarning: isAlive() is deprecated, use is_alive() instead.
    
    Tested with python2.7, python3.6 and python3.8.
    
    (cherry picked from commit e3f7f092fde8a81cfa8de2a808ce64cc3fa1d83c)

commit 4c990647889687b5a5ee5951d289a5f0777dda90
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Wed Jun 10 19:25:02 2020 +0200

    Set MySQL Mode explicitely when starting a session
    
    Newer SQL server enable the 'strict' MySQL Modes
    "STRICT_TRANS_TABLES" and/or "STRICT_ALL_TABLES",
    which cause an error on committing to tables with fields,
    having no default value defined.
    
    An example: table "jobqueue", field "args", type "blob".
    
    This change sets explicitely the "SQL Mode" per python session
    like 'libmythbase' does it.
    
    Tested with python2.7, python3.6 and python3.8.
    
    (cherry picked from commit 968712b9280b7220d73a44da709cbed655f1ee0a)

commit d8ecd8fe7c85165fe3c818a6d07e7ca9472e7735
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Wed Jun 10 19:24:00 2020 +0200

    Python: fix timestamp calculation
    
    Python 3.8 changed the handling of the 'datetime' class:
    According release notes ("What's New In Python 3.8"):
    Arithmetic operations between subclasses of datetime.date or
    datetime.datetime and datetime.timedelta objects now return an
    instance of the subclass, rather than the base class.
    
    This caused an error in the calculation of a 'timestamp'.
    
    Tested with python2.7, python3.6 and python3.8.
    No other occurences of similar arithmetic operations identified.
    
    Fixes #13622
    
    (cherry picked from commit 24db137ee6435ae0f1ecc51c580ef1b3d5936402)

commit 0d8e6f1b14e6d670e54c70fac80cde797e100111
Author: Paul Harrison <mythtv@sky.com>
Date:   Thu Feb 27 17:52:31 2020 +0000

    Merge pull request #191 from ijc/musicmetadata-disc-number
    
    mythmusic fixes for multiple discs
    
    (cherry picked from commit 90a86400ae13e8dcff7d7ddb1b469409a8e3cc03)

commit 445cf1fe6be324245dfc1c548d265bec147f711c
Author: John Poet <jpoet@mythtv.org>
Date:   Sun Jun 7 14:37:09 2020 -0600

    ExternalStreamHandler: Use DEBUG log level for TunerStatus
    
    (cherry picked from commit 118db4df5d0fc70971f7aa1d4f468f41bf3baa81)

commit 6b45963cf8a25a6b0852edf3943db9b6857bb939
Author: John Poet <jpoet@mythtv.org>
Date:   Sun Jun 7 14:12:37 2020 -0600

    mythexternrecorder: Fix "tuning" of channels by external recorder, instead of separate "tuner".
    
    (cherry picked from commit d03307172137afeaa1f70e4f9e5458ff5f46570b)

commit aa753a179b3a08d0935f8adacc8d2611190bdac0
Author: John Poet <jpoet@mythtv.org>
Date:   Sat Jun 6 20:29:45 2020 -0600

    mythexternrecorder: ondatastart might need to know the channel number.
    
    (cherry picked from commit 5cf1846f76ff3a18212c2d6693b4701bdf64c03f)

commit dd35db8df117b5f2d2c6706438dcf2e316c19d95
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Sat Jun 6 22:09:21 2020 +0100

    MythPlayer: Fix double rate CPU deinterlacing
    
    - the second field was not being processed as after the first pass the
    frame was marked 'already_deinterlaced'
    - was only obvious for yadif which broke av sync quite badly when
    running at double rate
    
    (cherry picked from commit 72c9209e158e3cba33f81515220af36e704bec66)

commit 672d45b7bd8f03514e9936a0abdcb5c6d17c3112
Author: Ian Campbell <ijc@hellion.org.uk>
Date:   Sat Jun 6 09:06:46 2020 -0400

    Fix musicmetadata handling of compilations.
    
        Fixes #13585
        Closes #192
    
    Signed-off-by: David Hampton <mythtv@love2code.net>
    
    (cherry picked from commit 1236aef0ae520294446ed91d91ed0e988976e183)
    
    -----
    
    Squashed commit of the following:
    
    commit ca6ffb883c9f32ec8a7f1461a0b4d71914e3c210
    Author: Ian Campbell <ijc@hellion.org.uk>
    Date:   Mon Mar 16 20:18:29 2020 +0800
    
        musicmetadata: check for empty field before dumping to db
    
        This ensures all the fields are properly filled in. In particular it ensures
        that non-compilation albums have the compilation artist filled in to match the
        artist, otherwise they all end up with "Unknown Artist" which in turn means
        that albums which happen to have the same title (e.g. "Greatest Hits") all get
        lumped into one.
    
    commit 88418b6c7c400d04440eeeaf232f571a1463b09a
    Author: Ian Campbell <ijc@hellion.org.uk>
    Date:   Mon Mar 16 20:02:28 2020 +0800
    
        musicmetadata: clear id fields when main field is set
    
        ... otherwise they are never recalculated when the actual value changes.
    
    commit a0e93004c18f3a34c2c2d450af72366860a19b4e
    Author: Ian Campbell <ijc@hellion.org.uk>
    Date:   Sun Mar 15 15:35:32 2020 +0800
    
        musicmetadata: Fully update music_albums, including name and artist
    
        Since these may have changed.
    
    commit 30898722aebbcfbd9d28557fcdbf2324379db2b6
    Author: Ian Campbell <ijc@hellion.org.uk>
    Date:   Sun Mar 15 15:33:43 2020 +0800
    
        musicmetadata: Do not call `ensureSortFields` after `checkEmptyFields`
    
        The latter already calls the former right at the end.
    
    commit 2e4a0e93768142c05bcfcd1b58f1b7db7bbde609
    Author: Ian Campbell <ijc@hellion.org.uk>
    Date:   Fri Feb 28 07:15:41 2020 +0800
    
        musicmetadata: ensure compilation artist id is always set
    
        I was observing that I had one `music_albums` entry per track on each
        compilation album after the album was scanned the second time (first time it
        went in correctly).
    
        The issue was that on reloading from the DB the field was not being initialised
        so remained as `-1` when the entry came to be written back, which because the
        field in the DB is `unsigned` ended up being stored as `0`, so when subsequent
        lookups try to find the album it failed every time (since the 0 in the database
        matches neither -1 nor the >0 correct value) and a fresh one is inserted for
        every track.
    
        Fix this by adding and using `{get,set}CompilationArtistId` corresponding to
        the uses of `{get,set}ArtistId`. I broke out `getCompilationArtistId` from the
        within exiting `getArtistId` implementation.
    
    commit 56506e477ceb815081ed05aea3ff6656413b592a
    Author: Ian Campbell <ijc@hellion.org.uk>
    Date:   Wed Feb 19 20:05:22 2020 +0800
    
        metaioflacvorbis: Handle ALBUMARTIST as a fallback for COMPILATION_ARTIST
    
        Although there is no real standard this is as described in
        https://picard.musicbrainz.org/docs/mappings/ and what one gets by default
        using the picard tool (as I do).
    
    commit 1e303b005e4b613e4b965b1a5cbdc830b64020c2
    Author: Ian Campbell <ijc@hellion.org.uk>
    Date:   Thu Feb 27 20:00:05 2020 +0800
    
        Support `mythutil --scanmusic --force` to ignore file timestamps
    
        Useful after an upgrade (or while hacking) or if something else changed which
        doesn't affect the timestamp of the file.

commit 8c1fd6bb95bfc554d66a444cbfb177a2cd58c485
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Sat Jun 6 14:30:55 2020 +0100

    VDPAU: Extend logging of profile check
    
    (cherry picked from commit 43293708579193ff23459feba159cb9fab5259d1)

commit c89a7e3771ed094662710fdb18fe972d09a55955
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Mon Jun 1 18:26:44 2020 +0100

    MythDisplay: Track device pixel ratio
    
    (cherry picked from commit 907841a119d94edc4c66c1f1af1114c5ff012258)

commit fc9048228105e0bf416990f97c3ce3c2eceb3201
Author: Gary Buhrmaster <gary.buhrmaster@gmail.com>
Date:   Mon May 25 12:02:17 2020 -0500

    mythfilldatabase: remove program starttime order check
    
    Closes #13623
    
    Signed-off-by: Bill Meek <billmeek@mythtv.org>
    (cherry picked from commit 1f8b759dd7b047bde1b5c52f2471c79cd1619e30)

commit 9380616198f4149d20bb5ef41c3ca0f14944290b
Author: Gary Buhrmaster <gary.buhrmaster@gmail.com>
Date:   Mon May 25 11:52:11 2020 -0500

    Always request a reschedule when running mythfilldatabase
    
    Previous edits incorrectly left it where the request was only done
    when repeats were marked.
    
    Fixes #13625
    
    Signed-off-by: David Engel <dengel@mythtv.org>
    (cherry picked from commit 1ba15e5cdb91f121b60ae96358021d668cf73a71)

commit 1ca7a4b09ef38cd6e108a26bdc358f280d6ae3d3
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Thu May 21 16:27:21 2020 -0500

    Python Bindings: Services API, logging & XML enhancements
    
    - Improve logging dump of 'postdata'
    - Add an option to return raw XML data, {'rawxml': True}
    
    Some lxml.etree functions, e.g. fromstring()/tostring() cause pylint 'I'
    messages. users may want to add the following to their .pylintrc (or just
    add # pylint: disable=c-extension-no-member inline):
    
        [MESSAGE-CONTROL]
        disable=c-extension-no-member
    
    Closes #13619
    
    Signed-off-by: Bill Meek <billmeek@mythtv.org>
    (cherry picked from commit 1a1b69836515a5ec77b09c4559a3bb729af9cd7b)

commit f9baf09e4397032f1a00d98b5085f912547380b6
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Sun May 17 19:57:18 2020 +0200

    Crash of backend on delete of program being recorded
    
    Fix this crash and similar backend crashes in the scheduler
    by replacing all iterations over m_tvList/m_encoderLink/m_pEncoders
    from using the Qt extension foreach to the C++11 range-based for loop.
    The foreach apparently makes a deep copy of the container thereby
    invalidating the iterators that may be active on the same container
    simultaneously in a different thread.
    As an additional safeguard the qAsConst, a Qt-specific variant
    of std:as_const, is added to all loops.
    
    Fixes #13571
    
    (cherry picked from commit 8e2872679315547abc3c2f1a91e0f7b8baac79dc)
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit fa2165511fe0735c612be69445b6acafc05e4caa
Author: John Poet <jpoet@mythtv.org>
Date:   Sun May 17 20:58:41 2020 -0600

    mythexternrecorder: Add TUNER/newepisodecommand option.
    
    
    Some streaming sources have a "bandwidth saver" option and therefore need
    touched occationally to keep them going. If provided, this command will be
    executed whenever a new 'episode' starts up if the recording is already
    running on the desired "channel".
    
    (cherry picked from commit 07b49fc2546bbc4b4d7a85ffb4943d65a1986fbb)

commit 7a31a2e35ccf338952f377d2885eb3af81defb54
Author: John Poet <jpoet@mythtv.org>
Date:   Tue May 12 18:51:52 2020 -0600

    mythexternrecorder: Add ondatastart command option
    
    
    The config file can now specify a command to run as soon as data is detected
    from the 'external' application.
    
    (cherry picked from commit e4d9172d6e1e636fd61e1484f858cb4010380b50)

commit 6a5afb4dba08fcd790279af97348f3e69ebec8c3
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Tue May 19 18:08:50 2020 +0100

    VDPAU: Try and fall 'back' to H264 Main support
    
    - if H264 constrained baseline is reported as not supported
    - this mimics the additional test carried out in FFmpeg
    - N.B. untested but as far as I can tell this should get this profile
    working again on older chipsets.
    
    (cherry picked from commit 7eb2231803ec9851d91bc7461c184079c65385d5)

commit ce23a0225fcec2afbdfe5a7e82170e28f406c830
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Sun May 10 12:22:25 2020 +0200

    Fix mysql cursor class to handle bytearrays
    
    Newer Python MySQLdb modules call 'cursor.execute()' multiple times
    from 'cursor.executemany()'.
    With python3 and python3-MySQLdb > 1.4.0 these call-backs containing
    a query are bytearrays, resulting in a traceback in the '_sanitize' method.
    
    Note: This '_sanitize' method is only needed when creating a query within
    the Python Bindings, but not necessary when python-mysqldb itself calls the
    cursor.execute() method.
    
    Fixes #13614
    
    (cherry picked from commit b2e9c6a44233570704554894bf45e01bfa8e26a7)

commit c8e779649384e9810bf8b2262a8f928b1986994d
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Fri Mar 6 18:19:45 2020 +0100

    BackendServerAddr and MasterServerName replaced MasterServerIP
    
    in V30, according ticket #13024.
    
    Replace any occurrences of the deprecated settings and allow
    'BackendServerAddr(MasterServerName)' to be an alias for the
    host-ip as well.
    
    Fixes #13593
    
    (cherry picked from commit 105faee393b682e79a336d7ee893f82f8c10a896)

commit a2b8c262dc96274ef55be25c510a4bbe9b6b52b2
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Tue Mar 3 11:31:18 2020 +0000

    mythfilldatabase: Fix 2 potential leaks
    
    - introduced in a9aa006139da24cb and picked up by coverity.
    
    (cherry picked from commit cf282591a249864215c82cb7248153b3033d6ea1)

commit f5d75a6de7c4ac668e1a64cdf31c7100bc81b65b
Author: Hans Dingemans <jpldingemans@gmail.com>
Date:   Fri Feb 21 12:13:00 2020 -0500

    mythfilldatabase: reduce memory usage.
    
    Mythfilldatabase uses QDomDocument to parse and store the XML data that is read; according to QDomDocument documentation this object is not meant to handle large XML files; QXmlStreamReader should be used in these situations.
    
    This commit replaces QDomDocument by QXmlStreamreader.
    
    A test showed that memory usage dropped from 5.6 GB to 698 MB.
    
    Fixes #13517
    
    Signed-off-by: Peter Bennett <pbennett@mythtv.org>
    (cherry picked from commit a9aa006139da24cbad861a2c25d57fa3f71aba2a)

commit 723d46eaaa7be6bd760f2c5dfcb50b5410f315ec
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Mon Apr 27 21:28:44 2020 +0100

    libmythtv: Fix VideoToolbox framework name
    
    Closes #13609
    
    (cherry picked from commit 00b8defa6d27bb5688b3217f597adb1faac4773f)

commit 3ccdb8c6d24e86a7282d32c14a1f4f09c87e9756
Author: Bill Meek <billmeek@mythtv.org>
Date:   Sun Feb 9 19:03:03 2020 -0600

    Python Bindings: fix warnings seen in *buntu packaging
    
    (cherry picked from commit 12f44c74ed60e3b0909040f30665c9d3fc58c17c)

commit c0b8b6e036bdb531fe09be8005dcf1181d9333ec
Author: Michał Janiszewski <janisozaur+signed@gmail.com>
Date:   Tue Oct 30 21:56:52 2018 +0100

    Compare to `None` using identity `is` operator
    
    This is a trivial change that replaces `==` operator with `is` operator, following PEP 8 guideline:
    
    > Comparisons to singletons like None should always be done with is or is not, never the equality operators.
    
    https://legacy.python.org/dev/peps/pep-0008/#programming-recommendations
    
    Closes #13343
    
    (cherry picked from commit 2e7e9e82ae71e958a7844e768d3d2758cf6df3ad)
    
    Signed-off-by: Bill Meek <billmeek@mythtv.org>

commit 5f1993304e35042192aed059dd7cf8717b76c6a7
Author: David Hampton <mythtv@love2code.net>
Date:   Tue Apr 21 15:24:15 2020 -0400

    Fix incorrect data provided to UPnP client.
    
    This bug was introduced in 77b560f3cc when converting from the
    obsolete QString::sprintf function to typical QString formatting using
    QString::arg.  In one case the arguments were all converted, but the
    format string wasn't .  Fix that format string.
    
    Fixes #13612.

commit 917a2087ef032b2c36a102cf4a2b220e10bf7bfe
Author: David Hampton <mythtv@love2code.net>
Date:   Tue Apr 21 14:58:59 2020 -0400

    Fix segfault in code called from MythMainWindow::Draw.
    
    This reverts three of the changes in 380102ce34.  In
    mythmainwindow.cpp while running the m_stackList, the call to
    MythScreenStack::GetDrawOrder can apparently modify m_stackList or
    something that it points to.  Reverting the range-based for loops and
    restoring the original for loops prevents the crash.
    
    Fixes #13613.

commit 8bfc909dc70e8e9f156e66f7346f63e3e13660d5
Author: Paul Harrison <paul@mythqml.net>
Date:   Sat Apr 18 15:38:32 2020 +0100

    HLSStreamHandler: fix the formatting of a debug statement
    
    Refs #13608
    
    (cherry picked from commit 2b31dbf2ff30ea73b5865918719d14076c39f0cf)

commit 4e3935420ac0da8997d01ce77672f90d6dcbd78e
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Thu Apr 16 22:22:20 2020 +0200

    Fix "Full Scan" for DVB-T only tuners
    
    The "Full Scan" for tuners that can do only DVB-T and not DVB-T2
    was done correct but the modulation system was not entered in
    the transport in the database. This is now fixed.
    This gave problems in mythbackend when used with DVB-T/T2 tuners
    because these need the modulation system information.
    
    (cherry picked from commit a618b675fdd3b388221159e4d72cf15e56b2dfe4)
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit c8f62c1688bb2ceaedabb2563f434dac1d7d5694
Author: Paul Harrison <paul@mythqml.net>
Date:   Wed Apr 15 20:12:47 2020 +0100

    FAQ: trivial change to force an update

commit 4d0924203a33203eedc1d4cf0b3f242609d729ef
Author: Nigel Jewell <nige@grufty.co.uk>
Date:   Sun Apr 12 21:31:49 2020 +0100

    Fix typo in 0851b35e3ded43ea738473bc60b8e5d13595b922 comment
    
    (cherry picked from commit dca115895bcc7631fd4eb9dcfa0b4d838ed1e786)

commit 3b54678feba714c514f32b38b0f5c1c6a74eaf3f
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Mon Apr 13 17:12:12 2020 +0100

    VAAPI: Fix compilation for older drivers
    
    Fixes #13606
    
    (cherry picked from commit 394245f0dbab1f2680b5a6edc67764debe3d9dfd)

commit 2921af5591d127e4ff337d7c6c57e1015d28cfd8
Author: Paul Harrison <paul@mythqml.net>
Date:   Sat Apr 11 15:45:10 2020 +0100

    version.sh: if found use DESCRIBE to get branch and version information
    
    The Ubuntu packaging scripts create a DESCRIBE file that has the branch and
    version information we need so use that if it's found.
    
    (cherry picked from commit 0851b35e3ded43ea738473bc60b8e5d13595b922)

commit daa1d5d8e2a617c2fadb01e22558e30f53aa86b4
Author: John Poet <jpoet@mythtv.org>
Date:   Wed Apr 8 14:41:45 2020 -0600

    ExternalRecorder: Allow for optional ICON field is channels.
    
    Any ExternalRecorder which supports fetching channel information can
    now supply the icon image filename.  That information will be
    populated into the mythconverg.channel table. The file is NOT
    /installed/ anywhere and must exist where mythbackend looks for such
    files.
    
    (cherry picked from commit be7417fa483f650980767d053fc0cf4a20eac8f2)

commit f8495fd1564df151436ebe941a490ce5f7d871c8
Author: John Poet <jpoet@mythtv.org>
Date:   Sun Apr 5 18:04:33 2020 -0600

    ExternRecorder: Fix live tv channel changes.
    
    (cherry picked from commit 18fa5fff1b9ac862cea0c5e8a3fb8981052bd6a3)

commit ecb0c15b4cc3bd86905602f93a453bad6459c08a
Author: John Poet <jpoet@mythtv.org>
Date:   Sat Apr 4 13:49:46 2020 -0600

    ExtneralChannel: Use InProgress instead of running or starting to indicate a long running tunning operation.
    
    Thanks to Gary Buhrmaster for the suggestion.
    
    (cherry picked from commit 1dd0408e236e354f72eaed02c1119bb2b3f4a157)

commit 74544819067773869c87c4b1974e46dc9ad9e41f
Author: John Poet <jpoet@mythtv.org>
Date:   Fri Apr 3 10:09:18 2020 -0600

    MythExternRecorder: Add support for long channel change times.
    
    Add support for the external application to respond with "OK:Running" in
    response to a tuning request.  The external application must then respond to
    "TuningStatus" message.
    
    This keeps LiveTV from timing out after 7 seconds when the tuning command
    takes a long time. It also lets mythbackend start up much faster, since it
    doesn't have to wait for a tuning command to complete before initializing
    the next tuner.
    
    (cherry picked from commit 9a973f5b560c51b83f4af87c2e1a3bf82a5dbd77)

commit a58ef59549d9accb5b874140a4a16823732bc4cf
Author: John Poet <jpoet@mythtv.org>
Date:   Fri Apr 3 10:09:18 2020 -0600

    ExternalChannel: When mythbackend is startting up, don't /actually/ tune a channel.
    
    Tinning with an External Recorder can take a long time. As long as the
    External Recorder can be executed, assume tinning a channel will succeed.
    
    (cherry picked from commit 7c0b1421c49173a8955f6e090fbac9fc3d280ea4)

commit 49e545531a8ef6383abeb76a03220ae3ee880f7b
Author: John Poet <jpoet@mythtv.org>
Date:   Fri Apr 3 10:09:18 2020 -0600

    mythexternrecorder: Allow use of channum with tuning command, even without a channel configuration file.
    
    (cherry picked from commit 356dd5e39a61e3a5e433508bd6afc937ca7c9e30)

commit 1244eddac0d8d65533b997eea67019aa1866acdd
Author: John Poet <jpoet@mythtv.org>
Date:   Fri Apr 3 10:09:18 2020 -0600

    Dvr::AddRecordSchedule: Allow last_record to be specified.
    
    Scheduler::UpdateManuals: When creating the mythconverg.program entry,
    populate program.originalairdate from record.last_record.
    
    
    A little bit of a hack, but it is the cleanest solution without adding
    another variable to mythconverg.record.
    
    (cherry picked from commit 56277c79b7474d87c31bc67785972df16620115e)

commit 4f79764adab0faea6f0e76074358bef902b13f14
Author: John Poet <jpoet@mythtv.org>
Date:   Fri Apr 3 10:09:18 2020 -0600

    mythexternrec: Track channum so an unnecessary tune is not issued on back-to-back recordings.
    
    (cherry picked from commit d8d3b7422b220cbecaec518b350373075797026e)

commit 3867297afe19fb6853143e9542688e66c7bc1f39
Author: John Poet <jpoet@mythtv.org>
Date:   Fri Apr 3 10:09:18 2020 -0600

    mythexternrec: Add a cleanup system command option to the config file.
    
    If [RECORDER][cleanup] is defined, it will be run whenever this external
    recorder is shut down.
    
    (cherry picked from commit d5dacff66275b7e45a7c2cf3dadfadcc7fc2a87f)

commit a465f1b03d505b0038ba5d40b11bb10039454733
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Tue Apr 7 22:33:36 2020 +0200

    Use const_iterator for QMap m_encoderList
    
    Use const_iterator, constBegin, constEnd and constFind while accessing
    the tvList and pointers to the tvList such as m_encoderList and m_tvList.
    This fixes the problem of crashing while deleting a recording.
    When deleting, the m_encoderList is accessed by more than one thread.
    The QMap is documented to be re-entrant but this appears to be only the case
    when the QMap is accessed with the const variants of the member functions.
    
    Fixes #13571
    
    (cherry picked from commit 4192aab4d31301596b506c47507e8c3d872cc18f)
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit ece4ff7ebc1b1383e62d11ad55bd9fa845185d90
Author: David Hampton <mythtv@love2code.net>
Date:   Tue Apr 7 10:07:43 2020 -0400

    Fix improper sorting of names that start with "An".
    
    The US English translation accidentally removed the space after this
    word, causing it to always be removed instead of just when it was a
    separate word.
    
    Fixes #13603.
    
    (cherry picked from commit 5d3743c7989813d4297ff97ba8959cf17b659889)

commit 9258fb56250392eb49abeb71785e4166b78c48fd
Author: Paul Harrison <paul@mythqml.net>
Date:   Tue Mar 31 18:25:58 2020 +0100

    configure: enable by default gnutls support in our copy of ffmpeg
    
    This is required to support playback from protocols using these schema :-
    https, rtmps, rtmpts and tls.
    
    Support is enabled by default if gnutls is found but can be explicitly
    disabled by passing --disable-gnutls to ./configure
    
    (cherry picked from commit 427d87b0c62d9c51a0ce8543b770abda73dfc6fc)

commit 2cd6ccb419cbab542c782f9b8df2cdfb7f406ee5
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Fri Apr 3 17:02:09 2020 +0100

    NVDEC: Fix decoder support check
    
    (cherry picked from commit a2f19766c768c5ef40f596e1edf30dc3afb6889c)

commit 809ea6028d6b30315f88d6fbd3374317cedf4361
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Fri Apr 3 11:46:43 2020 +0100

    MythNVDECContext: Additional logging for decoder check

commit 57f25431f5a6935f6d6473323f7f66a7f6a80cc4
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Fri Apr 3 11:09:51 2020 +0100

    VAAPI: Fix direct rendering for Intel iHD series drivers

commit aa63cae341f4001b5a447dc871f2d1962b883845
Author: Philipp Matthias Hahn <pmhahn+mythtv@pmhahn.de>
Date:   Mon Mar 30 09:53:27 2020 +0200

    Python: Update JOBTYPEs
    
    89b6416b50c  78 (Robert McNamara          2011-07-03 16:49:38 -0700  79)     JOB_METADATA     = 0x0004,
    ab33dd919ef  80 (John Poet                2018-03-08 16:02:25 -0700  80)     JOB_PREVIEW      = 0x0008,
    
    (cherry picked from commit f9bb4f76c864c65969ccc64541c30548c6f65344)

commit c8c59f5548ce99d1248cb52e467e4c9e1100476e
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Sun Mar 22 19:00:37 2020 +0100

    Updated "Remove duplicates" channel scan option
    
    Renamed the feature from "Remove duplicate channels" to "Remove duplicates".
    Changed the default for this option to Selected/Checked.
    Removed the check on individual channels across all scanned channels.
    The implementation does not check for original network ID plus transport ID
    on a per-transport basis, as suggested in ticket #12107 for DVB, but it checks
    this on all channels in the transport. The implementation is also expected to work for ATSC.
    Thanks to John Pilkington for numerous tests in the daily changing UK Freeview landscape.
    
    Refs #13472
    Fixes #12107
    
    (cherry picked from commit 1b4d44b468de0a8c7ad2c25a1d779ce1dc2c06b8)
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit fec7309d231992cc88156e7fe80fd060f5639142
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Fri Mar 20 23:37:32 2020 +0100

    Fix for "Remove duplicate channels" scan option
    
    Fix counting bug in this new feature.
    Fixed corner case in updating existing channels where
    the same channel was present more than once in the database.
    Improved debug output.
    
    (cherry picked from commit e9931870756c32d3c0ba85e6ab6a6d71130a571a)
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit e0e09b6b69c8e95fb45d97f1a2a56d625cb2df77
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Thu Mar 19 23:55:26 2020 +0100

    Scan option "Remove duplicate channels"
    
    Add new scan option to remove duplicate transports and duplicate
    channels based on signal strength of the received signal.
    This can be useful when receiving DVB-T2 and other OTA signals
    when the same channels can sometimes be received from more than
    one transmitter on different frequencies.
    
    Refs #13472
    
    (cherry picked from commit d0626e90287427408b28e2b0eabe12c0cb835118)
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit f48478b4772547cfb67cea011a962f068a057ff6
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Mon Mar 16 23:24:11 2020 +0100

    Add Full Scan option for DVB-C Netherlands
    
    Add an entry in the frequency tables for a "Full Scan" option
    for DVB-C in The Netherlands. There is currently only one entry
    which is the initial tuning frequency of the Ziggo network.
    
    (cherry picked from commit a74700c34657ef0cb99b4207f069e7881b4d948c)
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit d052cbc41cce4201b7a578f3a0820a9c9d3771d9
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Sun Mar 15 22:26:28 2020 +0100

    Signal strength of scanned transports
    
    Show the signal strength of the scanned transports in the transport list.
    The transport list is shown if the "-v chanscan" option is given when running mythtv-setup.
    The signal strengths are useful to determine which transport to choose when identical
    transports can be received from different transmitters on different frequencies.
    
    Refs #13472
    
    (cherry picked from commit 31129946b719ff21b1a6cad86b2580ef8043a10f)
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit 2ef589a8d742613ebe247362366cc045855b195c
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Sun Mar 15 22:10:01 2020 +0100

    T2_terrestrial_delivery_system debug output
    
    Debug output of the T2 terrestrial delivery system descriptor added.
    First version with only the mandatory fields.
    
    (cherry picked from commit 8bde08adc702f05344c12d6eeb2b6c6b37255924)
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit 81d4056c2402882621590e7cd88ae8af5ba134aa
Author: Klaas de Waal <kdewaal@mythtv.org>
Date:   Wed Mar 4 22:08:23 2020 +0100

    Wait for NIT or MGT when scanning
    
    In mythtv-setup channel scan, wait for a NIT or a MGT when the
    PAT/PMT have been found. This solves the problem that sometimes
    channels are found but the channel names are missing.
    
    Refs #13472
    
    (cherry picked from commit ac67d5837062ab47aa6f9b93df001a2a245d32ad)
    Signed-off-by: Klaas de Waal <kdewaal@mythtv.org>

commit f496eb12ea1eab92d9ca0e57856da66b54e9a0fa
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Fri Mar 27 17:28:58 2020 +0000

    libmythtv.pro: Typo
    
    (cherry picked from commit 59b00df23e73d842552c0105a7f51c6a12de7796)

commit 32ae89ef505c77cb520f1e601efef58890bdcb57
Author: Mark Kendall <mark.kendall@gmail.com>
Date:   Thu Mar 26 13:49:53 2020 +0000

    MythCodecContext: Ignore hardware decoders when there is no GUI
    
    (cherry picked from commit 1e06407c6edb2f73eacb3b7bb9782bd9375912cd)
