| Index: source/libvpx/test/decode_test_driver.cc
|
| ===================================================================
|
| --- source/libvpx/test/decode_test_driver.cc (revision 290053)
|
| +++ source/libvpx/test/decode_test_driver.cc (working copy)
|
| @@ -67,25 +67,34 @@
|
| const vpx_codec_dec_cfg_t &dec_cfg) {
|
| Decoder* const decoder = codec_->CreateDecoder(dec_cfg, 0);
|
| ASSERT_TRUE(decoder != NULL);
|
| + bool end_of_file = false;
|
|
|
| // Decode frames.
|
| - for (video->Begin(); !::testing::Test::HasFailure() && video->cxdata();
|
| + for (video->Begin(); !::testing::Test::HasFailure() && !end_of_file;
|
| video->Next()) {
|
| PreDecodeFrameHook(*video, decoder);
|
|
|
| vpx_codec_stream_info_t stream_info;
|
| stream_info.sz = sizeof(stream_info);
|
| - const vpx_codec_err_t res_peek = decoder->PeekStream(video->cxdata(),
|
| - video->frame_size(),
|
| - &stream_info);
|
| - HandlePeekResult(decoder, video, res_peek);
|
| - ASSERT_FALSE(::testing::Test::HasFailure());
|
|
|
| - vpx_codec_err_t res_dec = decoder->DecodeFrame(video->cxdata(),
|
| - video->frame_size());
|
| - if (!HandleDecodeResult(res_dec, *video, decoder))
|
| - break;
|
| + if (video->cxdata() != NULL) {
|
| + const vpx_codec_err_t res_peek = decoder->PeekStream(video->cxdata(),
|
| + video->frame_size(),
|
| + &stream_info);
|
| + HandlePeekResult(decoder, video, res_peek);
|
| + ASSERT_FALSE(::testing::Test::HasFailure());
|
|
|
| + vpx_codec_err_t res_dec = decoder->DecodeFrame(video->cxdata(),
|
| + video->frame_size());
|
| + if (!HandleDecodeResult(res_dec, *video, decoder))
|
| + break;
|
| + } else {
|
| + // Signal end of the file to the decoder.
|
| + const vpx_codec_err_t res_dec = decoder->DecodeFrame(NULL, 0);
|
| + ASSERT_EQ(VPX_CODEC_OK, res_dec) << decoder->DecodeError();
|
| + end_of_file = true;
|
| + }
|
| +
|
| DxDataIterator dec_iter = decoder->GetDxData();
|
| const vpx_image_t *img = NULL;
|
|
|
|
|