media: use small frame size for resource manager test.

also fix a case when secure codec is not aviable.

Bug: 21559495
Change-Id: Ia2bdae7b6be371f3832cf168022f91cce8d78b43
diff --git a/tests/tests/media/src/android/media/cts/ResourceManagerTestActivityBase.java b/tests/tests/media/src/android/media/cts/ResourceManagerTestActivityBase.java
index ace8f82..12c3fd5 100644
--- a/tests/tests/media/src/android/media/cts/ResourceManagerTestActivityBase.java
+++ b/tests/tests/media/src/android/media/cts/ResourceManagerTestActivityBase.java
@@ -34,6 +34,7 @@
     public static final int TYPE_MIX = 2;
 
     protected String TAG;
+    private static final int FRAME_RATE = 10;
     private static final int IFRAME_INTERVAL = 10;  // 10 seconds between I-frames
     private static final String MIME = MediaFormat.MIMETYPE_VIDEO_AVC;
 
@@ -66,16 +67,14 @@
 
     private MediaFormat getTestFormat(CodecCapabilities caps, boolean securePlayback) {
         VideoCapabilities vcaps = caps.getVideoCapabilities();
-        int maxWidth = vcaps.getSupportedWidths().getUpper();
-        int maxHeight = vcaps.getSupportedHeightsFor(maxWidth).getUpper();
-        int maxBitrate = vcaps.getBitrateRange().getUpper();
-        int maxFramerate = vcaps.getSupportedFrameRatesFor(maxWidth, maxHeight)
-                .getUpper().intValue();
+        int width = vcaps.getSupportedWidths().getLower();
+        int height = vcaps.getSupportedHeightsFor(width).getLower();
+        int bitrate = vcaps.getBitrateRange().getLower();
 
-        MediaFormat format = MediaFormat.createVideoFormat(MIME, maxWidth, maxHeight);
+        MediaFormat format = MediaFormat.createVideoFormat(MIME, width, height);
         format.setInteger(MediaFormat.KEY_COLOR_FORMAT, caps.colorFormats[0]);
-        format.setInteger(MediaFormat.KEY_BIT_RATE, maxBitrate);
-        format.setInteger(MediaFormat.KEY_FRAME_RATE, maxFramerate);
+        format.setInteger(MediaFormat.KEY_BIT_RATE, bitrate);
+        format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE);
         format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);
         format.setFeatureEnabled(CodecCapabilities.FEATURE_SecurePlayback, securePlayback);
         return format;
@@ -122,23 +121,27 @@
             Log.d(TAG, "type is: " + type);
         }
 
-        boolean shouldSkip = true;
+        boolean shouldSkip = false;
         boolean securePlayback;
         if (type == TYPE_NONSECURE || type == TYPE_MIX) {
             securePlayback = false;
             MediaCodecInfo info = getTestCodecInfo(securePlayback);
             if (info != null) {
-                shouldSkip = false;
                 allocateCodecs(max, info, securePlayback);
+            } else {
+                shouldSkip = true;
             }
         }
 
-        if (type == TYPE_SECURE || type == TYPE_MIX) {
-            securePlayback = true;
-            MediaCodecInfo info = getTestCodecInfo(securePlayback);
-            if (info != null) {
-                shouldSkip = false;
-                allocateCodecs(max, info, securePlayback);
+        if (!shouldSkip) {
+            if (type == TYPE_SECURE || type == TYPE_MIX) {
+                securePlayback = true;
+                MediaCodecInfo info = getTestCodecInfo(securePlayback);
+                if (info != null) {
+                    allocateCodecs(max, info, securePlayback);
+                } else {
+                    shouldSkip = true;
+                }
             }
         }
 
@@ -190,6 +193,7 @@
             Log.d(TAG, "release codec #" + i);
             mCodecs.get(i).release();
         }
+        mCodecs.clear();
         setResult(result);
         finish();
         Log.d(TAG, "activity finished");