mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-25 17:25:08 +02:00
This state will indicate to the media element that it's not guaranteed to have a frame yet, for the purposes of determining the ready state. JavaScript should be sure that video elements with a ready state of HAVE_CURRENT_DATA or greater represent the current video frame already. To allow the state to be exited if audio is disabled, audio tracks are now only added to the buffering set on enable if the audio sink exists, since without the sink starting the data provider, it will never be removed. This is a step towards making video ref tests.
63 lines
2.2 KiB
CMake
63 lines
2.2 KiB
CMake
include(audio)
|
|
|
|
include(ffmpeg)
|
|
|
|
set(SOURCES
|
|
Audio/AudioDevices.cpp
|
|
Containers/Matroska/MatroskaDemuxer.cpp
|
|
Containers/Matroska/Reader.cpp
|
|
IncrementallyPopulatedStream.cpp
|
|
PlaybackManager.cpp
|
|
PlaybackStates/StartingStateHandler.cpp
|
|
PlaybackStates/PausedStateHandler.cpp
|
|
PlaybackStates/PlaybackStateHandler.cpp
|
|
PlaybackStates/ResumingStateHandler.cpp
|
|
Providers/AudioDataProvider.cpp
|
|
Providers/GenericTimeProvider.cpp
|
|
Providers/VideoDataProvider.cpp
|
|
Sinks/AudioMixingSink.cpp
|
|
Sinks/DisplayingVideoSink.cpp
|
|
TimedImage.cpp
|
|
TimeRanges.cpp
|
|
VideoFrame.cpp
|
|
)
|
|
|
|
ladybird_lib(LibMedia media EXPLICIT_SYMBOL_EXPORT)
|
|
target_link_libraries(LibMedia PRIVATE LibCore LibCrypto LibIPC LibGfx LibThreading LibUnicode)
|
|
|
|
target_sources(LibMedia PRIVATE
|
|
FFmpeg/FFmpegAudioConverter.cpp
|
|
FFmpeg/FFmpegAudioDecoder.cpp
|
|
FFmpeg/FFmpegDemuxer.cpp
|
|
FFmpeg/FFmpegHelpers.cpp
|
|
FFmpeg/FFmpegIOContext.cpp
|
|
FFmpeg/FFmpegVideoDecoder.cpp
|
|
)
|
|
|
|
if (NOT ANDROID)
|
|
target_link_libraries(LibMedia PRIVATE PkgConfig::AVCODEC PkgConfig::AVFORMAT PkgConfig::AVUTIL PkgConfig::LIBSWRESAMPLE)
|
|
else()
|
|
target_include_directories(LibMedia PRIVATE ${FFMPEG_INCLUDE_DIRS})
|
|
target_link_directories(LibMedia PRIVATE ${FFMPEG_LIBRARY_DIRS})
|
|
target_link_libraries(LibMedia PRIVATE ${FFMPEG_LIBRARIES})
|
|
endif()
|
|
|
|
if (LADYBIRD_AUDIO_BACKEND STREQUAL "PULSE")
|
|
target_sources(LibMedia PRIVATE
|
|
Audio/PlaybackStreamPulseAudio.cpp
|
|
Audio/PulseAudioWrappers.cpp
|
|
)
|
|
target_link_libraries(LibMedia PRIVATE PkgConfig::PULSEAUDIO)
|
|
elseif (LADYBIRD_AUDIO_BACKEND STREQUAL "AUDIO_UNIT")
|
|
target_sources(LibMedia PRIVATE Audio/PlaybackStreamAudioUnit.cpp)
|
|
find_library(AUDIO_TOOLBOX AudioToolbox REQUIRED)
|
|
target_link_libraries(LibMedia PRIVATE ${AUDIO_TOOLBOX})
|
|
elseif(LADYBIRD_AUDIO_BACKEND STREQUAL "WASAPI")
|
|
target_sources(LibMedia PRIVATE Audio/PlaybackStreamWasapi.cpp)
|
|
target_link_libraries(LibMedia PRIVATE ole32 avrt winmm)
|
|
elseif (DEFINED LADYBIRD_AUDIO_BACKEND)
|
|
message(FATAL_ERROR "Please update ${CMAKE_CURRENT_LIST_FILE} for audio backend ${LADYBIRD_AUDIO_BACKEND}")
|
|
else ()
|
|
target_sources(LibMedia PRIVATE Audio/PlaybackStream.cpp)
|
|
endif()
|