Cleanup after codec runner

Make sure both libva and magma cleanup functions are called before the
process exists.

Change-Id: I0b799ab2a0a628b988b920f327769318f3278894
Reviewed-on: https://fuchsia-review.googlesource.com/c/third_party/github.com/intel/media-driver/+/694816
Reviewed-by: John Bauman <jbauman@google.com>
diff --git a/fuchsia/main.cc b/fuchsia/main.cc
index e5ecd9a..d324398 100644
--- a/fuchsia/main.cc
+++ b/fuchsia/main.cc
@@ -17,10 +17,17 @@
     return -1;
   }
 
-  CodecRunnerApp<CodecAdapterVaApiDecoder, CodecAdapterVaApiEncoder> codec_runner;
-  codec_runner.Init();
-  codec_runner.Serve();
-  codec_runner.Run();
+  {
+    CodecRunnerApp<CodecAdapterVaApiDecoder, CodecAdapterVaApiEncoder> codec_runner;
+    codec_runner.Init();
+    codec_runner.Serve();
+    codec_runner.Run();
+  }  // ~codec_runner
+
+  if (!VADisplayWrapper::DestroySingleton()) {
+    fprintf(stderr, "Failed to terminate VADisplay\n");
+    return -1;
+  }
 
   return 0;
 }