mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 01:35:08 +02:00
Instead of using a single track entry for all blocks in the file, use a lookup to get the info needed to calculate the timestamp for the specific track a block belongs to. No change in behavior for SampleIterator, since that only returns blocks from the track that was passed. This will be useful for MSE, since it demuxes all tracks at once.
35 lines
790 B
C++
35 lines
790 B
C++
/*
|
|
* Copyright (c) 2022, Gregory Bertilson <zaggy1024@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibMedia/FFmpeg/FFmpegVideoDecoder.h>
|
|
|
|
#include "TestMediaCommon.h"
|
|
|
|
static NonnullOwnPtr<Media::VideoDecoder> make_decoder(Media::Matroska::TrackEntry const& track)
|
|
{
|
|
return MUST(Media::FFmpeg::FFmpegVideoDecoder::try_create(Media::CodecID::VP9, track.codec_private_data()));
|
|
}
|
|
|
|
TEST_CASE(webm_in_vp9)
|
|
{
|
|
decode_video("./vp9_in_webm.webm"sv, 25, make_decoder);
|
|
}
|
|
|
|
TEST_CASE(vp9_oob_blocks)
|
|
{
|
|
decode_video("./vp9_oob_blocks.webm"sv, 240, make_decoder);
|
|
}
|
|
|
|
BENCHMARK_CASE(vp9_4k)
|
|
{
|
|
decode_video("./vp9_4k.webm"sv, 2, make_decoder);
|
|
}
|
|
|
|
BENCHMARK_CASE(vp9_clamp_reference_mvs)
|
|
{
|
|
decode_video("./vp9_clamp_reference_mvs.webm"sv, 92, make_decoder);
|
|
}
|