Add support for parsing VPx track codec private data.
Currently only the VP9 profile level is supported. http://www.webmproject.org/vp9/profiles/ Change-Id: Iff7238e104621b53fdd51a67d752bd72b2dbbacb
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
#include <iomanip>
|
||||
#include <string>
|
||||
|
||||
#include "common/hdr_util.h"
|
||||
#include "mkvparser/mkvparser.h"
|
||||
#include "mkvparser/mkvreader.h"
|
||||
#include "testing/test_util.h"
|
||||
@@ -662,6 +663,27 @@ TEST_F(ParserTest, StereoModeParsedCorrectly) {
|
||||
EXPECT_EQ(144, video_track->GetDisplayHeight());
|
||||
}
|
||||
|
||||
TEST_F(ParserTest, Vp9CodecProfileTest) {
|
||||
const int kCodecPrivateLength = 3;
|
||||
|
||||
// Test invalid codec private data; all of these should return 0.
|
||||
const uint8_t bad_codec_private[kCodecPrivateLength] = {0, 0, 0};
|
||||
EXPECT_EQ(0, libwebm::ParseVpxCodecPrivate(NULL, kCodecPrivateLength));
|
||||
EXPECT_EQ(0, libwebm::ParseVpxCodecPrivate(&bad_codec_private[0], 0));
|
||||
EXPECT_EQ(0, libwebm::ParseVpxCodecPrivate(&bad_codec_private[0],
|
||||
kCodecPrivateLength));
|
||||
const uint8_t good_codec_private[kCodecPrivateLength] = {1, 1, 11};
|
||||
|
||||
// Test parse of codec private chunks, but lie about length.
|
||||
EXPECT_EQ(0, libwebm::ParseVpxCodecPrivate(&bad_codec_private[0], 0));
|
||||
EXPECT_EQ(0, libwebm::ParseVpxCodecPrivate(&good_codec_private[0], 0));
|
||||
|
||||
// Test a valid codec private; this should return 11.
|
||||
// ID: 1, Length: 1, Profile: 11
|
||||
EXPECT_EQ(11, libwebm::ParseVpxCodecPrivate(&good_codec_private[0],
|
||||
kCodecPrivateLength));
|
||||
}
|
||||
|
||||
} // namespace test
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
|
||||
Reference in New Issue
Block a user