x264enc: Check if we have an input state before using it
authorSebastian Dröge <slomo@circular-chaos.org>
Wed, 4 Sep 2013 14:32:43 +0000 (16:32 +0200)
committerSebastian Dröge <slomo@circular-chaos.org>
Wed, 4 Sep 2013 14:33:18 +0000 (16:33 +0200)
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

ext/x264/gstx264enc.c

index 1be3ddf8688f65f9671794f70b250ec4c34ec08e..29b4c21cea0d0a36570dce04d368d3c6b9d631d2 100644 (file)
@@ -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);