Tests/LibVideo: Add a test for Matroska files containing CRC32 elements

This commit is contained in:
Zaggy1024 2023-06-24 03:41:14 -05:00 committed by Tim Flynn
parent cf1cb04af0
commit b94c132dd1
4 changed files with 28 additions and 1 deletions

View file

@ -1,4 +1,5 @@
set(TEST_SOURCES
TestParseMatroska.cpp
TestVP9Decode.cpp
)
@ -10,3 +11,4 @@ install(FILES vp9_in_webm.webm DESTINATION usr/Tests/LibVideo)
install(FILES vp9_4k.webm DESTINATION usr/Tests/LibVideo)
install(FILES vp9_clamp_reference_mvs.webm DESTINATION usr/Tests/LibVideo)
install(FILES vp9_oob_blocks.webm DESTINATION usr/Tests/LibVideo)
install(FILES master_elements_containing_crc32.mkv DESTINATION usr/Tests/LibVideo)

View file

@ -1,4 +1,4 @@
## vp9_clamp_reference_mvs.webm
## vp9_clamp_reference_mvs.webm & master_elements_containing_crc32.mkv
Licensed under [Creative Commons Attribution 3.0](http://creativecommons.org/licenses/by/3.0/)\
(c) copyright 2008, Blender Foundation / [www.bigbuckbunny.org](https://www.bigbuckbunny.org)

View file

@ -0,0 +1,25 @@
/*
* Copyright (c) 2023, Gregory Bertilson <zaggy1024@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibTest/TestCase.h>
#include <LibVideo/Containers/Matroska/Reader.h>
TEST_CASE(master_elements_containing_crc32)
{
auto matroska_reader = MUST(Video::Matroska::Reader::from_file("master_elements_containing_crc32.mkv"sv));
u64 video_track = 0;
MUST(matroska_reader.for_each_track_of_type(Video::Matroska::TrackEntry::TrackType::Video, [&](Video::Matroska::TrackEntry const& track_entry) -> Video::DecoderErrorOr<IterationDecision> {
video_track = track_entry.track_number();
return IterationDecision::Break;
}));
VERIFY(video_track == 1);
auto iterator = MUST(matroska_reader.create_sample_iterator(video_track));
MUST(iterator.next_block());
MUST(matroska_reader.seek_to_random_access_point(iterator, Duration::from_seconds(7)));
MUST(iterator.next_block());
}

Binary file not shown.