[vlc-commits] mediacodec: fix crash when color-format is invalid

Thomas Guillem git at videolan.org
Fri Oct 24 16:01:40 CEST 2014


vlc | branch: master | Thomas Guillem <tom at gllm.fr> | Thu Oct 23 07:01:21 2014 +0000| [40aa75316d6f3edc457354ac26295e292a8b1f9f] | committer: Jean-Baptiste Kempf

mediacodec: fix crash when color-format is invalid

Fail if GetVlcChromaFormat return 0.
(It'll throw a HardwareAccelerationError)

Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=40aa75316d6f3edc457354ac26295e292a8b1f9f
---

 modules/codec/omxil/android_mediacodec.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/modules/codec/omxil/android_mediacodec.c b/modules/codec/omxil/android_mediacodec.c
index 53b8143..6d204d7 100644
--- a/modules/codec/omxil/android_mediacodec.c
+++ b/modules/codec/omxil/android_mediacodec.c
@@ -842,8 +842,14 @@ static void GetOutput(decoder_t *p_dec, JNIEnv *env, picture_t **pp_pic, jlong t
                     sar_den = p_dec->fmt_in.video.i_sar_den;
                 }
                 jni_SetAndroidSurfaceSizeEnv(env, width, height, width, height, sar_num, sar_den);
-            } else
-                GetVlcChromaFormat(p_sys->pixel_format, &p_dec->fmt_out.i_codec, &name);
+            } else {
+                if (!GetVlcChromaFormat(p_sys->pixel_format,
+                                        &p_dec->fmt_out.i_codec, &name)) {
+                    msg_Err(p_dec, "color-format not recognized");
+                    p_sys->error_state = true;
+                    return;
+                }
+            }
 
             msg_Dbg(p_dec, "output: %d %s, %dx%d stride %d %d, crop %d %d %d %d",
                     p_sys->pixel_format, name, width, height, p_sys->stride, p_sys->slice_height,



More information about the vlc-commits mailing list