Bug 1296531 - Add gtest for a VideoTrackEncoder suspended throughout the entire recording. r=jesup

MozReview-Commit-ID: DrUOijuqlVu

--HG--
extra : rebase_source : f1c9dfd215e20b51c3696db3f005afdfabea0b80
This commit is contained in:
Andreas Pehrson 2017-01-30 18:11:08 +01:00
parent 9dfeeb0285
commit dfdfcbeb19

View File

@ -699,6 +699,43 @@ TEST(VP8VideoTrackEncoder, SuspendedUntilEnd)
EXPECT_EQ(pointOne, totalDuration);
}
// Test that ending a track that was always suspended works.
TEST(VP8VideoTrackEncoder, AlwaysSuspended)
{
// Initiate VP8 encoder
TestVP8TrackEncoder encoder;
InitParam param = {true, 640, 480};
encoder.TestInit(param);
// Suspend and then pass a frame with duration 2s.
YUVBufferGenerator generator;
generator.Init(mozilla::gfx::IntSize(640, 480));
encoder.Suspend();
VideoSegment segment;
segment.AppendFrame(generator.GenerateI420Image(),
mozilla::StreamTime(180000), // 2s
generator.GetSize(),
PRINCIPAL_HANDLE_NONE,
false,
TimeStamp::Now());
encoder.AppendVideoSegment(Move(segment));
encoder.NotifyCurrentTime(180000);
encoder.NotifyEndOfStream();
EncodedFrameContainer container;
ASSERT_TRUE(NS_SUCCEEDED(encoder.GetEncodedTrack(container)));
EXPECT_TRUE(encoder.IsEncodingComplete());
// Verify that we have one encoded frames and a total duration of 0.1s.
const uint64_t none = 0;
EXPECT_EQ(none, container.GetEncodedFrames().Length());
}
// EOS test
TEST(VP8VideoTrackEncoder, EncodeComplete)
{