mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-21 23:20:20 +00:00
LibMedia: Link to avformat as well
This allows us to process container formats in future commits.
This commit is contained in:
parent
3bf910706f
commit
1b267abf36
Notes:
github-actions[bot]
2024-09-12 08:02:21 +00:00
Author: https://github.com/gmta Commit: https://github.com/LadybirdBrowser/ladybird/commit/1b267abf363 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1369
4 changed files with 23 additions and 11 deletions
4
.github/actions/setup/action.yml
vendored
4
.github/actions/setup/action.yml
vendored
|
@ -26,8 +26,8 @@ runs:
|
|||
|
||||
sudo apt-get update
|
||||
sudo apt-get install autoconf autoconf-archive automake build-essential ccache clang-18 clang++-18 cmake curl fonts-liberation2 \
|
||||
gcc-13 g++-13 libavcodec-dev libegl1-mesa-dev libgl1-mesa-dev libpulse-dev libssl-dev libstdc++-13-dev lld-18 nasm ninja-build \
|
||||
qt6-base-dev qt6-tools-dev-tools tar unzip zip
|
||||
gcc-13 g++-13 libavcodec-dev libavformat-dev libegl1-mesa-dev libgl1-mesa-dev libpulse-dev libssl-dev libstdc++-13-dev lld-18 \
|
||||
nasm ninja-build qt6-base-dev qt6-tools-dev-tools tar unzip zip
|
||||
|
||||
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 100
|
||||
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 100
|
||||
|
|
|
@ -14,7 +14,7 @@ CMake 3.25 or newer must be available in $PATH.
|
|||
### Debian/Ubuntu:
|
||||
|
||||
```bash
|
||||
sudo apt install autoconf autoconf-archive automake build-essential ccache cmake curl fonts-liberation2 git libavcodec-dev libgl1-mesa-dev nasm ninja-build pkg-config qt6-base-dev qt6-tools-dev-tools qt6-wayland tar unzip zip
|
||||
sudo apt install autoconf autoconf-archive automake build-essential ccache cmake curl fonts-liberation2 git libavcodec-dev libavformat-dev libgl1-mesa-dev nasm ninja-build pkg-config qt6-base-dev qt6-tools-dev-tools qt6-wayland tar unzip zip
|
||||
```
|
||||
|
||||
#### CMake 3.25 or newer:
|
||||
|
@ -83,12 +83,12 @@ sudo pacman -S --needed autoconf-archive automake base-devel ccache cmake curl f
|
|||
|
||||
### Fedora or derivatives:
|
||||
```
|
||||
sudo dnf install autoconf-archive automake ccache cmake curl libavcodec-free-devel liberation-sans-fonts libglvnd-devel nasm ninja-build qt6-qtbase-devel qt6-qtmultimedia-devel qt6-qttools-devel qt6-qtwayland-devel tar unzip zip zlib-ng-compat-static
|
||||
sudo dnf install autoconf-archive automake ccache cmake curl libavcodec-free-devel libavformat-free-devel liberation-sans-fonts libglvnd-devel nasm ninja-build qt6-qtbase-devel qt6-qtmultimedia-devel qt6-qttools-devel qt6-qtwayland-devel tar unzip zip zlib-ng-compat-static
|
||||
```
|
||||
|
||||
### openSUSE:
|
||||
```
|
||||
sudo zypper install autoconf-archive automake ccache cmake curl ffmpeg-7-libavcodec-devel gcc13 gcc13-c++ liberation-fonts libglvnd-devel nasm ninja qt6-base-devel qt6-multimedia-devel qt6-tools-devel qt6-wayland-devel tar unzip zip
|
||||
sudo zypper install autoconf-archive automake ccache cmake curl ffmpeg-7-libavcodec-devel ffmpeg-7-libavformat-devel gcc13 gcc13-c++ liberation-fonts libglvnd-devel nasm ninja qt6-base-devel qt6-multimedia-devel qt6-tools-devel qt6-wayland-devel tar unzip zip
|
||||
```
|
||||
The build process requires at least python3.7; openSUSE Leap only features Python 3.6 as default, so it is recommendable to install package python311 and create a virtual environment (venv) in this case.
|
||||
|
||||
|
|
13
Meta/CMake/ffmpeg.cmake
Normal file
13
Meta/CMake/ffmpeg.cmake
Normal file
|
@ -0,0 +1,13 @@
|
|||
include_guard()
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(AVCODEC IMPORTED_TARGET libavcodec)
|
||||
pkg_check_modules(AVFORMAT IMPORTED_TARGET libavformat)
|
||||
|
||||
if (AVCODEC_FOUND AND AVFORMAT_FOUND)
|
||||
set(HAS_FFMPEG ON CACHE BOOL "" FORCE)
|
||||
add_compile_definitions(USE_FFMPEG=1)
|
||||
if (AVCODEC_VERSION VERSION_GREATER_EQUAL "59.24.100")
|
||||
add_compile_definitions(USE_FFMPEG_CH_LAYOUT=1)
|
||||
endif()
|
||||
endif()
|
|
@ -1,3 +1,5 @@
|
|||
include(ffmpeg)
|
||||
|
||||
set(SOURCES
|
||||
Audio/GenericTypes.cpp
|
||||
Audio/SampleFormats.cpp
|
||||
|
@ -26,7 +28,7 @@ if (HAVE_PULSEAUDIO)
|
|||
)
|
||||
endif()
|
||||
|
||||
if (NOT ANDROID)
|
||||
if (HAS_FFMPEG)
|
||||
list(APPEND SOURCES FFmpeg/FFmpegVideoDecoder.cpp)
|
||||
else()
|
||||
list(APPEND SOURCES FFmpeg/FFmpegVideoDecoderStub.cpp)
|
||||
|
@ -35,11 +37,8 @@ endif()
|
|||
serenity_lib(LibMedia media)
|
||||
target_link_libraries(LibMedia PRIVATE LibCore LibCrypto LibRIFF LibIPC LibGfx LibThreading LibUnicode)
|
||||
|
||||
if (NOT ANDROID)
|
||||
# Third-party
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(AVCODEC REQUIRED IMPORTED_TARGET libavcodec)
|
||||
target_link_libraries(LibMedia PRIVATE PkgConfig::AVCODEC)
|
||||
if (HAS_FFMPEG)
|
||||
target_link_libraries(LibMedia PRIVATE PkgConfig::AVCODEC PkgConfig::AVFORMAT)
|
||||
endif()
|
||||
|
||||
if (HAVE_PULSEAUDIO)
|
||||
|
|
Loading…
Reference in a new issue