summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrtoy <rtoy@chromium.org>2015-08-05 08:25:05 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-05 15:26:18 +0000
commite5c6af0507d41b3a73fa12dcd42c18855c7cc36b (patch)
treed41a9aa07fdf169c4d315b1f2b620a71a38572b4
parent7dbd379a28368397697b9745133fc0e412a05c66 (diff)
downloadchromium_src-e5c6af0507d41b3a73fa12dcd42c18855c7cc36b.zip
chromium_src-e5c6af0507d41b3a73fa12dcd42c18855c7cc36b.tar.gz
chromium_src-e5c6af0507d41b3a73fa12dcd42c18855c7cc36b.tar.bz2
Catch exceptions from MediaExtractor.readSampleData
MediaExtractor.readSampleData can cause exceptions. Catch them and return, indicating that decoding failed. BUG=514896 TEST=run the test from the bug report. Review URL: https://codereview.chromium.org/1271013003 Cr-Commit-Position: refs/heads/master@{#341899}
-rw-r--r--media/base/android/java/src/org/chromium/media/WebAudioMediaCodecBridge.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/media/base/android/java/src/org/chromium/media/WebAudioMediaCodecBridge.java b/media/base/android/java/src/org/chromium/media/WebAudioMediaCodecBridge.java
index a40ba7f..abc394c 100644
--- a/media/base/android/java/src/org/chromium/media/WebAudioMediaCodecBridge.java
+++ b/media/base/android/java/src/org/chromium/media/WebAudioMediaCodecBridge.java
@@ -181,7 +181,16 @@ class WebAudioMediaCodecBridge {
if (inputBufIndex >= 0) {
ByteBuffer dstBuf = codecInputBuffers[inputBufIndex];
- int sampleSize = extractor.readSampleData(dstBuf, 0);
+ int sampleSize;
+
+ try {
+ sampleSize = extractor.readSampleData(dstBuf, 0);
+ } catch (Exception e) {
+ Log.w(TAG, "readSampleData failed.");
+ decodedSuccessfully = false;
+ break;
+ }
+
long presentationTimeMicroSec = 0;
if (sampleSize < 0) {