Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependencies #259

Merged
merged 18 commits into from
Aug 31, 2024
Merged

Update dependencies #259

merged 18 commits into from
Aug 31, 2024

Conversation

RytoEX
Copy link
Member

@RytoEX RytoEX commented Aug 27, 2024

Description

Update dependencies where possible:

  • deps.ffmpeg: Update libvpx to v1.14.1
  • deps.ffmpeg: Update SVT-AV1 to 2.2.1
  • deps.ffmpeg: Update aom to 3.9.1
  • deps.ffmpeg: Update libdatachannel to v0.21.2
  • deps.ffmpeg: Update AMF to 1.4.34
  • deps.ffmpeg: Update FFmpeg to 7.0.2
  • deps.macos: Update LuaJIT to 2.1 f725e44cda
  • deps.macos: Update FreeType to 2.13.3
  • deps.macos: Update Asio to 1.31.0
  • deps.macos: Update qrcodegen-cmake to v1.8.0-cmake3
  • deps.macos: Update Sparkle to 2.6.4
  • deps.qt: Update Qt to 6.7.2 for macOS
  • deps.qt: Update Qt to 6.7.2 for Windows
  • deps.windows: Update FreeType to 2.13.3
  • deps.windows: Update curl to 8.9.1
  • deps.windows: Update LuaJIT to 2.1 f725e44cda
  • deps.windows: Update Asio to 1.31.0
  • deps.windows: Update qrcodegen-cmake to v1.8.0-cmake3
  • deps.windows: Update WIL to v1.0.240803.1

Motivation and Context

Want to update dependencies when we have the opportunity.

How Has This Been Tested?

I have tested that these dependencies themselves can be compiled on Windows. I haven't yet done test builds with OBS or full testing in OBS. That will be forthcoming.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • Tweak (non-breaking change to improve existing functionality)

Checklist:

  • My code has been run through clang-format.
  • I have read the contributing document.
  • My code is not on the master branch.
  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

@RytoEX RytoEX added enhancement New feature or request Seeking Testers labels Aug 27, 2024
@RytoEX RytoEX requested a review from PatTheMav August 27, 2024 20:05
@RytoEX RytoEX self-assigned this Aug 27, 2024
@RytoEX
Copy link
Member Author

RytoEX commented Aug 27, 2024

I originally attempted to update libajantv2 from 17.0.1 to 17.1.0, however:

  1. they now use MbedTLS, though they seem to be using a branch that fixes the known Windows link/importlib issues
  2. their output library name has changed, and is now something like: ajantv2_vs143_MTd.lib

The second item causes an error at the fixup step of that script on Windows.

SRT and MbedTLS are not updated for the same reason as before:

Note that neither SRT/libsrt nor mbedTLS are updated here. Building SRT 1.5.x against mbedTLS 3.5.0+ fails because of changes in mbedTLS that needed addressed in libsrt, but there is no new libsrt tag with the needed changes.

RNNoise is not updated for the same reason as before:

I initially updated RNNoise, but dropped it because the Windows build actually uses an old PR that added CMake support. We'll either have to rewrite CMake support for the latest stable tag, or we'll have to change our build script to use their preferred build system (autotools).

Librist is not updated for the same reason as before:

I did not update librist because versions 0.2.8-0.2.10 have a bug, and there is no new tag. See:

@RytoEX
Copy link
Member Author

RytoEX commented Aug 28, 2024

Good news

OBS builds in Debug, RelWithDebInfo, and Release.

These worked:

  • Encoders
    • AOM
    • SVT-AV1
    • QSV
    • x264
  • Recording
    • Standard
      • MKV
      • MP4
      • Fragmented MP4
    • Custom FFmpeg Output
      • MP4 + libx264 + aac
      • MKV + libx264 + libvorbis
      • webm + libvpx-vp9 + libopus
  • Streaming
    • RTMP
    • RTMPS
    • HLS
    • SRT (local network)
    • RIST (local network)
  • Sources
    • Browser
      • Default
      • FishGL/Aquarium
    • Color
    • Display Capture
      • WGC
    • Game Capture
    • Image
      • Animated GIF
      • JPG
      • PNG
    • Image Slide Show
    • Media
      • FLV
      • MP4
      • SRT ingest on local network (OBS to OBS)
      • RIST ingest on local network (OBS to OBS)
      • webm with transparency
    • Text (FreeType 2)
    • Text (GDI+)
    • Video Capture Device
    • VLC
      • playlist of files
    • Window Capture
      • BitBlt
      • WGC
  • Filters
    • Chroma Key
    • Color Correction
  • webm stingers
  • Scripting
    • Python
    • Lua

Almost everything in my typical tests for those features worked.

Bad News

These had issues:

  • Sources
    • Image Slide Show
  • Streaming
    • HLS

The Image Slide Show source is created with its center origin in the lower right corner of the scene. I don't think this is related to deps though. It is more likely to be related to changes in the obs-studio repo.

My first attempt to stream HLS to YouTube resulted in this error once:
image

15:38:39.703: [ffmpeg muxer: 'adv_stream'] os_process_pipe_write for packet data failed
15:38:39.704: [ffmpeg muxer: 'adv_stream'] ffmpeg-mux: av_interleaved_write_frame failed: -10053: Error number -10053 occurred

The second attempt did not emit an error, but did not show up on YouTube. The third attempt connected and showed up on YouTube, so perhaps this was just HLS fussiness and intermittent network issues.

These did not work:

  • Streaming
    • WHIP

Attempting to stream to Twitch or Broadcast Box with WHIP hit a debug breakpoint:

 	datachannel.dll!00007ffd90de7365()	Unknown
>	obs-webrtc.dll!WHIPOutput::ConfigureAudioTrack(std::string media_stream_id, std::string cname) Line 117	C++
 	obs-webrtc.dll!WHIPOutput::Setup() Line 283	C++
 	obs-webrtc.dll!WHIPOutput::StartThread() Line 554	C++

image

cc @Sean-Der , but I will just revert the libdatachannel update back to v0.21.0 since it seemed to be working with that.

Todo

  • Encoders
    • TODO: AMF
    • TODO: NVENC

Also, building and testing on macOS.

Copy link
Member

@PatTheMav PatTheMav left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be fine - I'm not aware of any new compiler or binary issues with the updated dependencies.

@RytoEX
Copy link
Member Author

RytoEX commented Aug 28, 2024

Should be fine - I'm not aware of any new compiler or binary issues with the updated dependencies.

I just need to revert the libdatachannel update and see about testing AMF/NVENC to be sure those work.

@RytoEX RytoEX merged commit 9a93525 into obsproject:master Aug 31, 2024
17 checks passed
@RytoEX RytoEX deleted the update-deps branch August 31, 2024 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Seeking Testers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants