vaapidecode: acquire lock only if the mutex exists.
authorPhilip Lorenz <philip@bithub.de>
Tue, 4 Sep 2012 11:54:19 +0000 (13:54 +0200)
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>
Fri, 7 Sep 2012 11:54:30 +0000 (13:54 +0200)
When playback stops the GstVaapiDecode object is reset into a clean
state. However, surfaces may still be referenced by library users and
unreferencing them after the reset triggers an access to an unset mutex.

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
gst/vaapi/gstvaapidecode.c

index 6980d47..cd2d7f6 100644 (file)
@@ -174,6 +174,9 @@ gst_vaapidecode_update_src_caps(GstVaapiDecode *decode, GstCaps *caps)
 static void
 gst_vaapidecode_release(GstVaapiDecode *decode, GObject *dead_object)
 {
+    if (!decode->decoder_mutex || !decode->decoder_ready)
+        return;
+
     g_mutex_lock(decode->decoder_mutex);
     g_cond_signal(decode->decoder_ready);
     g_mutex_unlock(decode->decoder_mutex);