media: release codec in the case of exception
Bug: 21171205
Change-Id: I804d9b29d965d0b1f2eca4eedf85b087ebb7b4a0
diff --git a/tests/tests/media/src/android/media/cts/ResourceManagerTestActivityBase.java b/tests/tests/media/src/android/media/cts/ResourceManagerTestActivityBase.java
index 3e0b111..38d1a92 100644
--- a/tests/tests/media/src/android/media/cts/ResourceManagerTestActivityBase.java
+++ b/tests/tests/media/src/android/media/cts/ResourceManagerTestActivityBase.java
@@ -156,16 +156,18 @@
CodecCapabilities caps = info.getCapabilitiesForType(MIME);
VideoCapabilities vcaps = caps.getVideoCapabilities();
MediaFormat format = getTestFormat(vcaps, securePlayback);
+ MediaCodec codec = null;
for (int i = mCodecs.size(); i < max; ++i) {
try {
Log.d(TAG, "Create codec " + name + " #" + i);
- MediaCodec codec = MediaCodec.createByCodecName(name);
+ codec = MediaCodec.createByCodecName(name);
codec.setCallback(mCallback);
Log.d(TAG, "Configure codec " + format);
codec.configure(format, null, null, 0);
Log.d(TAG, "Start codec " + format);
codec.start();
mCodecs.add(codec);
+ codec = null;
} catch (IllegalArgumentException e) {
Log.d(TAG, "IllegalArgumentException " + e.getMessage());
break;
@@ -177,6 +179,11 @@
break;
}
}
+ if (codec != null) {
+ Log.d(TAG, "release codec");
+ codec.release();
+ codec = null;
+ }
}
protected void finishWithResult(int result) {