mkvmuxer_tests: Add Projection element test.
Change-Id: I9a1e56d0846f43851ed0430ec52e2d7b816661fc
This commit is contained in:
parent
1e0a8eaa3c
commit
24fb44aa1a
@ -845,6 +845,50 @@ TEST_F(MuxerTest, Colour) {
|
||||
EXPECT_TRUE(CompareFiles(GetTestFilePath("colour.webm"), filename_));
|
||||
}
|
||||
|
||||
TEST_F(MuxerTest, Projection) {
|
||||
EXPECT_TRUE(SegmentInit(false, false, false));
|
||||
AddVideoTrack();
|
||||
|
||||
mkvmuxer::Projection muxer_proj;
|
||||
muxer_proj.set_type(mkvmuxer::Projection::kRectangular);
|
||||
muxer_proj.set_pose_yaw(1);
|
||||
muxer_proj.set_pose_pitch(2);
|
||||
muxer_proj.set_pose_roll(3);
|
||||
const uint8_t muxer_proj_private[1] = {4};
|
||||
const uint64_t muxer_proj_private_length = 1;
|
||||
ASSERT_TRUE(muxer_proj.SetProjectionPrivate(&muxer_proj_private[0],
|
||||
muxer_proj_private_length));
|
||||
|
||||
VideoTrack* const video_track =
|
||||
static_cast<VideoTrack*>(segment_.GetTrackByNumber(kVideoTrackNumber));
|
||||
ASSERT_TRUE(video_track != nullptr);
|
||||
ASSERT_TRUE(video_track->SetProjection(muxer_proj));
|
||||
ASSERT_NO_FATAL_FAILURE(AddDummyFrameAndFinalize(kVideoTrackNumber));
|
||||
|
||||
mkvparser::Segment* segment = nullptr;
|
||||
ASSERT_TRUE(ParseMkvFileReleaseSegment(filename_, &segment));
|
||||
std::unique_ptr<mkvparser::Segment> segment_ptr(segment);
|
||||
|
||||
const mkvparser::VideoTrack* const parser_track =
|
||||
static_cast<const mkvparser::VideoTrack*>(
|
||||
segment_ptr->GetTracks()->GetTrackByIndex(0));
|
||||
|
||||
const mkvparser::Projection* const parser_proj =
|
||||
parser_track->GetProjection();
|
||||
ASSERT_TRUE(parser_proj != nullptr);
|
||||
EXPECT_FLOAT_EQ(muxer_proj.pose_yaw(), parser_proj->pose_yaw);
|
||||
EXPECT_FLOAT_EQ(muxer_proj.pose_pitch(), parser_proj->pose_pitch);
|
||||
EXPECT_FLOAT_EQ(muxer_proj.pose_roll(), parser_proj->pose_roll);
|
||||
ASSERT_TRUE(parser_proj->private_data != nullptr);
|
||||
EXPECT_EQ(static_cast<size_t>(muxer_proj.private_data_length()),
|
||||
parser_proj->private_data_length);
|
||||
|
||||
EXPECT_EQ(muxer_proj.private_data()[0], parser_proj->private_data[0]);
|
||||
typedef mkvparser::Projection::ProjectionType ParserProjType;
|
||||
EXPECT_EQ(static_cast<ParserProjType>(muxer_proj.type()), parser_proj->type);
|
||||
EXPECT_TRUE(CompareFiles(GetTestFilePath("projection.webm"), filename_));
|
||||
}
|
||||
|
||||
} // namespace test
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
|
BIN
testing/testdata/projection.webm
vendored
Normal file
BIN
testing/testdata/projection.webm
vendored
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user