Commit c5fda684 authored by He Junyan's avatar He Junyan Committed by GStreamer Marge Bot
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: <!2451>
parent 34c81d13
Pipeline #377728 waiting for manual action with stages
in 1 minute and 2 seconds
......@@ -986,8 +986,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;
}
......@@ -1012,6 +1011,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;
}
......
Markdown is supported
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