diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2013-09-04 16:32:43 +0200 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2013-09-04 16:33:18 +0200 |
commit | 55037ab411218786a7625e2d8827ae253f4b4909 (patch) | |
tree | daad60a42af4e529004c6b47dafb7237adc560c3 | |
parent | ae45623450e28c8c8bd5017d04605facc27298f3 (diff) |
Flushing might happen before caps were set on the encoder,
which would lead to crashes here.
Thanks to Matej Knopp for analyzing this.
https://bugzilla.gnome.org/show_bug.cgi?id=707414
-rw-r--r-- | ext/x264/gstx264enc.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/x264/gstx264enc.c b/ext/x264/gstx264enc.c index 1be3ddf8..29b4c21c 100644 --- a/ext/x264/gstx264enc.c +++ b/ext/x264/gstx264enc.c @@ -1169,7 +1169,14 @@ static gboolean gst_x264_enc_init_encoder (GstX264Enc * encoder) { guint pass = 0; - GstVideoInfo *info = &encoder->input_state->info; + GstVideoInfo *info; + + if (!encoder->input_state) { + GST_DEBUG_OBJECT (encoder, "Have no input state yet"); + return FALSE; + } + + info = &encoder->input_state->info; /* make sure that the encoder is closed */ gst_x264_enc_close_encoder (encoder); |