commit 44f88ed46834d1a5180c3bd9c1bda95c744b281d
Author: Steve Erlenborn <1751095+SteveErl@users.noreply.github.com>
Date:   Mon Nov 21 21:33:18 2022 -0600

    Set Subtitle in Change Recording Metadata Search
    
    After a metadata Search within the 'Edit Recording
    Metadata' screen, the subtitle value is mistakenly
    written to the Description field. Then that value
    is usually immediately overwritten by the real
    description value.
    
    This code change fixes the problem by properly
    writing to the Subtitle field.
    
    Resolves #667
    
    (cherry picked from commit fdf5b0915a9608e569ba6b33b79aa4b187057b50)

commit f358f305c36fe6d52915c74b55ba17e84855ee8e
Author: David Hampton <mythtv@love2code.net>
Date:   Mon Nov 28 16:04:02 2022 -0500

    Fix problem in scripts directory with "make clean; make".
    
    The entire directory structure under the "obj" directory is created
    before the "make" command is executed. (Its created by qmake.)  Since
    none of those directories are created by "make", none of those
    directories should be deleted "make clean" command.  The appropriate
    place to remove the obj directory hierarchy is "make distclean", which
    is supposed to return the tree to its pristine distribution state.
    
    (cherry picked from commit 00e4fc531cb87e117e035f0e967b79847c9982f1)

commit 1544bc29779433b68ac3eac23b0e95cbe3e28123
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Fri Jun 17 19:09:37 2022 +0200

    Python tmdb3: Add API to get correct release dates
    
    The Movie Database deprecates the API call to `movie/{id}/releases`
    and favours `movie/{id}/release_dates` instead.
    
    The fetched dates are now sorted according the rules of themoviedb,
    if a release for a country is available.
    Otherwise, the primaray release date reported by `movie/{id}` is used.
    
    See
    https://www.themoviedb.org/
    https://developers.themoviedb.org/3/
    https://developers.themoviedb.org/3/movies/get-movie-release-dates
    https://developers.themoviedb.org/3/movies/get-movie-details
    
    (cherry picked from commit 6c3260c8b911a1f006eaf9a2130c4b014d7f9cf2)

commit 878f897c6e976be1a6f0b0d9a34601002d23a010
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Tue Nov 22 22:03:11 2022 +0100

    Additional fix to fileinfo.xml generation
    
    in mytharchivehelper.
    
    Commit 99a6e07 missed one item to cleanup this buffer
    by removing '\0' characters.
    This commit adds - hopefully - the last item to check.
    
    Refs #609
    
    (cherry picked from commit 427bc02c182be110ff255affa1fec265d769788c)

commit 7faccdcb0aef3592eb1ba11c3e463329b2bb93bb
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Mon Jul 25 18:47:30 2022 +0200

    Fix fileinfo.xml generation in mytharchivehelper
    
    Plugin mytharchive:
    When ffmpeg cannot determine the codec of the provided stream,
    the whole buffer provided by `avcodec_string` is taken in the function
    `getFileInfo` to create an xml entry. Cleanup this buffer by removing
    '\0' characters. Otherwise, the return codec in the xml sequence will
    hold 256 zeros and mythburn.py fails to read this xml file.
    
    Refs #609
    
    (cherry picked from commit 99a6e078027db5df7353dc2883d57dbb380acb92)

commit 8ff52c5438a9ffd2f6f5b328cde6171dbc38769c
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Tue Aug 30 22:17:37 2022 +0200

    Add release-date of an episode to tv-grabber ttvdb4.py
    
    The 'aired' field retrieved by the TV grabber for thetvdb.com API v4
    for a specific episode seems to be compatible to the 'releasedate'
    item of the xml format required by MythTV documented at
    https://www.mythtv.org/wiki/MythTV_Universal_Metadata_Format
    
    Refs #628
    
    (cherry picked from commit c11c85a674f8cf5c9dba51d6c29ea6c8607599e6)

commit 2af1c2064ecc314e681a39937fe9eb06be048b5f
Author: Scott Theisen <scott.the.elm@gmail.com>
Date:   Tue Jul 19 14:30:18 2022 -0400

    DTVRecorder::FindMPEG2Keyframes: fix frame counting with field pictures
    
    refs: https://github.com/MythTV/mythtv/issues/548
    
    See:
    ITU-T Rec. H.262 (2000 E)
    §6.1.1 Video sequence,
    §6.2.2 Video Sequence, and
    §6.3.10 Picture Coding Extension
    and Table 6-14 Meaning of picture_structure.
    
    When an interlaced stream is encoded with each coded frame
    consisting of two field pictures, the picture_header() (and its
    start code) appear twice per frame.  This causes the duration
    estimate to be twice what is should be by double counting frames.
    
    To fix this use the immediately following picture_coding_extension()
    for non-progressive sequences and only count a new frame at the
    first field to be presented instead of incorrectly counting each
    field picture as its own frame.
    
    (cherry picked from commit 2f2b7022b0dc8dcb322d25637b603f4679fdd387)

commit 987da09e83ca80181afdd24a1b457faadd1f2c9f
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Fri Nov 18 19:19:13 2022 +0100

    AVFrame deinterlacer
    
    The AVFrame deinterlacer is used by mytharchivehelper to create thumbnail images.
    In commit bb6365f the code has been updated to use the MythVideoFrame deinterlacer;
    previously a local implementation was used.
    This commit introduced an error in the conversion from AVFrame to MythVideoFrame.
    MythVideoFrame expects the video data to be stored in a contiguous memory area, with
    one base pointer and various offsets pointing to the different areas (Y, U, V).
    AVFrame has three pointers and can and does use separate memory areas.
    The original code used pointer subtractions to compute the offsets for MythVideoFrame
    but this only works if the video memory is one contigous memory area.
    If not, it leads to segfaults.
    This is now fixed by copying the AVFrame video data into a temporary buffer
    and passing that to the deinterlacer.
    Note that commit bb6365f has not been reverted because the MythVideoFrame deinterlacer
    gives a better picture quality than the original AVFrame deinterlacer.
    Thanks to @bshanteau for reporting the problem.
    Thanks to @rcrdnalor for analyzing the problem.
    
    Refs #633
    
    (cherry picked from commit d8976e59ea42793a44c8980f452954d21f2ca08d)

commit 18f5b48ee111a98c9f7e6734e80fb95cb06835a9
Author: Scott Theisen <scott.the.elm@gmail.com>
Date:   Thu Nov 3 21:00:26 2022 +0100

    HEVCParser: fix parsing of st_ref_pic_set( stRpsIdx )
    
    This caused the bitstream to become misaligned for the
    satelite channel FashionTV UHD, which then caused the
    framerate to become an incorrect value.
    
    Fixes #650
    
    Signed-off-by: Klaas de Waal <klaas@kldo.nl>

commit ba52c132238b16a4bbca3d243c8ee9dd483bc3da
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Wed Oct 19 22:07:21 2022 +0200

    Live TV select channel from another video source
    
    In Live TV mode it is possible to select any other channel by entering the channel number.
    In fixes/32 and in master this is broken; it is now only possible to select a channel in
    the same video source as the current channel.
    Fixed by removing a static_cast in two lines in function get_chanid that was introduced
    in  commit 976989051502f54abb7173f9e9127f25f8fd6c13 on September 29, 2020.
    
    (cherry picked from commit 61b82f2b5a4124c4369fa9ae1b408b6d36251e05)

commit b6ef30288fd81d93d2c3ad34ac9adb61c257aebb
Author: ulmus-scott <scott.the.elm@gmail.com>
Date:   Sun Jan 9 04:02:29 2022 -0500

    libmythfreemheg/Programs.cpp: finish conversion to QDateTime
    
    <ctime> and "mythchrono.h" are no longer needed
    
    The QDateTime conversion in FormatDate was incorrect. fromMSecsSinceEpoch instead of fromSecsSinceEpoch
    
    However, no one must use FormatDate since that error is from 0d195a9c6598f8b7d3a3e46a129ce03a1ffbaf09 on 2020-07-02.
    
    (cherry picked from commit b987f5bbaff2d820bd1967348a5abb98bcb82dd2)

commit b135b27364812ef1bbc65baa3712abd55cc04882
Author: ulmus-scott <scott.the.elm@gmail.com>
Date:   Sat Jan 8 20:47:12 2022 -0500

    libmythfreemheg/Programs.cpp: remove more unnecessary headers
    
    no symbols are used from either (myth)config.h or compat.h
    
    (cherry picked from commit 2b2f27471b6d2e19b680015e1d99e605faf896db)

commit dfb1bc1fd309702b71dcbc5e8029c36b63d09294
Author: ulmus-scott <scott.the.elm@gmail.com>
Date:   Sat Jan 8 20:27:39 2022 -0500

    libmythfreemheg/Programs.cpp: remove unnecessary includes
    
    <sys/timeb.h> is unused
    <sys/time.h> is unconditionally included by mythchrono.h but not used directly
    
    <ctime> is used unconditionally
    
    (cherry picked from commit adda7f2401107421c9832b954ab4ff49277cbba9)

commit 668f9409cef9f8de41331629264c6b7c8626ddb3
Author: ulmus-scott <scott.the.elm@gmail.com>
Date:   Sat Jan 8 19:45:16 2022 -0500

    libmythfreemheg/BaseClasses.h: remove unnecessary include "config.h"
    
    Programs.cpp needed reordering of includes for HAVE_GETTIMEOFDAY (-Wundef)
    
    (cherry picked from commit d5d9cf320c73ca10830d3209503a73795e6adb48)

commit 659a080e9a545114295cef8dc8ea34e4d9f1d8ee
Author: ulmus-scott <scott.the.elm@gmail.com>
Date:   Sat Jan 8 19:15:25 2022 -0500

    configure: remove unused malloc.h and memalign checks
    
    (cherry picked from commit 47c6ed9d34dfaebb91e7f43cdb426586873dcf2b)

commit 6c0b5cc5c37507b9fb454a137092be5b61b4f137
Author: ulmus-scott <scott.the.elm@gmail.com>
Date:   Sat Jan 8 19:06:02 2022 -0500

    libmythfreemheg: replace nonstandard <malloc.h> with <cstdlib>
    
    (cherry picked from commit 30f8922d548cbedeac8f72692f0f0b22003af48f)

commit e5c974e40248d335be477a02fa5742582690e2d9
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Sat Aug 13 18:37:55 2022 +0200

    Revert "Potential memory corruption problems in audiooutputbase"
    
    This reverts commit 81aeb49c456ff4ecab82c2297b22c38bd70d706d.
    
    Rationale:
    This commit creates problems with recognition of 5.1 audio devices, see the thread
    in mythtv-users "Digital audio Capability grayed out" from James Abernathy.
    
    The problem is that the field "Digital Audio Capabilities" is always disabled
    (shown as grey and not accessible) independent of the selected audio device.
    Correct behavior is that when a digital output such as HDMI is selected that
    it is then possible to select the capabilities of that digital output.
    This is not possible when the field is disabled.
    
    I see the following two changes in this commit:
    Around line 198 the "bugfix: don't allocate".
    The original code creates a copy of the complete struct pointed to by m_outputSettingsDigitalRaw; then
    the Users are added and that is then saved in m_outputSettingsDigital.
    This means the m_outputSettingsDigitalRaw and m_outputSettingsDigital are always different addresses.
    
    The "bugfix: don't allocate" code changes this by copying the pointer value from m_outputSettingsDigitalRaw, then
    the Users are added and then it is saved in m_outputSettingsDigital.
    
    This does change two things:
    - The m_outputSettingsDigitalRaw and m_outputSettingsDigital now point to the same struct, so the pointer values are the same.
    - The m_outputSettingsDigitalRaw has been modified by adding the users, so it is not the Raw data anymore.
    Note that if the idea is that m_outputSettingsDigital and m_outputSettingsDigitalRaw point to the same data then one pointer would be enough.
    My conclusion is that this must be the change that causes the device recognition problems.
    
    The "bugfix: don't allocate" code then causes problems in the destructor where now m_outputSettingsDigitalRaw
    and m_outputSettingsDigital point to the same object and have the same value.
    To protect against twice deleting the same memory the code starting at line 93
    "// These all seem to be the same pointer, avoid freeing multiple times"
    has been added.
    
    To summarize my analysis:
    - The "bugfix: don't allocate" code does create the problem in device recognition by copying a pointer instead of copying a struct.
    - The fix in the destructor is only needed as a consequence of this.
    
    Reverting the commit and then checking the behavior of the code with valgrind does not show memory corruption problems.
    
    (cherry picked from commit c370f513cce8f4bb01d7bada7a10e2dcfeae3e24)

commit cf553e438c0c2cf09a47aa9d40810f61e4ba1db5
Author: Bill Meek <bmeek@mythtv.org>
Date:   Wed Jul 27 08:15:14 2022 -0500

    Housekeeper: allows initial INSERTs to the housekeeping table
    
    Fresh DBs have no entries in housekeeping. INSERTs weren't
    being made because the test that decided to do it always
    failed and caused an UPDATE. That did nothing because a
    matching tag wasn't found.
    
    Now, always do an UPDATE and if the no rows were affected,
    then do an INSERT.

commit c11ed8650141bff134e8537eb984ce57e46fad79
Author: David Hampton <mythtv@love2code.net>
Date:   Fri Jul 29 16:55:38 2022 -0400

    Fix MythCenter-wide format to not duplicate year in recordings page.
    
    Remove the 'startyear' field which apparently only contains a value in
    years before the current year?  The display looks fine without it for
    both current and prior year recordings.
    
    Fixes #582.
    
    (cherry picked from commit 967910821b95d9b45678af3ca8be1128f3c189a0)

commit c9e66de14b1770ad09bdf1df39e65bf6a6c0f54a
Author: Scott Theisen <scott.the.elm@gmail.com>
Date:   Wed Jul 27 14:07:10 2022 -0400

    GitHub Actions: update macOS versions
    
    The macOS-10.15 environment is deprecated and will be removed on August 30th, 2022.

commit 6e1706ee66c94dff097c2e3b91ff1d312d8992f5
Author: Scott Theisen <scott.the.elm@gmail.com>
Date:   Wed Jul 27 14:06:10 2022 -0400

    GitHub Actions: add Ubuntu 22.04 builder

commit f458821fa0f7fd70bbba22469234d882b0ee7fe9
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Sun Jul 24 17:43:25 2022 +0200

    EIT fixup for Eutelsat 7.0E satellite
    
    Needed for the guide data in the Turkish language.
    
    (cherry picked from commit 109b9348c4ee077e0bece8bd3db01eaa51628ab1)

commit 8550188f02d0c10402444f5e2e55d21352f3f38d
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Sat Jul 23 13:48:00 2022 +0200

    Add tuning data for Eutelsat 7 satellite
    
    This is the tuning data for one transponder on Eutelsat 7 from which
    all other transponders can be found with a "Full Scan (Tuned)".
    
    (cherry picked from commit 88c7d97dc94cf761cf20481da4770e1db5ee16e2)

commit d761e9f0565a7702daa7be15b84ab899e7af7156
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Tue Jul 26 12:42:20 2022 +0200

    Size of recording start time field in MythCenter-wide
    
    Increase the width of the field showing the recording
    start time in theme MythCenter-wide from 94 to 104.
    This makes the field wide enough to show time values
    in the AM/PM time presentation mode.
    
    Refs #578
    
    (cherry picked from commit 50c58fb05b20ba99460a2346c3ae5a479bb9ae0f)

commit e72127d5d90151d338decbe1cc044c38cca5e203
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Fri Jul 22 22:11:07 2022 +0200

    SatIP SETUP status handling
    
    After SETUP, update status only after SETUP successful.
    This should enable a retry when the SETUP is not succesful.
    
    (cherry picked from commit 5d0147cb58e3a167dea3e55d753a24ad056360dc)

commit 365406638a4a9239e114e5ad3353d9411545a3d5
Author: Bill Meek <billmeek@mythtv.org>
Date:   Sat Jul 16 14:41:20 2022 -0500

    programinfo.cpp: adds comment about quotes in %MATCH% variables
    
    (cherry picked from commit a31c085783948070a3840c5190370599043fd629)

commit b615b139d85a4024307cdaf7ff2ff7b01e5cd513
Author: Bill Meek <billmeek@mythtv.org>
Date:   Sun Jun 12 18:42:16 2022 -0500

    UserJobs/Events: quotes in %MATCH% type variables can cause lost text
    
    All %MATCH% type variable contents used by a job/event are expanded
    into a QStringList.
    
    Quotes in %TITLE%, %SUBTITLE% and/or %DESCRIPTION% can cause their
    text to be truncated. And, if the user's script has following %MATCH%
    variables, lost text can end up in them.
    
    This commit replaces the " QUOTATION MARK (U+0022) with
                             ʺ MODIFIER LETTER DOUBLE PRIME (U+02BA)
    
    Just to compare the two: "ʺ"ʺ"ʺ"ʺ"ʺ.
    
    Forum URL: https://forum.mythtv.org/viewtopic.php?f=36&t=4883
    
    (cherry picked from commit dd68df4676224979a625c379c60985e272af3b1a)

commit b0db4141b336648b2b89ec0c488e920f0d0b1f48
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Sun Jul 10 21:22:58 2022 +0200

    Option to exit playback and clear last played position
    
    Add the "Clear last played position and exit" choice to the "Action on playback exit"
    configuration in mythfrontend/Setup/Video/Playback/General Playback.
    Add the "Exit Without Saving" option to the playback exit menu. This menu is shown when in the
    "Action on playback exit" configuration in mythfrontend/Setup/Video/Playback/General Playback
    an option for a prompt on playback exit is selected.
    In fixes/31 the bookmark representing the last_played_position is only updated
    on playback exit when so configured.
    In fixes/32 the last_played_position is continuously updated so there is no easy way to do
    a real "Exit Without Saving" because the last_played_position has been saved already.
    Instead, the "Exit Without Saving" and "Clear last played position and exit" actions
    are implemented by clearing the last played position on playback exit.
    This insures that the next playback starts at the beginning of the recording or
    at the bookmark, when there is a bookmark present.
    This is the same as the behavior of fixes/31 when so configured.
    
    The difference with the previous version of this feature in commit c46e186c3b48c07e87331ece16e0858d2d9d4470
    is that the code used for choice "Clear last played position and exit" had the same numerical
    value as the choice "Save position and exit" in fixes/31. This caused a change in behavior when upgrading
    from fixes/31 to fixes/32.
    This is now avoided by using a numerical value that has not previously been used in this context.
    
    Refs #543
    
    (cherry picked from commit a03fbcac8789f21c638f58907486e5344ece2975)

commit 6b2d23d4de0fe9034c81cbc5893f8febf38594a0
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Sun Jul 10 08:18:52 2022 +0200

    Revert "Option to exit playback and clear last played position"
    
    This reverts commit ced41a5f8f5a53c685755cde67fbe16206c9aa55.
    
    Reason is reported regression in handling the last played position.

commit ced41a5f8f5a53c685755cde67fbe16206c9aa55
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Thu Jun 30 22:26:16 2022 +0200

    Option to exit playback and clear last played position
    
    Add the "Clear last played position and exit" choice to the "Action on playback exit"
    configuration in mythfrontend/Setup/Video/Playback/General Playback.
    Add the "Exit Without Saving" option to the playback exit menu. This menu is shown when in the
    "Action on playback exit" configuration in mythfrontend/Setup/Video/Playback/General Playback
    an option for a prompt on playback exit is selected.
    In fixes/31 the bookmark representing the last_played_position is only updated
    on playback exit when so configured.
    In fixes/32 the last_played_position is continuously updated so there is no easy way to do
    a real "Exit Without Saving" because the last_played_position has been saved already.
    Instead, the "Exit Without Saving" and "Clear last played position and exit" actions
    are implemented by clearing the last played position on playback exit.
    This insures that the next playback starts at the beginning of the recording or
    at the bookmark, when there is a bookmark present.
    This is the same as the behavior of fixes/31 when so configured.
    
    Refs #543
    
    (cherry picked from commit c46e186c3b48c07e87331ece16e0858d2d9d4470)

commit 2514e9eb4d53d4c0690ebc80f9c4b88405835129
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Sun Jun 26 20:41:00 2022 +0200

    Remove quotes in filelyrics.py argument values
    
    The string quotes around each argument value in the command to start filelyrics.py causes a failure in reading the .lrc file.
    This is a regression; behavior of fixes/31 is correct but fixes/32 and master is broken.
    These quotes have been added as part of commit b50234ef0229f1c08d32149fcb7937b15b75a603.
    
    Refs #590
    
    (cherry picked from commit 2ecdd5d6d6055d1beea55c227d2b92883a775600)

commit 66ba83839a20e7c9adf0347ab6963dcdf1a58e6e
Author: Scott Theisen <scott.the.elm@gmail.com>
Date:   Fri Jun 24 17:07:00 2022 -0400

    MythEDID: fix out of bounds memory access
    
    found by valgrind while investigating segmentation faults that
    occured randomly on startup of mythfrontend.
    
    There are only 4 descriptors in the EDID data structure.
    By incorrectly looping 5 times in MythEDID::ParseBaseBlock(),
    an offset of 126 is passed to ParseDisplayDescriptor() or
    ParseDetailedTimingDescriptor() which will then read past
    the end of the 128 byte EDID data structure.
    
    This appears to have always been wrong since it was added in
    53d170221983764ae108939cbdb0bcbfc48b6114 .
    
    (cherry picked from commit 8e36123478cb98f0134bdc4447beb51d8e708385)

commit 4cf469cbbf02eb9343de4b776d3fee6d19b6af5d
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Fri Jun 24 21:33:46 2022 +0200

    Remove superfluous VERBOSE_LEVEL_CHECK macro in adaptation field size check
    
    This check is not needed because LOG is a macro that starts with the VERBOSE_LEVEL_CHECK
    macro and there are no computations before LOG is called.
    
    (cherry picked from commit 8db1aef46431d160f97cfb6379bff901184e4e58)

commit 811dad0e91b223bcd3e6f17950e81d296d93fc65
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Thu Jun 23 22:13:09 2022 +0200

    Discard transport stream packets with invalid adaptation field length
    
    See ISO/IEC 13818-1 : 2000 (E). 2.4.3.5 Semantic definition of fields in adaptation field
    Invalid adaptation field length can cause array bound violations when processing the
    adaptation field content and when array boundary checking for std::array is enabled.
    
    Refs #589
    
    (cherry picked from commit 904b98f74dc3f10745706e68c2b3bf87d9c47d64)

commit b09ce5de48c1eabc433615011016cee4e50cfce8
Author: Timothy D Witham <twitham@sbcglobal.net>
Date:   Sat Jun 25 01:17:14 2022 -0500

    Fix #579 LCD time by replacing colon with space.
    
    (cherry picked from commit 5c2f8090e3a1051f2459d28060eaf531177d57f8)

commit 501f85b389d8b626cbe4325fff1c18d84fbe25c9
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Fri Jun 24 22:46:46 2022 +0200

    Revert "Trim whitespace from beginning and end of lyrics lines."
    
    This reverts commit dee0dabda1c5b2c95b17f2365f8c68e8b66e3734.
    
    Refs #591

commit 7bb5162be039ba2905efea0acf85b076c9be6769
Author: Stuart Auchterlonie <stuarta@mythtv.org>
Date:   Wed Jun 22 08:27:28 2022 +0100

    extra include required on freebsd 13.1
    
    (cherry picked from commit e60b4b35a19214e541ee3647e0d07007997367c1)

commit 3bd5ef574c77b92095c5e2089d21473666f95830
Author: David Hampton <mythtv@love2code.net>
Date:   Mon Jun 20 00:46:37 2022 -0400

    mpeg2fix needs additional setup for FFmpeg 4.3 release.
    
    Refs: #581 #588
    (cherry picked from commit 8f99b9a78611d34b08c3411cb48e910c5cc37b13)

commit a26786f5b4f6890557274ab8435258447db7915c
Author: David Hampton <mythtv@love2code.net>
Date:   Thu Jun 16 19:42:15 2022 -0400

    Fix the std::vector ring_peek/poke functions to use pass by reference.
    
    Refs #581
    
    (cherry picked from commit 80f6c9f60b8306fa7d13fccab38ec4ad1e4ec576)

commit 66573a3f9b95bd6b218e363da2eac76738f990c4
Author: David Hampton <mythtv@love2code.net>
Date:   Wed Jun 15 15:54:05 2022 -0400

    Fix two logging relay functions to use QString::vasprintf.
    
    The code now calls QString::vasprintf, and not QString::asprintf like
    it did in the prior version.
    
    Refs #581

commit 7077a824d2e746f305bcb215ea687220abaa17db
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Sat Jun 4 21:05:22 2022 +0200

    Fix AdaptationFieldSize function
    
    Use the data() function to get a pointer to access the fifth element of
    a transport stream packet instead of directly accessing the fifth element of a
    std::array that maps only the first four bytes of the transport stream packet.
    
    (cherry picked from commit 0c16cbdbffecf20f95a812eff3fe1dc80495c789)

commit 8347647e4208e0963270eddd1724182c61f3d15d
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Tue May 31 23:58:59 2022 +0200

    Change default Unicable frequency to 1210MHz
    
    The previous default value was 1400MHz which is not a valid Unicable userband frequency.
    The new default value of 1210MHz is the frequency of the first userband.
    
    (cherry picked from commit 1a15ff133f22e5fe5cd331dcf1e25023a0758522)

commit ef9d17307fa1237e35234dd96be55c95c42cde88
Author: Korbinian Rosenegger <kroseneg@schmidham.net>
Date:   Fri Mar 11 09:57:52 2022 +0100

    Show transcoding profiles menu when job is _not_ running
    
    The transcoding profiles menu needs to be shown when the transcoding job
    is not running.
    With commit bf15fbee54 the logic was inverted accidently.
    
    (cherry picked from commit 1d1ca314697bed07f7f22cf0a6c5445ccd77bdc9)

commit 98c82d515d53ef57431d6bbfcd4264543a42426b
Author: David Hampton <mythtv@love2code.net>
Date:   Thu May 26 12:30:10 2022 -0400

    Fix problem with GetStatus API call while playing video.
    
    This bug was introduced while fixing a problem where all the network
    control "play" commands were duplicated by MythTV.  Most of the "play"
    commands are idempotent, so the only place the duplication was visible
    was the "play speed pause" command.
    
    Fixing that problem using a different method restores the
    functionality of the GetStatus API call.
    
    Fixes #545.
    
    (cherry picked from commit 07511117eef755794defc185c6c681f765535848)

commit b6286af7d82f81082f8d07dfcee3f7f8c9ab2542
Author: Roland Ernst <rcrernst@gmail.com>
Date:   Thu May 12 21:06:41 2022 +0200

    Python Bindings: Add compatibility to MariaDB 10.6
    
    MariaDB 10.6 introduced a new keyword 'offset' which collides with
    the field 'offset' from the recordedseek table.
    
    Solution:
    Backtick all queries related to to this table (in class DBDataRef
    and its descendants) to fix this collision.
    Note: The Python Bindings use the field names of a SQL table as
    properties, therefore simple back-ticking 'offset' won't work.
    
    The related MySQL error is:
    
    MythTV.exceptions.MythDBError: MySQL error 1064:
    You have an error in your SQL syntax;
    check the manual that corresponds to your MariaDB server version
    for the right syntax to use near 'offset,type FROM recordedseek WHERE ...
    
    Tested with python3.6 and python3.10 .
    
    (cherry picked from commit 094648aa7a78095a37db496fa11956a100ae5b0c)

commit 53c77f01324e5d35dfb08827e16cb0a83b702213
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Thu May 12 23:21:08 2022 +0200

    EIT start delay
    
    Compute the second component of the EIT start delay with the highest
    input number instead of with the number of inputs.
    The input number can be higher than the number of inputs because inputs (capture cards)
    can be deleted and because new inputs always get a higher number.
    This then can lead to a EIT start delay that is larger than intended.
    
    (cherry picked from commit ef1323cade687a3d769ba6d0c1b18c389eb9135e)

commit 26079f815a1723021dbe6a13eca0e66018f71e7b
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Fri May 6 20:47:05 2022 +0200

    Free AVPacket with av_packet_free
    
    Free AVPacket allocated with av_packet_alloc with av_packet_free
    instead of with av_packet_unref followed by a delete statement.
    
    Valgrind reports the "Mismatched ..."  message here:
    ==1671692== Mismatched free() / delete / delete []
    ==1671692==    at 0x48478DD: operator delete(void*, unsigned long) (vg_replace_malloc.c:935)
    ==1671692==    by 0x4E34300: AvFormatDecoder::~AvFormatDecoder() (avformatdecoder.cpp:376)
    and here:
    ==1684358== Mismatched free() / delete / delete []
    ==1684358==    at 0x48478DD: operator delete(void*, unsigned long) (vg_replace_malloc.c:935)
    ==1684358==    by 0x4E19A03: AvFormatDecoder::SeekReset(long long, unsigned int, bool, bool) (avformatdecoder.cpp:763)
    This is caused by using a delete statement to free a packet
    previously allocated by av_packet_alloc.
    According to the comment in packet.h where av_packet_alloc is declared:
    /**
     * Allocate an AVPacket and set its fields to default values.  The resulting
     * struct must be freed using av_packet_free().
     *
    This is now implemented.
    
    (cherry picked from commit 969235ed8abea04a3a39607bf6b699c743394bc5)

commit c4fc53c651edbcf695694ee12807b9bc1b4f79ca
Author: Peter Bennett <pbennett@mythtv.org>
Date:   Sat May 7 17:43:11 2022 -0400

    Services V2: Fix content length when length > 2 GB
    
    Third parameter of std::accumulate determines the return type, so it has
    to be explicitly cast to a uint64 to support 64 bit return.
    
    Fixes #555
    
    (cherry picked from commit d364c8b29db8e7c669bb3be90a6b8c4bc3021e4b)

commit d80a8da3f0163e6020ce2b6c76b5b31571fae2df
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Fri Apr 29 23:35:08 2022 +0200

    Jump forward to next live TV segment
    
    If playback is at the end of an earlier program in the live TV chain,
    skipping forward jumps to the end of the next program
    instead of to the beginning of the next program.
    Fixed by restoring two casts that were accidentally removed in
    commit 7949b0d20b5dc1b63c88ef511ccbef18c71ec8bf.
    
    (cherry picked from commit cc5c777fd0872449f915517757a4ebc652181d06)

commit ea669e1f825896355ebc3f428553d887b4d5b4c1
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Wed Apr 27 23:42:50 2022 +0200

    Jump back in live TV
    
    When jumping back in live TV and the jump time interval is larger than the
    current play position then a jump is done to the end of the recording instead
    of to the start of the recording.
    Fixed by restoring a cast that was accidentally removed in
    commit 7949b0d20b5dc1b63c88ef511ccbef18c71ec8bf.
    
    (cherry picked from commit cbcffc474df6f79779ac5af5f0a9a91e34cfad39)

commit 839d0f9ab6c7ced958bb5372376ab862461ae6d8
Author: David Engel <dengel@mythtv.org>
Date:   Tue Apr 26 17:12:08 2022 -0500

    Add cast needed by some compilers to last previous commit.
    
    (cherry picked from commit e2877111bec395c6baa0468fc41adbb3526e2d69)

commit 130f7054da73f8a23d04aacf683d743a449a4ec5
Author: David Engel <dengel@mythtv.org>
Date:   Tue Apr 26 16:03:25 2022 -0500

    Fix wakeup calculations in HLS.
    
    The std::chrono changes in commit 41225f80 inadvertently contained
    bugs that caused the wakeup times to be too low, often 0 (aka no
    deley).  This resulted in the recorder requesting the palylist way too
    often and putting excessive load on mythbackend and the HLS server.
    
    (cherry picked from commit 0fdd0186ed858cf9c1cac5999ee6ef42a6a067f9)

commit daa4e7e4474c019714d21674ee7e18f3bc89624d
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Fri Apr 22 21:04:59 2022 +0200

    Animation update interval lower bound
    
    Add a lower bound of 10ms for the animation update interval.
    The animation is used in the MythBuntu theme and there it can cause a stall of
    the GUI when the "Manage Recordings" / "Previously Recorded" screen is selected.
    This seems to happen only when there is a small number of recordings.
    The animation update draw interval was previously fixed at 16 milliseconds
    as computed by the function GetDrawInterval.
    This function has been removed in commit 34dfa31bc717628bc20a88dd396d54a3ef56b824
    and the update interval has since been dynamically computed with an upper
    bound of 50ms but without a lower bound.
    There is now a lower bound of 10ms added so that the computed interval time
    is clamped between 10ms and 50ms.
    
    (cherry picked from commit 43702fa5aa75acd8d2fbe54c00064bbab1cb3154)

commit ec4558f3e1bbc021d771276a288039924f181a8b
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Wed Apr 20 21:39:32 2022 +0200

    Update preview picture after record playback exit
    
    When exiting a record playback, the preview thumbnail picture that is shown
    at the right/bottom corner of the MythCenter-wide theme, is updated to show
    a still image of the recording at the last played position.
    Since commit 241d26d42ed625b069d9f8412030679429b14ca5, the 'Add percentage
    finished to "View Recordings" and "Upcoming Recordings"', issue #331, the
    preview picture is sometimes updated and sometimes not.
    This is now fixed by using a new field m_previewUpdate to store a copy of
    m_bookmarkUpdate when preview picture generation has been requested.
    This field is then used to compare against m_bookmarkUpdate
    to flag if the preview picture has to be updated.
    
    Fixes #547
    
    (cherry picked from commit 1064ffc03a920bf97132e558816c7299e130ced7)

commit bfae001d5cbb6e6012c3971e605d961e639e1eb7
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Sun Apr 3 18:39:20 2022 +0200

    Determine tuner type in ChannelScanSM constructor
    
    Initialize the m_scanDTVTunerType with the tuner type as found
    in the card already in the ChannelScanSM constructor.
    The need for this was indicated by a chanscan:debug log showing
    tuner type UNKNOWN when doing a "Scan of existing transports".
    
    (cherry picked from commit ba7caf2bbaf7d6d82f2879bd6a2133d34838c371)

commit bbd8355d8dbb5ef78080312c2d632232ea03b504
Author: Stuart Auchterlonie <stuarta@mythtv.org>
Date:   Mon Apr 11 22:20:23 2022 +0100

    [webapp] fix encoder status when recording
    
    (cherry picked from commit 3da1ca7bc3c72a41cf7a910680cfb8e5ead4b49e)

commit 9070e9e65b42b19b3a54c21117a07f627418999f
Author: David Hampton <mythtv@love2code.net>
Date:   Fri Apr 8 13:10:03 2022 -0400

    Fix zmserver compilation on rawhide.
    
    (cherry picked from commit 9d2c68fdf4512be7aac95310d0bc69d54be63ac3)

commit cd109ec6c08f578e1b0965e4726e6046d75af8e8
Author: acediac <git.zon@dfgh.net>
Date:   Sat Apr 9 22:57:38 2022 +1000

    Potential memory corruption problems in audiooutputbase
    
    (cherry picked from commit 81aeb49c456ff4ecab82c2297b22c38bd70d706d)

commit 1eacadd5f413197746cb61ea036c522c65f95936
Author: acediac <git.zon@dfgh.net>
Date:   Sat Apr 9 22:49:25 2022 +1000

    mythfrontend audio fixes for macOS
    
    - Fixed audio device detection
    - Fixed Surround Sound channel capability detection (5.1+ speakers)
    - Fixed memory corruption and leaks
    
    (cherry picked from commit 10df426eae3809cd896fae340f1c5dafbb628e34)

commit 560b425776dfced77ceb9a83b13f32cf00ff2d94
Author: Peter Bennett <pbennett@mythtv.org>
Date:   Thu Apr 7 19:51:20 2022 -0400

    Service API V2: Last Play Position APIs
    
    This adds 4 APIs:
    V2Dvr::GetLastPlayPos
    V2Dvr::SetLastPlayPos
    V2Video::GetLastPlayPos
    V2Video::SetLastPlayPos
    
    (cherry picked from commit 68bb24a31aca5d94b389a2909e329997f2793901)

commit 611cac15cc3988e2fbd2305a5662798f2ce8aef0
Merge: 5b54d3bf89 dcf7e13cce
Author: Stuart Auchterlonie <stuarta@mythtv.org>
Date:   Sun Apr 3 21:58:10 2022 +0100

    Merge pull request #536 from jhoyt4/fixes/32
    
    Fixes/32: Add missing include <array> to mythdate

commit 5b54d3bf89a6278c01169287ace4a0fd02cc2233
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Tue Mar 29 22:26:45 2022 +0200

    Add symbolrate to transport list in mythtv-setup log
    
    The symbolrate is added to the transport list
    that is logged by mythtv-setup.
    The symbolrate is needed for tuning DVB-C/S/S2 transports
    so there is now enough information in the log
    to tune a specific transport.
    
    (cherry picked from commit 3e52fe15cf711623addd8cc4944e40744c6610de)

commit dcf7e13cce89f363d20a9cdd3922a7741cc214a9
Author: John Hoyt <john.hoyt@gmail.com>
Date:   Sun Apr 3 07:35:20 2022 -0400

    Add missing include <array> to mythdate

commit f69ce764b78a15989455957eda235d5b1993a08a
Author: David Hampton <mythtv@love2code.net>
Date:   Thu Mar 24 17:44:32 2022 -0400

    Validate AV stream index before accessing stream.
    
    Fixes #528.
    
    (cherry picked from commit d47928088bc0cd3ab5b16fa183a865b0911da584)

commit 5432d11672605878a7ab1964996edc7b0103087d
Author: Scott Theisen <scott.the.elm@gmail.com>
Date:   Wed Mar 16 14:09:35 2022 -0400

    MythDate::formatTime(): update doxygen comment
    
    (cherry picked from commit 259a7fbe911da2ca229a513786172fcefeb8af07)

commit 9dcf2bb01eba126d304c323503c78ce36bbf595b
Author: Scott Theisen <scott.the.elm@gmail.com>
Date:   Wed Mar 16 12:42:28 2022 -0400

    mythcommflag/CommDetector2.cpp: fix missed MythDate::fortmatTime() uses
    
    hh should be HH; missed chop not replaced.
    
    (cherry picked from commit 19b0a7b2184a730f6e55c0cd2f41e26fb71ae2cf)

commit d5fe42fc6b994c716c70901173d876c53200b50c
Author: David Hampton <mythtv@love2code.net>
Date:   Tue Mar 15 17:41:48 2022 -0400

    Better fix for MythDate::formatTime to handle overflows.
    
    Fixes #520.
    
    (cherry picked from commit 65b9c73adacabe38877c3e18af5d4a0545799c16)

commit 36c5630035864fa5d8efdaec8b0ef6c98067bc67
Author: David Hampton <mythtv@love2code.net>
Date:   Mon Mar 14 11:57:26 2022 -0400

    Fix MythDate::formatTime to handle times greater than 24 hours.
    
    (cherry picked from commit 2d7a09e40f55c13e203994aa4031f7de111fc97f)

commit ae60e8302fab769dd0aacb091d195b1cef08ad9c
Author: Scott Theisen <scott.the.elm@gmail.com>
Date:   Thu Mar 10 20:30:13 2022 -0600

    Use separate end-of-playback checks for audio-only/mostly content and
    normal/video-only content.
    
    Refs #511
    
    Signed-off-by: David Engel <dengel@mythtv.org>
    (cherry picked from commit 367539575cc43b0a7ef5ce3f40d8e50fcb144ec8)

commit 043507cd6f638af4033ae7faca00dec4edc8deb2
Author: Scott Theisen <scott.the.elm@gmail.com>
Date:   Wed Mar 9 20:53:30 2022 -0600

    Fig logic bug in std::chrono conversion commit c71a8672.
    
    Signed-off-by: David Engel <dengel@mythtv.org>
    (cherry picked from commit acf5188a1f799c774ed21735305391c6532e072b)

commit e78a0c0042ea20240adef7566676ddeec4c2fb88
Author: David Engel <dengel@mythtv.org>
Date:   Fri Mar 4 10:44:01 2022 -0600

    Fix playback hangs at end of file.
    
    Refs #511
    
    (cherry picked from commit 4e35b3f712bd5dc79a99c9566e96103b88e9648d)

commit 44a45272517a8122369d74f149dc86432afe3ac0
Author: Klaas de Waal <klaas@kldo.nl>
Date:   Mon Feb 28 21:23:06 2022 +0100

    Remove extraneous ? character in Sat>IP OPTIONS message
    
    The extraneous ? character occurs when the QUrl query is initialized to an empty string "".
    Fixed by replacing the "" by a QString() in the OPTIONS and the PLAY query composition.
    Thanks to Mike Bibbings for reporting and fixing this for the TEARDOWN command,
    see https://code.mythtv.org/trac/ticket/13121#comment:20
    
    Refs #13121
    
    (cherry picked from commit 26cc38423e2e4ede89dfabd9971196b83e17aadd)

commit 75b942fd8cdf6979463c72c75e2919e18552c644
Author: Peter Bennett <pbennett@mythtv.org>
Date:   Sat Feb 26 11:13:47 2022 -0500

    Fix CPU detection for armhf
    
    This applies the same fix in MythTV as was applied in 75cf504 to FFmpeg.
    The same code is in MythTV and needs the same fix.
    
    Fixes #505
    
    (cherry picked from commit 13e75f1e900ae923bdfa61cda56f33f7a5521c17)

commit 75cf5040eff2aa6b7dc075462311de7c277b9375
Author: Martin Storsjö <martin@martin.st>
Date:   Thu Feb 24 20:00:00 2022 -0500

    configure: arm: Don't add -march= to the compiler if no preference was passed
    
    If no --cpu= option was passed to configure, we detect what the
    compiler defaults to. This detected value was then fed back to the
    rest of the configure logic, as if it was an explicit choice.
    
    This breaks on Ubuntu 21.10 with GCC 11.1.
    
    Since GCC 8, it's possible to add configure extra features via the
    -march option, like e.g. -march=armv7-a+neon. If the -mfpu= option
    is configured to default to 'auto', the fpu setting gets taken
    from the -march option.
    
    GCC 11.1 in Ubuntu seems to be configured to use -mfpu=auto. This
    has the effect of breaking any compilation command that specifies
    -march=armv7-a, because the driver implicitly also adds -mfloat-abi=hard,
    and that combination results in this error:
    
        cc1: error: ‘-mfloat-abi=hard’: selected processor lacks an FPU
    
    One can compile successfully by passing e.g. -march=armv7-a+fp.
    
    Therefore, restructure configure. If no specific preference was set
    (and the 'cpu' configure variable was set as the output of
    probe_arm_arch), the value we tried to set via -march= was the same
    value that we just tried to detect as the compiler default.
    
    So instead, just try to detect what the compiler defaults to, with
    to allow setting other configure settings (such as 'fast_unaligned'),
    but don't try to spell out the compiler's default via the -march flag.
    
    Signed-off-by: Peter Bennett <pbennett@mythtv.org>
    (cherry picked from commit 6a79086179f0ffc6572285bfae4875a4db9a8610)

commit 56275b303bf7c7fec99993d1fff568708d0b985b
Author: Anton Khirnov <anton@khirnov.net>
Date:   Thu Feb 24 11:11:28 2022 -0500

    configure: link to libatomic when it's present
    
    C11 atomics in some configurations (e.g. 64bit operations on ppc64 with
    GCC) require linking to libatomic.
    
    Fixes #499
    
    Signed-off-by: Peter Bennett <pbennett@mythtv.org>
    (cherry picked from commit 85d37a59152f4606fa729b694b50d955f7f28de4)

commit 28d360e98916ae065292fa29675c48faff742923
Author: Paul Harrison <paul@mythqml.net>
Date:   Thu Feb 24 11:40:20 2022 +0000

    Revert "NuppelVideoRecorder.cpp: convert to QtEndian"
    
    This commit is causing problems with the Ubuntu s390x builds and
    possibly other big endian builds.
    
    This reverts commit 9ad661568042ec1d36645105bbd9a50ece23659d.
    
    (cherry picked from commit dd3dcfbb7b308c53be1b48bafc3410d0e0bf4e08)

commit 23725516afe15266967f00626efc4d2c23c60084
Author: David Hampton <mythtv@love2code.net>
Date:   Wed Feb 23 12:01:37 2022 -0500

    Setting SRC_VERSION to v32.0
