Skip to content

Ffmpeg audio name fix squash#4

Open
tuduweb wants to merge 1058 commits into
masterfrom
ffmpeg-audio-name-fix-squash
Open

Ffmpeg audio name fix squash#4
tuduweb wants to merge 1058 commits into
masterfrom
ffmpeg-audio-name-fix-squash

Conversation

@tuduweb

@tuduweb tuduweb commented Feb 19, 2023

Copy link
Copy Markdown
Owner

@tuduweb tuduweb force-pushed the ffmpeg-audio-name-fix-squash branch 2 times, most recently from 14f017c to 34984c8 Compare February 25, 2023 19:27
RytoEX and others added 27 commits October 26, 2023 17:52
Notable changes:
 * deps.qt: Backport patch for CVE-2023-43114
 * deps.qt: Backport patch for QTBUG-117779
 * deps.qt: Backport patch for QTBUG-118117
Log the source name when a WASAPI device is initialized.
8dd20df introduced an explicit check
for the available macOS SDK, meaning that we can be sure that the macOS
13.1 SDK is available. As such, we do not require ifdef guards for the
availability of functions that are older than 13.1.
Calling update_targetusage in update_params only updates the setting
when an encoder session is initialized. Calling update_targetusage in
rate_control_modified, like update_latency and update_enhancements, will
update the setting when the Settings window is loaded. This will cause
the updated setting to be reflected in the UI.
We were passing the core pipewire pointer where renegotiation expected
the stream pointer. Somehow this worked, probably because the two are
very close.

fixes obsproject#9733
The option is already there, but it wasn't available from UI.
Only show it when B-frames are supported.
Nothing about WHIP requires CBR (and many things that use it use VBR),
and there's no specific upstream service to care about it (WHIP is a
protocol, not a service, despite being exposed as a "service" in OBS),
so let's stop forcing it to be CBR and allow the user to choose other
rate control methods.
One notable difference from the AVC/HEVC code is that it also inserts
the METADATA and SEQUENCE_HEADER OBUs into new_packet, otherwise the
resulting video file wouldn't play.
Group resize is not deferred until adjustments are completed by a
mouseReleaseEvent in certain cases, resulting in unexpected movement of
sources that are part of a group as they are resized or stretched
beyond group bounds.

The bug can be described/reproduced as follow:

1. The user selects within a group in the sources dock
2. The user moves their mouse over the selected source such that the
   cursor would change.
   - This results in a cursor update and a call to GetStrechHandle()
   - as the source is part of a group, stretchGroup will be set to the
    group of the source

3. The user clicks on the canvas without touching a stretch/rotation
   handle
   - A mouseReleaseEvent is fired
   - obs_sceneitem_defer_group_resize_end is called on the group as
     stretchGroup is still defined from earlier
   - the defer_group_resize member of the group will become negative
   - The deferal check in resize_group (obs-scene.c) will always pass
     now
4. When scaling or rotating the source close to the group bounds, the
   group bounds will now dynamically update causing the source in to fly
   off the canvas.

Resolves: obsproject#9754
This pattern uses fewer instructions and also avoids using max, which
does not work on infinity.

Also remove unreferenced techniques from scale filters.
Python automatically creates bytecode caches which end up inside the
application bundle of OBS Studio on macOS. These directories will lead
to a hash mismatch when Sparkle attempts to apply a delta update (to
ensure that the patch can be applied).

As the added directories will make the hash check fail, having a valid
Python framework configured in OBS Studio (even without any script
added) will thus prevent Sparkle from using delta updates.
0 seconds means "auto" according to the documentation, but this appears
to be broken in many configurations (more than just CRF mode on Apple
Silicon). With some encoders it means that the encoder sets a keyframes
every 31st frame, other times it just doesn't set any keyframes at all
after the first one, only rarely does the "auto" interval actually
appear to work.
Lets just set the default to 2 seconds and be happy. In theory this is
the maximum keyframe interval and encoders are allowed to set more if
they so wish, but they never appear to do so.
The previous commit sets the default configuration to 2 seconds, meaning
that the 0 second default interval no longer happens per default. If
someone explicitly sets the interval to 0 seconds ("auto"), we should
allow them to do that.
If a plugin removes a property when processing 'modified'
property callback, OBS WILL CRASH.

Example of offending plugin: obs-source-record

This commit moves callback processing to after iterating over
properties, thus removing the chance to crash OBS.
Reloads all audio monitoring devices
Splits the WASAPINotify class out of win-wasapi.cpp and makes it a
shared object in the plugin, then also creates a callback to reset
audio monitoring if the default output device changes.
derrod and others added 29 commits January 16, 2024 16:45
Marks old AVFoundation capture source as deprecated.
QuickSync requires oneVPL, which is unable to find its libraries in the
Flatpak, resulting in MFX_ERR_NOT_FOUND and the encoders not working.
The libraries are present in the install prefix (/app/lib), which is
currently not automatically added to the search paths, see the issue
intel/libvpl#119 for details. For now,
work around the issue by setting ONEVPL_SEARCH_PATH explicitly.
If a user sets both AdaptiveMiniGOP=true and EnablePreAnalysis=true
in the AMF/FFmpeg options field, AMF will adaptively insert
B-pictures, and no longer uses the fixed B pattern.

For a fixed B-frames pattern, it is expected that increasing B-frames
can cause a quality drop for certain content such as with high motion.
AdaptiveMiniGOP is recommended when using B-frames to improve the
quality in such cases. AdaptiveMiniGOP is dependent on PreAnalysis
which means that trying to enable it without having PreAnalysis turned
ON will have no negative effect (AdaptiveMiniGOP won't be enabled).
Notable changes:
 * deps.qt: Fix library naming for macOS debug builds
 * deps.ffmpeg: Fix local universal architecture builds of aom for macOS
 * deps: Update Windows build script with explicit package names
 * deps.ffmpeg: Switch Windows builds to native build toolchain
To avoid a compiler error, this commit also bumps the configured NVENC
version to match the updated version in the deps package.

Notable changes:
 * deps.ffmpeg: Update zlib to 1.3
 * deps.ffmpeg: Update SVT-AV1 to 1.8.0
 * deps.ffmpeg: Update aom to 3.8.0
 * deps.ffmpeg: Update libsrt to 1.5.3
 * deps.ffmpeg: Update nv-codec-headers to 12.1.14.0
 * deps.ffmpeg: Update AMF to 1.4.32
 * deps.ffmpeg: Update FFmpeg to 6.1
 * deps.macos: Update LuaJIT to 2.1 c525bcb902
 * deps.macos: Update FreeType to 2.13.2
 * deps.macos: Update Asio to 1.29.0
 * deps.macos: Update nlohmann JSON to 3.11.3
 * deps.macos: Update Sparkle to 2.5.2
 * deps.macos: Update Syphon Framework to 5.0 39e31383ff
 * deps.windows: Update FreeType to 2.13.2
 * deps.windows: Update curl to 8.5.0
 * deps.windows: Update LuaJIT to 2.1 c525bcb902
 * deps.windows: Update Asio to 1.29.0
 * deps.windows: Update nlohmann JSON to 3.11.3
 * deps.windows: Update VPL to v2.10.1
 * deps.qt: Update Qt6 to 6.6.1 for Windows
 * deps.qt: Update Qt6 to 6.6.1 for macOS
This new runtime version relies on Freedesktop SDK 23.08.

Disable PipeWire module since Freedesktop SDK 23.08 provides a more
recent version of PipeWire.

Intel Media SDK is patch to support being compiled with more recent
version of GCC
Update oneVPL v2023.3.1 to libvpl v10.1
* Update SVT-AV1 to 1.8.0
* Update aom to 3.8.0
* Update libsrt to 1.5.3
* Update nv-codec-headers to 12.1.14.0
* Update FFmpeg to 6.1.1
* Update LuaJIT to 2.1 c525bcb902
* Update Asio to 1.29.0
* Update nlohmann JSON to 3.11.3
* Update Intel oneVPL GPU to 23.4.3
* Update libdatachannel to 0.19.5
  * Update plog to 1.1.10
Use High profile for H264 and auto level with all codecs.
Remove setting default value for unused "rendermode" option.
When resolution is 4K or higher, use 2 tile columns for NVENC AV1.
When resolution is 4K or higher, use 2 tile columns for QSV AV1.
7fa3822 - REALLY don't allow browser docks to arbitrarily close OBS
See b61a5c243137681a206bca2cef0f92e20598353a for changelog.
@RytoEX RytoEX force-pushed the ffmpeg-audio-name-fix-squash branch from 34984c8 to c36dad9 Compare January 26, 2024 01:21
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.