- Rename from .appdata.xml to the modern .metainfo.xml
- Add a primary branding color (Yami blurple)
- Add "internet" to recommends and supports
- Update developer_id tag to developer name
- Shorten summary
- Remove obsoleted "kudos" tags
- Add a URL to the release tag
When OBS is closed and there is a floating dock, a Windows system
sound is emitted. This fixes that by not executing the close dock
dialog when OBS is closing.
w32-pthreads is not correctly added to the generated CMake project
if the UI subdirectory is not also included, which leads to builds
configured without UI to fail.
Before the CI checks for source code and CMake files would always
check the entire source code even if just a single files has been
changed.
With this update, the formatting script is enhanced to accept a list
of files (which is generated as a condition to run the script in the
first place) which ensures that a PR will only fail validation over
files it changed itself.
Adding to the previous commit, let's also use obs_output_set_last_error
to provide localized error messages to the user if we run into these
failure cases.
The Elgato Stream Deck plugin older than 5.5.2.0 invokes undefined
behavior that results in application crashes. Let's block older versions
to prevent the crashes.
If the "Pause timer when recording is paused" option in the Output Timer
settings was enabled, even if an Output Timer was not being used, a
recording may stop when attempting to unpause it. This was due to the
check in the UnpauseRecordingTimer function being too loose and only
checking for if the recording timer was not active. Let's initialize the
recordingTimeLeft variable to -1 and check that it's greater than 0
before attempting to restart a recording timer.
BGRA or other formats that do not use color primaries will not yield
a valid color primary value. Initializing the CFComparisonResult to a
default value and replacing it only if a non-NULL color primary value
was retrieved avoids a possible crash.
PeerConnection::setRemoteDescription validates the input SDP, throwing
an exception whenever it is invalid.
Currently, instead of handling the exception, we just crash.
Instead, add an exception handler which logs a short description of the
issue as well as the error message from the exception.
This toggles audio multi track display in Output settings when:
1. When there is a signal that a stream service is changed to a non
custom one. Indeed multi-track audio is only available with Custom
service and only with SRT or RIST protocols.
2. When a Custom service is picked, and SRT or RIST are detected in the
server URL.
3. When Stream settings are saved when one hits Apply.
This is in addition to the toggling done when loading Stream Settings.
Signed-off-by: pkv <pkv@obsproject.com>
This removes the LoadOutputSettings() called in SaveStream1Settings.
It caused a bug when trying to save Output settings when both Stream
and Output settings have been changed but the changes have not been
applied by hitting the 'Apply' button in Settings.
Signed-off-by: pkv <pkv@obsproject.com>
Python 3.11 and later support a system-wide configuration setting that
marks the system packages as "externally managed" (e.g. to force using
apt packages instead of pip packages).
This breaks installation of the modules necessary to run the validators,
so use a virtual environment instead.
When a prior scheduled nightly run is detected with the identical
commit hash, then the entire language file check should be skipped.
This adds the missing condition to skip the check for changed files
removing the unnecessary warning contained in the workflow results.
Some devices will report different framerate ranges for formats that
are identical apart from color primaries. Without taking these into
account, only framerates for one color primary variant would be used
to populate the framerate dropdown in the property view of the camera
source.
Checking for a difference in color primaries when iterating over all
available formats for a device thus requires checking for this
variation and adding the additional frame rate range as well.
Notable changes:
* deps.ffmpeg: Force classic linker for AppleClang 15.0.0+
* CI: Update macOS jobs to use macOS 14 runners
* deps.ffmpeg: Enable runtime CPU detection for AOM to fix ARM64 crashes
* deps.ffmpeg: Update zlib to 1.3.1
* deps.ffmpeg: Update aom to 3.8.1
* deps.ffmpeg: Update mbedTLS to 3.4.1
* deps.qt: Update Qt6 to 6.6.2 for Windows
* deps.qt: Update Qt6 to 6.6.2 for macOS
* deps.qt: Restore native dialogs on macOS
The beginInsertRows/endInsertRows calls seem to signal that the rowCount
has changed, and that views should adjust accordingly. The isProcessing
boolean changes the returned value of RemuxQueueModel::rowCount, which
seems to cause the empty row in the table model to disappear
permanently. I still don't know why it used to work this way and no
longer does.
This is what Flathub uses now. It's an implementation detail that will
eventually be hidden away in a Flathub-specific publish action. But for
now, we still publish directly, and we have to adapt.
In order to support crop_to_bounds, deprecates:
obs_sceneitem_set_info
obs_sceneitem_get_info
In favor of:
obs_sceneitem_set_info2
obs_sceneitem_get_info2
Fixes several possible crash issues that might occur on Intel-based Macs
and older macOS versions:
On modern macOS versions (13+) allocated memory is zero-allocated by
default which makes NULL pointer checks work correctly after allocation.
On older macOS versions this is not the case, so the OBSAVCaptureInfo
struct needs to be zero-allocated to ensure the guards in the tick and
render functions bail out correctly.
On Intel-based Macs and/or older macOS versions passing a reference to
the OBSAVCapture instance inside the OBSAVCapture struct can lead to a
crash because of a possible circular reference that cannot be resolved
at runtime.
Passing only a reference of the OBSAVCapture to libobs and incrementing
the retain count at source creation (decrementing in when the source is
destroyed) avoids this issue entirely.
Since the widget is marked as opaque we need to draw each pixel or
else we may end up with unpainted pixels. On Wayland this will
result in artifacts in the audio meter as transparent pixels will
pick up colors from the underlaying desktop instead.