diff --git a/test/encoder_parms_get_to_decoder.cc b/test/encoder_parms_get_to_decoder.cc
index 4c04869..ca6a24e 100644
--- a/test/encoder_parms_get_to_decoder.cc
+++ b/test/encoder_parms_get_to_decoder.cc
@@ -134,12 +134,11 @@
 TEST_P(AvxEncoderParmsGetToDecoder, BitstreamParms) {
   init_flags_ = AOM_CODEC_USE_PSNR;
 
-  libaom_test::VideoSource *const video =
-      new libaom_test::Y4mVideoSource(test_video_.name, 0, test_video_.frames);
-  ASSERT_TRUE(video != NULL);
+  testing::internal::scoped_ptr<libaom_test::VideoSource> video(
+      new libaom_test::Y4mVideoSource(test_video_.name, 0, test_video_.frames));
+  ASSERT_TRUE(video.get() != NULL);
 
-  ASSERT_NO_FATAL_FAILURE(RunLoop(video));
-  delete video;
+  ASSERT_NO_FATAL_FAILURE(RunLoop(video.get()));
 }
 
 AV1_INSTANTIATE_TEST_CASE(AvxEncoderParmsGetToDecoder,
diff --git a/test/end_to_end_test.cc b/test/end_to_end_test.cc
index 59b896b..dca7e49 100644
--- a/test/end_to_end_test.cc
+++ b/test/end_to_end_test.cc
@@ -171,20 +171,20 @@
   init_flags_ = AOM_CODEC_USE_PSNR;
   if (cfg_.g_bit_depth > 8) init_flags_ |= AOM_CODEC_USE_HIGHBITDEPTH;
 
-  libaom_test::VideoSource *video;
+  testing::internal::scoped_ptr<libaom_test::VideoSource> video;
   if (is_extension_y4m(test_video_param_.filename)) {
-    video =
-        new libaom_test::Y4mVideoSource(test_video_param_.filename, 0, kFrames);
+    video.reset(new libaom_test::Y4mVideoSource(test_video_param_.filename, 0,
+                                                kFrames));
   } else {
-    video = new libaom_test::YUVVideoSource(test_video_param_.filename,
-                                            test_video_param_.fmt, kWidth,
-                                            kHeight, kFramerate, 1, 0, kFrames);
+    video.reset(new libaom_test::YUVVideoSource(
+        test_video_param_.filename, test_video_param_.fmt, kWidth, kHeight,
+        kFramerate, 1, 0, kFrames));
   }
+  ASSERT_TRUE(video.get() != NULL);
 
-  ASSERT_NO_FATAL_FAILURE(RunLoop(video));
+  ASSERT_NO_FATAL_FAILURE(RunLoop(video.get()));
   const double psnr = GetAveragePsnr();
   EXPECT_GT(psnr, GetPsnrThreshold());
-  delete (video);
 }
 
 AV1_INSTANTIATE_TEST_CASE(EndToEndTestLarge,
