Transcoder: Fixed codec leaks on cancel.

When transcoding was cancelled, the VideoTrackTranscoder
held strong references to itself through its internal
codec handler work queue.
This commit clears the work queue and blocks new messages
from being stored on cancel.

Test: Unit test and address sanitizer.
Fixes: 168522198
Change-Id: I9c3a4469378a91a492c6872bafc6d494dadf2853
diff --git a/media/libmediatranscoding/transcoder/Android.bp b/media/libmediatranscoding/transcoder/Android.bp
index c153a42..258ed9a 100644
--- a/media/libmediatranscoding/transcoder/Android.bp
+++ b/media/libmediatranscoding/transcoder/Android.bp
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-cc_library_shared {
-    name: "libmediatranscoder",
+cc_defaults {
+    name: "mediatranscoder_defaults",
 
     srcs: [
         "MediaSampleQueue.cpp",
@@ -60,3 +60,17 @@
         cfi: true,
     },
 }
+
+cc_library_shared {
+    name: "libmediatranscoder",
+    defaults: ["mediatranscoder_defaults"],
+}
+
+cc_library_shared {
+    name: "libmediatranscoder_asan",
+    defaults: ["mediatranscoder_defaults"],
+
+    sanitize: {
+        address: true,
+    },
+}