Commit a2844f29 authored by He Junyan's avatar He Junyan Committed by Tim-Philipp Müller
Browse files

x265: Fix a deadlock when failing to create the x265enc.

The GST_ELEMENT_ERROR will call the gst_object_get_path_string and
use gst_object_get_parent to get the full object path name, which
needs to lock the object. But we are already in a locked context and
so this will cause a deadlock, the pipeline can not exit normally.

Part-of: <gstreamer/gst-plugins-bad!2460>
parent ff04bd8c
......@@ -980,8 +980,7 @@ gst_x265_enc_init_encoder_locked (GstX265Enc * encoder)
encoder->x265enc = encoder->api->encoder_open (&encoder->x265param);
if (!encoder->x265enc) {
GST_ELEMENT_ERROR (encoder, STREAM, ENCODE,
("Can not initialize x265 encoder."), (NULL));
GST_ERROR_OBJECT (encoder, "Can not open x265 encoder.");
return FALSE;
}
......@@ -1006,6 +1005,10 @@ gst_x265_enc_init_encoder (GstX265Enc * encoder)
result = gst_x265_enc_init_encoder_locked (encoder);
GST_OBJECT_UNLOCK (encoder);
if (!result)
GST_ELEMENT_ERROR (encoder, STREAM, ENCODE,
("Can not initialize x265 encoder."), (NULL));
return result;
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment