]> git.sesse.net Git - vlc/commitdiff
MediaCodec: handle exceptions on Flush
authorJean-Baptiste Kempf <jb@videolan.org>
Wed, 3 Apr 2013 13:13:50 +0000 (15:13 +0200)
committerJean-Baptiste Kempf <jb@videolan.org>
Wed, 3 Apr 2013 13:15:28 +0000 (15:15 +0200)
modules/codec/omxil/android_mediacodec.c

index dd9171e2bc630747b43a71bdd41436fae7995f26..c4b712c23b5cde3efa1715105f9dfa084fa4326b 100644 (file)
@@ -506,8 +506,13 @@ static picture_t *DecodeVideo(decoder_t *p_dec, block_t **pp_block)
 
     if (p_block->i_flags & (BLOCK_FLAG_DISCONTINUITY|BLOCK_FLAG_CORRUPTED)) {
         block_Release(p_block);
-        if (p_sys->decoded)
+        if (p_sys->decoded) {
             (*env)->CallVoidMethod(env, p_sys->codec, p_sys->flush);
+            if ((*env)->ExceptionOccurred(env)) {
+                msg_Warn(p_dec, "Exception occurred in MediaCodec.flush");
+                (*env)->ExceptionClear(env);
+            }
+        }
         p_sys->decoded = 0;
         (*myVm)->DetachCurrentThread(myVm);
         return NULL;