Skip to content

Fixes/36 - macOS - fix/merge recent commits from master - #1533

Merged
billmeek merged 5 commits into
MythTV:fixes/36from
jhoyt4:fixes/36
Nov 3, 2026
Merged

billmeek merged 5 commits into
MythTV:fixes/36from
jhoyt4:fixes/36

Conversation

@jhoyt4

@jhoyt4 jhoyt4 commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Corrects 7da7495 for fixes/36

Cherry-picks commits 6ea7e17, 54746db, 2e1c60f, and 7203b36 for fixes/36

Thank you for contributing to MythTV!

Please review the checklist below to ensure that your contribution
to MythTV is ready for review by our developers.

It is helpful to regularly rebase your pull request to ensure changes
apply cleanly to the current MythTV development branch.

Checklist

…Analog()

Remove a cleanup block in CoreAudioData::OpenAnalog() that attempts to
free the mChannelDescriptions member of a local AudioChannelLayout.

new_layout is allocated on the stack and only initializes its layout
tag property, the conditional guard checking mNumberChannelDescriptions
always evaluates to zero, rendering the block unreachable.
mChannelDescriptions is also defined inline as an integrated array
member inside the CoreAudio SDK structure rather than a heap pointer,
making any manual free() invocation invalid.
Remove the temporary name string pointer at the end of each iteration
loop inside CoreAudioData::GetDeviceWithName().

Previously, the heap-allocated name string returned by device.GetName()
was only deleted when a matching identifier string was successfully
found. This caused all non-matching audio device endpoints to leak
memory blocks on every device verification pass.
A bug in the multi-channel audio system causes the Center and LFE channels
to be swapped at the hardware layer for some setups, including a TV with a
soundbar connected via ARC.

To resolve this, query the kAudioUnitProperty_AudioChannelLayout property
once during hardware initialization to determine if the connected device
allows layout changes. Caching this write-permissive state ensures that the
high-priority, real-time rendering thread remains lock-free.

If the AV device allows changes, map channels normally for 5.1 and 7.1
speaker setups. If the device reports a read-only layout (such as a TV or
legacy ARC link), automatically swap the Center and LFE channels for both
6-channel (5.1) and 8-channel (7.1) audio streams to restore correct routing.
Modern qt-mariadb and qt-mysql packages require external authentication
libraries to handle SSL connections. Because these plugins are compiled
as '.so' binaries rather than standard '.dylib' frameworks, they are
silently skipped by macdeployqt during the application bundling phase.

Fix this by querying the active Qt6 database driver target properties via
otool to identify whether MySQL or MariaDB is in use, and then manually
staging the matching authentication plugins into the app package.

Additionally, this update exports the resolved MARIADB_PLUGIN_DIR and
MYSQL_PLUGIN_DIR paths dynamically within the relocatable startup shell
script, and adds a trailing wildcard character to the recursive search
mechanisms in fixAppBundle.zsh to prevent missed nested binaries.

  - Update CMakeLists.txt to detect and copy missing database auth
    plugins into the app bundle's PlugIns/ subfolder.
  - Update fixAppBundle.zsh to find hidden nested components during
    recursive discovery passes (i.e., addition of matching wildcards).
  - Export database engine plugin directory targets inside the
    relocatable startup_script.zsh.in environment.
  Qt 6.12 split out qtwebengine into its own standalone Homebrew
  formula. This places qtwebengine outside the qt@6 pathing as it now
  resides in its own qtwebengine directory. This breaks CMake builds as
  this new directory is not on the CMAKE_PREFIX_PATH.

  Homebrew packaging also has an issue where the imported targets
  (e.g., Qt6::WebEngineQuick and WebEngineWidgets) still reference
  non-existent paths inside the main qt@6 directory. Fix this by adding
  a find_package macro override to dynamically fix the include paths.
@billmeek
billmeek merged commit 91f20c7 into MythTV:fixes/36 Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants