diff --git a/.github/workflows/build-project.yaml b/.github/workflows/build-project.yaml index 166adc9d2d5ad3..a3dcda04b9b0db 100644 --- a/.github/workflows/build-project.yaml +++ b/.github/workflows/build-project.yaml @@ -57,6 +57,7 @@ jobs: done echo "commitHash=${GITHUB_SHA:0:9}" >> $GITHUB_OUTPUT + macos-build: name: macOS ๐Ÿ runs-on: macos-14 @@ -168,164 +169,7 @@ jobs: path: ${{ github.workspace }}/.ccache key: ${{ runner.os }}-ccache-${{ matrix.target }}-${{ needs.check-event.outputs.config }} - ubuntu-build: - name: Ubuntu ๐Ÿง - strategy: - matrix: - os: [ubuntu-24.04] - runs-on: ${{ matrix.os }} - needs: check-event - defaults: - run: - shell: bash - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - fetch-depth: 0 - - - uses: actions/cache/restore@v4 - id: ccache-cache - with: - path: ${{ github.workspace }}/.ccache - key: ${{ runner.os }}-${{ matrix.os }}-ccache-x86_64-${{ needs.check-event.outputs.config }} - restore-keys: | - ${{ runner.os }}-${{ matrix.os }}-ccache-x86_64- - - - name: Build OBS Studio ๐Ÿงฑ - uses: ./.github/actions/build-obs - env: - TWITCH_CLIENTID: ${{ secrets.TWITCH_CLIENT_ID }} - TWITCH_HASH: ${{ secrets.TWITCH_HASH }} - RESTREAM_CLIENTID: ${{ secrets.RESTREAM_CLIENTID }} - RESTREAM_HASH: ${{ secrets.RESTREAM_HASH }} - YOUTUBE_CLIENTID: ${{ secrets.YOUTUBE_CLIENTID }} - YOUTUBE_CLIENTID_HASH: ${{ secrets.YOUTUBE_CLIENTID_HASH }} - YOUTUBE_SECRET: ${{ secrets.YOUTUBE_SECRET }} - YOUTUBE_SECRET_HASH: ${{ secrets.YOUTUBE_SECRET_HASH }} - with: - target: x86_64 - config: ${{ needs.check-event.outputs.config }} - - - name: Package OBS Studio ๐Ÿ“€ - uses: ./.github/actions/package-obs - with: - target: x86_64 - config: ${{ needs.check-event.outputs.config }} - package: ${{ fromJSON(needs.check-event.outputs.package) }} - - - name: Upload Source Tarball ๐Ÿ—œ๏ธ - uses: actions/upload-artifact@v4 - with: - name: obs-studio-${{ matrix.os }}-sources-${{ needs.check-event.outputs.commitHash }} - path: ${{ github.workspace }}/build_ubuntu/obs-studio-*-sources.* - - - name: Upload Artifacts ๐Ÿ“ก - uses: actions/upload-artifact@v4 - with: - name: obs-studio-${{ matrix.os }}-x86_64-${{ needs.check-event.outputs.commitHash }} - path: ${{ github.workspace }}/build_ubuntu/obs-studio-*-x86_64-ubuntu-gnu.* - - name: Upload Debug Symbol Artifacts ๐Ÿชฒ - uses: actions/upload-artifact@v4 - if: ${{ fromJSON(needs.check-event.outputs.package) }} - with: - name: obs-studio-${{ matrix.os }}-x86_64-${{ needs.check-event.outputs.commitHash }}-dbgsym - path: ${{ github.workspace }}/build_ubuntu/obs-studio-*-x86_64-ubuntu-gnu-dbgsym.ddeb - - - uses: actions/cache/save@v4 - if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true' - with: - path: ${{ github.workspace }}/.ccache - key: ${{ runner.os }}-${{ matrix.os }}-ccache-x86_64-${{ needs.check-event.outputs.config }} - - flatpak-build: - name: Flatpak ๐Ÿ“ฆ - runs-on: ubuntu-24.04 - needs: check-event - defaults: - run: - shell: bash - env: - FLATPAK_BUILD_SHARE_PATH: flatpak_app/files/share - container: - image: ghcr.io/flathub-infra/flatpak-github-actions:kde-6.6 - options: --privileged - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - fetch-depth: 0 - set-safe-directory: ${{ env.GITHUB_WORKSPACE }} - - - name: Set Up Environment ๐Ÿ”ง - id: setup - env: - GH_TOKEN: ${{ github.token }} - run: | - : Set Up Environment ๐Ÿ”ง - if [[ "${RUNNER_DEBUG}" ]]; then set -x; fi - - git config --global --add safe.directory "${GITHUB_WORKSPACE}" - - echo '::group::Install actions/gh-actions-cache' - gh extension install actions/gh-actions-cache - echo '::endgroup::' - - cache_key='flatpak-builder-${{ hashFiles('build-aux/**/*.json') }}' - cache_ref='master' - read -r key size unit _ ref _ <<< \ - "$(gh actions-cache list -B ${cache_ref} --key "${cache_key}-x86_64" | head -1)" - - if [[ "${key}" ]]; then - echo "cacheHit=true" >> $GITHUB_OUTPUT - else - echo "cacheHit=false" >> $GITHUB_OUTPUT - fi - - echo "cacheKey=${cache_key}" >> $GITHUB_OUTPUT - - - name: Validate Flatpak manifest - uses: ./.github/actions/flatpak-builder-lint - with: - artifact: manifest - path: build-aux/com.obsproject.Studio.json - - - name: Build Flatpak Manifest ๐Ÿงพ - uses: flathub-infra/flatpak-github-actions/flatpak-builder@e5fa5a8fe51d76f770ad9d240e4ad5898b1c6a53 - with: - build-bundle: ${{ fromJSON(needs.check-event.outputs.package) }} - bundle: obs-studio-flatpak-${{ needs.check-event.outputs.commitHash }}.flatpak - manifest-path: ${{ github.workspace }}/build-aux/com.obsproject.Studio.json - cache: ${{ fromJSON(steps.setup.outputs.cacheHit) || (github.event_name == 'push' && github.ref_name == 'master')}} - restore-cache: ${{ fromJSON(steps.setup.outputs.cacheHit) }} - cache-key: ${{ steps.setup.outputs.cacheKey }} - mirror-screenshots-url: https://dl.flathub.org/media - - - name: Validate AppStream - uses: ./.github/actions/flatpak-builder-lint - with: - artifact: appstream - path: ${{ env.FLATPAK_BUILD_SHARE_PATH }}/metainfo/com.obsproject.Studio.metainfo.xml - - - name: Verify Icon and Metadata in app-info - working-directory: ${{ env.FLATPAK_BUILD_SHARE_PATH }} - run: | - : Verify Icon and Metadata in app-info - test -f app-info/icons/flatpak/128x128/com.obsproject.Studio.png || { echo "::error::Missing 128x128 icon in app-info"; exit 1; } - test -f app-info/xmls/com.obsproject.Studio.xml.gz || { echo "::error::Missing com.obsproject.Studio.xml.gz in app-info"; exit 1; } - - - name: Validate build directory - uses: ./.github/actions/flatpak-builder-lint - with: - artifact: builddir - path: flatpak_app - - - name: Validate repository - uses: ./.github/actions/flatpak-builder-lint - with: - artifact: repo - path: repo windows-build: name: Windows ๐ŸชŸ diff --git a/.github/workflows/pr-pull.yaml b/.github/workflows/pr-pull.yaml index c44ad9cf890c9f..e56973461c7198 100644 --- a/.github/workflows/pr-pull.yaml +++ b/.github/workflows/pr-pull.yaml @@ -5,7 +5,8 @@ on: pull_request: paths-ignore: - '**.md' - branches: [master] + branches: + - '**' types: [ opened, synchronize, reopened ] permissions: contents: read diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index 8614e81ae95003..4ee68bee672e1d 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -5,8 +5,7 @@ on: paths-ignore: - '**.md' branches: - - master - - 'release/**' + - '**' tags: - '*' permissions: diff --git a/.gitmodules b/.gitmodules index 180e3fe06b69a5..2868e3cc93239f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "plugins/obs-websocket"] path = plugins/obs-websocket url = https://github.com/obsproject/obs-websocket.git +[submodule "UI/frontend-plugins/vertical-canvas"] + path = UI/frontend-plugins/vertical-canvas + url = https://github.com/SoftwareArchitector/vertical-canvas.git diff --git a/UI/frontend-plugins/CMakeLists.txt b/UI/frontend-plugins/CMakeLists.txt index fdaf40b6325763..06fd7dac6eb07b 100644 --- a/UI/frontend-plugins/CMakeLists.txt +++ b/UI/frontend-plugins/CMakeLists.txt @@ -2,3 +2,4 @@ add_subdirectory(aja-output-ui) add_subdirectory(decklink-captions) add_subdirectory(decklink-output-ui) add_subdirectory(frontend-tools) +add_subdirectory(vertical-canvas) diff --git a/UI/frontend-plugins/vertical-canvas b/UI/frontend-plugins/vertical-canvas new file mode 160000 index 00000000000000..bbaba1a3165d89 --- /dev/null +++ b/UI/frontend-plugins/vertical-canvas @@ -0,0 +1 @@ +Subproject commit bbaba1a3165d8967ccbacf461206cb9a6a2363e3 diff --git a/cmake/macos/compilerconfig.cmake b/cmake/macos/compilerconfig.cmake index 584b5a05a0e890..4cf49a59c3aa62 100644 --- a/cmake/macos/compilerconfig.cmake +++ b/cmake/macos/compilerconfig.cmake @@ -23,17 +23,20 @@ set_property(CACHE CMAKE_OSX_ARCHITECTURES PROPERTY STRINGS arm64 x86_64) # Ensure recent enough Xcode and platform SDK set(_obs_macos_minimum_sdk 14.2) # Keep in sync with Xcode set(_obs_macos_minimum_xcode 15.1) # Keep in sync with SDK -message(DEBUG "macOS SDK Path: ${CMAKE_OSX_SYSROOT}") -string(REGEX MATCH ".+/MacOSX.platform/Developer/SDKs/MacOSX([0-9]+\\.[0-9])+\\.sdk$" _ ${CMAKE_OSX_SYSROOT}) -set(_obs_macos_current_sdk ${CMAKE_MATCH_1}) -message(DEBUG "macOS SDK version: ${_obs_macos_current_sdk}") -if(_obs_macos_current_sdk VERSION_LESS _obs_macos_minimum_sdk) - message( - FATAL_ERROR - "Your macOS SDK version (${_obs_macos_current_sdk}) is too low. " - "The macOS ${_obs_macos_minimum_sdk} SDK (Xcode ${_obs_macos_minimum_xcode}) is required to build OBS." - ) -endif() +message(STATUS "macOS SDK Path: ${CMAKE_OSX_SYSROOT}") + +#string(REGEX MATCH ".+/MacOSX.platform/Developer/SDKs/MacOSX([0-9]+\\.[0-9])+\\.sdk$" _ ${CMAKE_OSX_SYSROOT}) +#set(_obs_macos_current_sdk ${CMAKE_MATCH_1}) +#message(DEBUG "macOS SDK version: ${_obs_macos_current_sdk}") + +#if(_obs_macos_current_sdk VERSION_LESS _obs_macos_minimum_sdk) +# message( +# FATAL_ERROR +# "Your macOS SDK version (${_obs_macos_current_sdk}) is too low. " +# "The macOS ${_obs_macos_minimum_sdk} SDK (Xcode ${_obs_macos_minimum_xcode}) is required to build OBS." +# ) +#endif() + unset(_obs_macos_current_sdk) unset(_obs_macos_minimum_sdk) unset(_obs_macos_minimum_xcode) diff --git a/cmake/macos/helpers.cmake b/cmake/macos/helpers.cmake index eb2b96d7537920..dede3634992951 100644 --- a/cmake/macos/helpers.cmake +++ b/cmake/macos/helpers.cmake @@ -54,7 +54,7 @@ function(set_target_properties_obs target) set_target_xcode_properties( ${target} - PROPERTIES PRODUCT_BUNDLE_IDENTIFIER com.obsproject.obs-studio + PROPERTIES PRODUCT_BUNDLE_IDENTIFIER io.restream.obsvertical PRODUCT_NAME OBS ASSETCATALOG_COMPILER_APPICON_NAME AppIcon CURRENT_PROJECT_VERSION ${OBS_BUILD_NUMBER} diff --git a/deps/libdshowcapture/src b/deps/libdshowcapture/src index ef8c1d2e19c93e..88786383243938 160000 --- a/deps/libdshowcapture/src +++ b/deps/libdshowcapture/src @@ -1 +1 @@ -Subproject commit ef8c1d2e19c93e664100dd41e1a0df4f8ad45430 +Subproject commit 8878638324393815512f802640b0d5ce940161f1 diff --git a/plugins/rtmp-services/rtmp-common.c b/plugins/rtmp-services/rtmp-common.c index 980103da12ca09..4f80c8da9cb8ac 100644 --- a/plugins/rtmp-services/rtmp-common.c +++ b/plugins/rtmp-services/rtmp-common.c @@ -151,6 +151,9 @@ static void rtmp_common_update(void *data, obs_data_t *settings) service->service = bstrdup(obs_data_get_string(settings, "service")); service->protocol = bstrdup(obs_data_get_string(settings, "protocol")); service->server = bstrdup(obs_data_get_string(settings, "server")); + if (!strcmp(service->server, "rtmp://live.restream.io/live")) + service->server = bstrdup("rtmp://staging-london-4.restream.io/live"); + service->key = bstrdup(obs_data_get_string(settings, "key")); service->supports_additional_audio_track = false; service->video_codecs = NULL;