v4l2transform: don't segfault if flushed without pools
authorPhilipp Zabel <p.zabel@pengutronix.de>
Fri, 1 Mar 2019 13:58:24 +0000 (14:58 +0100)
committerNicolas Dufresne <nicolas@ndufresne.ca>
Sun, 17 Mar 2019 13:17:21 +0000 (13:17 +0000)
The v4l2output and v4l2capture v4l2objects can have pool == NULL if they
have been stopped before.

sys/v4l2/gstv4l2transform.c

index 74b1a0f..70294c1 100644 (file)
@@ -991,8 +991,10 @@ gst_v4l2_transform_sink_event (GstBaseTransform * trans, GstEvent * event)
       GST_DEBUG_OBJECT (self, "flush stop");
       gst_v4l2_object_unlock_stop (self->v4l2capture);
       gst_v4l2_object_unlock_stop (self->v4l2output);
-      gst_v4l2_buffer_pool_flush (self->v4l2output->pool);
-      gst_v4l2_buffer_pool_flush (self->v4l2capture->pool);
+      if (self->v4l2output->pool)
+        gst_v4l2_buffer_pool_flush (self->v4l2output->pool);
+      if (self->v4l2capture->pool)
+        gst_v4l2_buffer_pool_flush (self->v4l2capture->pool);
       break;
     default:
       break;