Index: media/gpu/video_encode_accelerator_unittest.cc |
diff --git a/media/gpu/video_encode_accelerator_unittest.cc b/media/gpu/video_encode_accelerator_unittest.cc |
index ae28ea813655d2e695445076b0b73379b4221862..07a8b1caa3bf8f7f926ef842b5026c7660e14ce4 100644 |
--- a/media/gpu/video_encode_accelerator_unittest.cc |
+++ b/media/gpu/video_encode_accelerator_unittest.cc |
@@ -570,6 +570,9 @@ class H264Validator : public StreamValidator { |
void H264Validator::ProcessStreamBuffer(const uint8_t* stream, size_t size) { |
h264_parser_.SetStream(stream, static_cast<off_t>(size)); |
+ // Run |frame_cb_| for only first nalu. |
+ bool frame_cb_called = false; |
+ |
while (1) { |
H264NALU nalu; |
H264Parser::Result result; |
@@ -590,10 +593,14 @@ void H264Validator::ProcessStreamBuffer(const uint8_t* stream, size_t size) { |
keyframe = true; |
// fallthrough |
case H264NALU::kNonIDRSlice: { |
+ // Stream may contain at most one frame. |
Pawel Osciak
2016/08/26 02:00:45
If we require that, I think we should ASSERT on it
|
ASSERT_TRUE(seen_idr_); |
seen_sps_ = seen_pps_ = false; |
- if (!frame_cb_.Run(keyframe)) |
- return; |
+ if (!frame_cb_called) { |
+ frame_cb_called = true; |
+ if (!frame_cb_.Run(keyframe)) |
+ return; |
+ } |
break; |
} |
@@ -1843,6 +1850,15 @@ INSTANTIATE_TEST_CASE_P(MultipleEncoders, |
false, |
false, |
false))); |
+ |
+#if defined(OS_MACOSX) |
+INSTANTIATE_TEST_CASE_P( |
+ VerifyTimestamp, |
+ VideoEncodeAcceleratorTest, |
+ ::testing::Values( |
+ std::make_tuple(1, false, 0, false, false, false, false, false, true))); |
+#endif // defined(OS_MACOSX) |
+ |
#if defined(OS_WIN) |
INSTANTIATE_TEST_CASE_P( |
ForceBitrate, |