Commit abb842d4 authored by Yaowu Xu's avatar Yaowu Xu Committed by Gerrit Code Review
Browse files

Merge "Make test encoder test driver less likely to leak on failure." into nextgenv2

parents 2cd670d1 1c1bc948
...@@ -277,11 +277,11 @@ void EncoderTest::RunLoop(VideoSource *video) { ...@@ -277,11 +277,11 @@ void EncoderTest::RunLoop(VideoSource *video) {
cfg_.g_pass = VPX_RC_LAST_PASS; cfg_.g_pass = VPX_RC_LAST_PASS;
BeginPassHook(pass); BeginPassHook(pass);
Encoder* const encoder = codec_->CreateEncoder(cfg_, deadline_, init_flags_, testing::internal::scoped_ptr<Encoder> encoder(
&stats_); codec_->CreateEncoder(cfg_, deadline_, init_flags_, &stats_));
ASSERT_TRUE(encoder != NULL); ASSERT_TRUE(encoder.get() != NULL);
video->Begin(); ASSERT_NO_FATAL_FAILURE(video->Begin());
encoder->InitEncoder(video); encoder->InitEncoder(video);
ASSERT_FALSE(::testing::Test::HasFatalFailure()); ASSERT_FALSE(::testing::Test::HasFatalFailure());
...@@ -290,7 +290,8 @@ void EncoderTest::RunLoop(VideoSource *video) { ...@@ -290,7 +290,8 @@ void EncoderTest::RunLoop(VideoSource *video) {
// NOTE: fragment decoder and partition encoder are only supported by VP8. // NOTE: fragment decoder and partition encoder are only supported by VP8.
if (init_flags_ & VPX_CODEC_USE_OUTPUT_PARTITION) if (init_flags_ & VPX_CODEC_USE_OUTPUT_PARTITION)
dec_init_flags |= VPX_CODEC_USE_INPUT_FRAGMENTS; dec_init_flags |= VPX_CODEC_USE_INPUT_FRAGMENTS;
Decoder* const decoder = codec_->CreateDecoder(dec_cfg, dec_init_flags, 0); testing::internal::scoped_ptr<Decoder> decoder(
codec_->CreateDecoder(dec_cfg, dec_init_flags, 0));
#if CONFIG_VP10 && CONFIG_EXT_TILE #if CONFIG_VP10 && CONFIG_EXT_TILE
if (decoder->IsVP10()) { if (decoder->IsVP10()) {
// Set dec_cfg.tile_row = -1 and dec_cfg.tile_col = -1 so that the whole // Set dec_cfg.tile_row = -1 and dec_cfg.tile_col = -1 so that the whole
...@@ -305,7 +306,7 @@ void EncoderTest::RunLoop(VideoSource *video) { ...@@ -305,7 +306,7 @@ void EncoderTest::RunLoop(VideoSource *video) {
again = (video->img() != NULL); again = (video->img() != NULL);
PreEncodeFrameHook(video); PreEncodeFrameHook(video);
PreEncodeFrameHook(video, encoder); PreEncodeFrameHook(video, encoder.get());
encoder->EncodeFrame(video, frame_flags_); encoder->EncodeFrame(video, frame_flags_);
CxDataIterator iter = encoder->GetCxData(); CxDataIterator iter = encoder->GetCxData();
...@@ -318,11 +319,11 @@ void EncoderTest::RunLoop(VideoSource *video) { ...@@ -318,11 +319,11 @@ void EncoderTest::RunLoop(VideoSource *video) {
switch (pkt->kind) { switch (pkt->kind) {
case VPX_CODEC_CX_FRAME_PKT: case VPX_CODEC_CX_FRAME_PKT:
has_cxdata = true; has_cxdata = true;
if (decoder && DoDecode()) { if (decoder.get() != NULL && DoDecode()) {
vpx_codec_err_t res_dec = decoder->DecodeFrame( vpx_codec_err_t res_dec = decoder->DecodeFrame(
(const uint8_t*)pkt->data.frame.buf, pkt->data.frame.sz); (const uint8_t*)pkt->data.frame.buf, pkt->data.frame.sz);
if (!HandleDecodeResult(res_dec, *video, decoder)) if (!HandleDecodeResult(res_dec, *video, decoder.get()))
break; break;
has_dxdata = true; has_dxdata = true;
...@@ -344,7 +345,7 @@ void EncoderTest::RunLoop(VideoSource *video) { ...@@ -344,7 +345,7 @@ void EncoderTest::RunLoop(VideoSource *video) {
// Flush the decoder when there are no more fragments. // Flush the decoder when there are no more fragments.
if ((init_flags_ & VPX_CODEC_USE_OUTPUT_PARTITION) && has_dxdata) { if ((init_flags_ & VPX_CODEC_USE_OUTPUT_PARTITION) && has_dxdata) {
const vpx_codec_err_t res_dec = decoder->DecodeFrame(NULL, 0); const vpx_codec_err_t res_dec = decoder->DecodeFrame(NULL, 0);
if (!HandleDecodeResult(res_dec, *video, decoder)) if (!HandleDecodeResult(res_dec, *video, decoder.get()))
break; break;
} }
...@@ -368,10 +369,6 @@ void EncoderTest::RunLoop(VideoSource *video) { ...@@ -368,10 +369,6 @@ void EncoderTest::RunLoop(VideoSource *video) {
EndPassHook(); EndPassHook();
if (decoder)
delete decoder;
delete encoder;
if (!Continue()) if (!Continue())
break; break;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment