mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-08-17 17:30:27 +03:00
LibMedia: Add a stub implementation of FFmpegVideoDecoder for Android
We don't have ffmpeg available on Android, so provide a dummy FFmpegVideoDecoder and disable linking against ffmpeg for Android.
This commit is contained in:
parent
ebc92dee93
commit
e8b398ca34
Notes:
sideshowbarker
2024-07-17 04:41:05 +09:00
Author: https://github.com/thatoddmailbox Commit: https://github.com/LadybirdBrowser/ladybird/commit/e8b398ca34 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/402 Issue: https://github.com/LadybirdBrowser/ladybird/issues/220 Reviewed-by: https://github.com/ADKaster ✅
@ -4,15 +4,22 @@ set(SOURCES
|
|||||||
Color/TransferCharacteristics.cpp
|
Color/TransferCharacteristics.cpp
|
||||||
Containers/Matroska/MatroskaDemuxer.cpp
|
Containers/Matroska/MatroskaDemuxer.cpp
|
||||||
Containers/Matroska/Reader.cpp
|
Containers/Matroska/Reader.cpp
|
||||||
FFmpeg/FFmpegVideoDecoder.cpp
|
|
||||||
PlaybackManager.cpp
|
PlaybackManager.cpp
|
||||||
VideoFrame.cpp
|
VideoFrame.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (NOT ANDROID)
|
||||||
|
list(APPEND SOURCES FFmpeg/FFmpegVideoDecoder.cpp)
|
||||||
|
else()
|
||||||
|
list(APPEND SOURCES FFmpeg/FFmpegVideoDecoderStub.cpp)
|
||||||
|
endif()
|
||||||
|
|
||||||
serenity_lib(LibMedia media)
|
serenity_lib(LibMedia media)
|
||||||
target_link_libraries(LibMedia PRIVATE LibCore LibIPC LibGfx LibThreading)
|
target_link_libraries(LibMedia PRIVATE LibCore LibIPC LibGfx LibThreading)
|
||||||
|
|
||||||
# Third-party
|
if (NOT ANDROID)
|
||||||
find_package(PkgConfig REQUIRED)
|
# Third-party
|
||||||
pkg_check_modules(AVCODEC REQUIRED IMPORTED_TARGET libavcodec)
|
find_package(PkgConfig REQUIRED)
|
||||||
target_link_libraries(LibMedia PRIVATE PkgConfig::AVCODEC)
|
pkg_check_modules(AVCODEC REQUIRED IMPORTED_TARGET libavcodec)
|
||||||
|
target_link_libraries(LibMedia PRIVATE PkgConfig::AVCODEC)
|
||||||
|
endif()
|
||||||
|
@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024, Alex Studer <alex@studer.dev>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <LibCore/System.h>
|
||||||
|
#include <LibMedia/VideoFrame.h>
|
||||||
|
|
||||||
|
#include "FFmpegForward.h"
|
||||||
|
#include "FFmpegVideoDecoder.h"
|
||||||
|
|
||||||
|
namespace Media::FFmpeg {
|
||||||
|
|
||||||
|
DecoderErrorOr<NonnullOwnPtr<FFmpegVideoDecoder>> FFmpegVideoDecoder::try_create(CodecID codec_id, ReadonlyBytes codec_initialization_data)
|
||||||
|
{
|
||||||
|
(void)codec_id;
|
||||||
|
(void)codec_initialization_data;
|
||||||
|
return DecoderError::format(DecoderErrorCategory::NotImplemented, "FFmpeg not available on this platform");
|
||||||
|
}
|
||||||
|
|
||||||
|
FFmpegVideoDecoder::FFmpegVideoDecoder(AVCodecContext* codec_context, AVPacket* packet, AVFrame* frame)
|
||||||
|
: m_codec_context(codec_context)
|
||||||
|
, m_packet(packet)
|
||||||
|
, m_frame(frame)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
FFmpegVideoDecoder::~FFmpegVideoDecoder()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
DecoderErrorOr<void> FFmpegVideoDecoder::receive_sample(Duration timestamp, ReadonlyBytes sample)
|
||||||
|
{
|
||||||
|
(void)timestamp;
|
||||||
|
(void)sample;
|
||||||
|
return DecoderError::format(DecoderErrorCategory::NotImplemented, "FFmpeg not available on this platform");
|
||||||
|
}
|
||||||
|
|
||||||
|
DecoderErrorOr<NonnullOwnPtr<VideoFrame>> FFmpegVideoDecoder::get_decoded_frame()
|
||||||
|
{
|
||||||
|
return DecoderError::format(DecoderErrorCategory::NotImplemented, "FFmpeg not available on this platform");
|
||||||
|
}
|
||||||
|
|
||||||
|
void FFmpegVideoDecoder::flush()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user