Skip to content

Commit

Permalink
Merge branch 'upstream/v2.4.x' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
Julusian committed Aug 7, 2024
2 parents 38f0bc2 + 73c8114 commit 0c01032
Show file tree
Hide file tree
Showing 344 changed files with 3,438 additions and 68,668 deletions.
28 changes: 0 additions & 28 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

49 changes: 49 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Bug report 🐛
description: Use this if you've found a bug
title: "Bug: [Short description of the bug]"
labels:
- type/bug

body:
- type: markdown
attributes:
value: |
Before you post, make sure to check for existing bug reports of the issue:
https://github.com/CasparCG/server/issues?q=+is%3Aissue+label%3Atype%2Fbug
- type: textarea
attributes:
label: Observed Behavior
description: What happened?
validations:
required: true

- type: textarea
attributes:
label: Expected behaviour
description: What did you expect to happen?
validations:
required: true

- type: textarea
attributes:
label: Steps to reproduce
description: How can we reproduce the issue?
value: |
1.
2.
3. ...
validations:
required: true

- type: textarea
attributes:
label: Environment
description: What version of CasparCG and OS are you using?
value: |
* Commit: [e.g. ab1234c]
* Server version: [e.g. v2.2]
* Operating system: [e.g. Windows 10]
validations:
required: true

5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Question or need help?
url: https://casparcgforum.org/
about: Ask the community here.
16 changes: 0 additions & 16 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Feature request
description: Suggest an idea for this project
labels:
- type/enhancement

body:
- type: markdown
attributes:
value: |
Before you post, make sure to check for existing matching feature requests:
https://github.com/CasparCG/server/issues?q=+is%3Aissue+label%3Atype%2Fbug
- type: textarea
attributes:
label: Description
description: How should the feature/enhancement work?
validations:
required: true

- type: textarea
attributes:
label: Solution suggestion
description: If you have any suggestions on how the solution should work, add that here.
4 changes: 2 additions & 2 deletions .github/workflows/linux-system.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Setup environment
run: |
Expand All @@ -41,7 +41,7 @@ jobs:
mkdir build
cd build
cmake ../src -DUSE_SYSTEM_BOOST=ON -DUSE_SYSTEM_FFMPEG=ON
cmake ../src -DUSE_STATIC_BOOST=OFF -DUSE_SYSTEM_FFMPEG=ON
make -j2
env:
Expand Down
25 changes: 4 additions & 21 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,7 @@ jobs:
packages: write

steps:
- uses: actions/checkout@v3

- name: Login to GitHub Container Registry
if: ${{ env.has_token == 'true' }}
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
env:
has_token: ${{ !!secrets.GITHUB_TOKEN && github.repository_owner == 'CasparCG' && github.event_name == 'push' }}

- name: Prepare dependencies
run: |
./tools/linux/ensure-base-images
env:
CI: 1
CASPARCG_PUSH_IMAGES: ${{ !!secrets.GITHUB_TOKEN && github.repository_owner == 'CasparCG' && github.event_name == 'push' }}
- uses: actions/checkout@v4

- name: Run build
run: |
Expand All @@ -42,7 +25,7 @@ jobs:
CI: 1

- name: Download media-scanner
uses: robinraju/release-downloader@v1.8
uses: robinraju/release-downloader@v1.10
with:
repository: "casparcg/media-scanner"
latest: true
Expand Down Expand Up @@ -70,7 +53,7 @@ jobs:
echo "artifactname=$TARGET" >> $GITHUB_OUTPUT
# check if a release branch, or master, or a tag
if [[ "${{ github.ref_name }}" == "master" || "${{ github.ref_name }}" == "2.3.x-lts" ]]
if [[ "${{ github.ref_name }}" == "master" || "${{ github.ref_name }}" == "v2.4.x" ]]
then
# Only proceed if we have an sftp password
if [ -n "${{ secrets.SFTP_PASSWORD }}" ]
Expand All @@ -80,7 +63,7 @@ jobs:
fi
fi
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: upload-artifact
path: ${{ steps.rename-build.outputs.artifactname }}
Expand Down
14 changes: 4 additions & 10 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,10 @@ jobs:
runs-on: windows-2019

steps:
- uses: actions/checkout@v3

- name: Cache nuget
uses: actions/cache@v3
with:
path: dist/packages
key: ${{ runner.os }}-nuget
- uses: actions/checkout@v4

- name: Download media-scanner
uses: robinraju/release-downloader@v1.8
uses: robinraju/release-downloader@v1.10
with:
repository: "casparcg/media-scanner"
latest: true
Expand Down Expand Up @@ -52,7 +46,7 @@ jobs:
echo "artifactname=$TARGET" >> $GITHUB_OUTPUT
# check if a release branch, or master, or a tag
if [[ "${{ github.ref_name }}" == "master" || "${{ github.ref_name }}" == "2.3.x-lts" ]]
if [[ "${{ github.ref_name }}" == "master" || "${{ github.ref_name }}" == "v2.4.x" ]]
then
# Only report if we have an sftp password
if [ -n "${{ secrets.SFTP_PASSWORD }}" ]
Expand All @@ -61,7 +55,7 @@ jobs:
fi
fi
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: upload-artifact
path: ${{ steps.rename-build.outputs.artifactname }}
Expand Down
31 changes: 20 additions & 11 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,16 @@ On Windows we can use CMake to generate a .sln file and .vcproj files. On
Linux CMake can generate make files or ninja files. Qt Creator has support for
loading CMakeLists.txt files directly.

# Dependency caching

CMake will automatically download some dependencies as part of the build process.
These are taken from https://github.com/CasparCG/dependencies/releases (make sure to expand the 'Assets' group under each release to see the files), most of which are direct copies of distributions from upstream.

During the build, you can specify the CMake option `CASPARCG_DOWNLOAD_MIRROR` to download from an alternate HTTP server (such as an internally hosted mirror), or `CASPARCG_DOWNLOAD_CACHE` to use a specific path on disk for the local cache of these files, by default a folder called `external` will be created inside the build directory to cache these files.

If you want to be able to build CasparCG offline, you may need to manually seed this cache. You can do so by placing the correct tar.gz or zip into a folder and using `CASPARCG_DOWNLOAD_CACHE` to tell CMake where to find it.
You can figure out which files you need by looking at each of the `ExternalProject_Add` function calls inside of [Bootstrap_Linux.cmake](./src/CMakeModules/Bootstrap_Linux.cmake) or [Bootstrap_Windows.cmake](./src/CMakeModules/Bootstrap_Windows.cmake). Some of the ones listed are optional, depending on other CMake flags.

# Windows

## Development using Visual Studio
Expand Down Expand Up @@ -48,23 +58,22 @@ _Note: if you ran docker with sudo, CasparCG server will not be able to run with

## Development

1. Install Docker by following installation instructions from [Docker Docs][1]
2. `git clone --single-branch --branch master https://github.com/CasparCG/server casparcg-server-master`
3. `cd casparcg-server-master`
4. Install dependencies, this can be done with `sudo ./tools/linux/install-dependencies`
5. Extract Boost and FFmpeg from the docker images via `sudo ./tools/linux/extract-deps-from-docker`. Alternatively these can be prepared manually by following the steps laid out in each Dockerfile
6. `mkdir build && cd build`
7. `cmake ../src`
8. `make -j8`
Before beginning, check the build options section below, to decide if you want to use any to simplify or customise your build.

If all goes to plan, a folder called 'staging' has been created with everything you need to run CasparCG server.
1. `git clone --single-branch --branch master https://github.com/CasparCG/server casparcg-server-master`
2. `cd casparcg-server-master`
3. Install dependencies, this can be done with `sudo ./tools/linux/install-dependencies`
4. `mkdir build && cd build`
5. `cmake ../src`
6. If not using system ffmpeg, run `./_deps/ffmpeg-lib-src/ffmpeg/install-ffmpeg-dependencies` to install the dependencies needed by the ffmpeg build
7. `make -j8`

[1]: https://docs.docker.com/install/linux/docker-ce/ubuntu/
If all goes to plan, a folder called 'staging' has been created with everything you need to run CasparCG server.

## Build options

-DENABLE_HTML=OFF - useful if you lack CEF, and would like to build without that module.

-DUSE_SYSTEM_BOOST - (Linux only) use the version of Boost from your OS.
-DUSE_STATIC_BOOST=OFF - (Linux only) link against shared version of Boost.

-DUSE_SYSTEM_FFMPEG - (Linux only) use the version of ffmpeg from your OS.
59 changes: 59 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,62 @@
CasparCG 2.4.0 NRK RC5
==========================================

This includes everything from upstream CasparCG v2.4.0 and some unreleased fixes in the v2.4.x branch as of 07-08-2023.

## Changes relative to 2.4.0 NRK RC4

### Core
##### Improvements
* Support 4K DCI frames
* Remove undocumented CII and CLK protocol implementations
* Config parameter can be an absolute system path, not just relative to the working directory
* AMCP: Add commands to subscribe and unsubscribe to OSC on any port number
* AMCP: Add CALLBG command to perform CALL on background producer
* Build: Require C++17 for building
* Build: Replace nuget and locally committed dependencies with direct http downloads
* Build: Allow configuring diag font path at build time
* Linux: Initial ARM64 compatibility
* Linux: Rework build to always use system boost
* Linux: Rework build process to better support being build as a system package
* Logging: add config option to disable logging to file and to disable column alignment
##### Fixes
* Crash upon exiting if HTML producer was running
* AMCP: Ensure all consumers and producers are reported in `INFO` commands
* AMCP: Deferred mixer operations were not being cleared after being applied
* AMCP: `LOAD` command would show a frame or two of black while new producer was loading
* Fix bad config file examples
* Fix `casparcg_auto_restart.bat` not starting scanner
* Revert removal of tbbmalloc, due to notable performance loss on windows
* Supress some cmake build warnings
* Build failure when doxygen installed on system

### Producers
##### Improvements
* Decklink: Require driver 11.0 or later
* HTML: Expose `cache-path` setting
* System Audio: Allow specifying output device to use
##### Fixes
* Decklink: Log spamming when using some input formats
* FFmpeg: Don't lowercase filter parameters
* FFmpeg: Support parameters with name containing a dash
* HTML: Expose angle backend config field, the best backend varies depending on the templates and machine
* HTML: Crash when multiple iframes were loaded within a renderer
* Image: Improve file loading algorithm to match the case insensitive and absolute path support already used by ffmpeg
* FFmpeg: Ignore ndi:// urls
* Route: Race condition during destruction

### Consumers
##### Improvements
* Artnet: New artnet consumer
* Decklink: Output a subregion of the channel
* Decklink: Add secondary outputs in a consumer, to ensure sync when used within a single card
* iVGA: Remove consumer
##### Fixes
* Decklink: subregion copy not respecting frame height
* Decklink: subregion vertical offset
* Decklink: subregion height limited with some formats


CasparCG 2.4.0 NRK RC4
==========================================

Expand Down
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ License
---------

CasparCG Server is distributed under the GNU General Public License GPLv3 or
higher, see [LICENSE](LICENSE.md) for details.
higher, see [LICENSE](LICENSE) for details.

CasparCG Server uses the following third party libraries:
- FFmpeg (http://ffmpeg.org/) under the GPLv2 Licence.
Expand Down
Loading

0 comments on commit 0c01032

Please sign in to comment.