OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.media; | 5 package org.chromium.media; |
6 | 6 |
7 import android.annotation.TargetApi; | 7 import android.annotation.TargetApi; |
8 import android.media.AudioFormat; | 8 import android.media.AudioFormat; |
9 import android.media.AudioManager; | 9 import android.media.AudioManager; |
10 import android.media.AudioTrack; | 10 import android.media.AudioTrack; |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
219 } | 219 } |
220 | 220 |
221 if (info.mediaCodec == null) return null; | 221 if (info.mediaCodec == null) return null; |
222 | 222 |
223 return new MediaCodecBridge(info.mediaCodec, mime, info.supportsAdaptive Playback); | 223 return new MediaCodecBridge(info.mediaCodec, mime, info.supportsAdaptive Playback); |
224 } | 224 } |
225 | 225 |
226 @CalledByNative | 226 @CalledByNative |
227 private void release() { | 227 private void release() { |
228 try { | 228 try { |
229 Log.w(TAG, "calling MediaCodec.release() on " + mMediaCodec.getName( )); | 229 String codecName = "unknown"; |
230 if (Build.VERSION.SDK_INT >= Build.VERSION.JELLY_BEAN_MR2) | |
watk
2016/06/30 00:38:20
Needs to be Build.VERSION_CODES.JELLY_BEAN_MR2
DaleCurtis
2016/06/30 00:59:26
Heh, impressed that's the only error given I wrote
| |
231 codecName = mMediaCodec.getName(); | |
232 Log.w(TAG, "calling MediaCodec.release() on " + codecName); | |
230 mMediaCodec.release(); | 233 mMediaCodec.release(); |
231 } catch (IllegalStateException e) { | 234 } catch (IllegalStateException e) { |
232 // The MediaCodec is stuck in a wrong state, possibly due to losing | 235 // The MediaCodec is stuck in a wrong state, possibly due to losing |
233 // the surface. | 236 // the surface. |
234 Log.e(TAG, "Cannot release media codec", e); | 237 Log.e(TAG, "Cannot release media codec", e); |
235 } | 238 } |
236 mMediaCodec = null; | 239 mMediaCodec = null; |
237 if (mAudioTrack != null) { | 240 if (mAudioTrack != null) { |
238 mAudioTrack.release(); | 241 mAudioTrack.release(); |
239 } | 242 } |
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
743 case 8: | 746 case 8: |
744 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { | 747 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { |
745 return AudioFormat.CHANNEL_OUT_7POINT1_SURROUND; | 748 return AudioFormat.CHANNEL_OUT_7POINT1_SURROUND; |
746 } else { | 749 } else { |
747 return AudioFormat.CHANNEL_OUT_7POINT1; | 750 return AudioFormat.CHANNEL_OUT_7POINT1; |
748 } | 751 } |
749 default: | 752 default: |
750 return AudioFormat.CHANNEL_OUT_DEFAULT; | 753 return AudioFormat.CHANNEL_OUT_DEFAULT; |
751 } | 754 } |
752 } | 755 } |
753 | |
754 /** | |
755 * Return true if and only if this codec is a software codec. | |
756 */ | |
757 @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) | |
758 @CalledByNative | |
759 private boolean isSoftwareCodec() { | |
760 boolean result = false; | |
761 try { | |
762 result = MediaCodecUtil.isSoftwareCodec(mMediaCodec.getName()); | |
763 } catch (Exception e) { | |
764 Log.e(TAG, "Cannot determine software codec", e); | |
765 } | |
766 return result; | |
767 } | |
768 } | 756 } |
OLD | NEW |