webrtc: Clean up pad block allocs on dispose.

Release references in pad blocks and release the memory in the
dispose function too, in case the state change doesn't get
run (because calling the parent state change fails).
diff --git a/ext/webrtc/transportsendbin.c b/ext/webrtc/transportsendbin.c
index daddd3b..3a9b5c6 100644
--- a/ext/webrtc/transportsendbin.c
+++ b/ext/webrtc/transportsendbin.c
@@ -68,6 +68,8 @@
   PROP_RTCP_MUX,
 };
 
+static void cleanup_blocks (TransportSendBin * send);
+
 static void
 _set_rtcp_mux (TransportSendBin * send, gboolean rtcp_mux)
 {
@@ -265,27 +267,13 @@
     case GST_STATE_CHANGE_READY_TO_NULL:{
       GstElement *elem;
 
-      if (send->rtp_block)
-        _free_pad_block (send->rtp_block);
-      send->rtp_block = NULL;
-      if (send->rtcp_mux_block)
-        _free_pad_block (send->rtcp_mux_block);
-      send->rtcp_mux_block = NULL;
+      cleanup_blocks (send);
+
       elem = send->stream->transport->dtlssrtpenc;
       gst_element_set_locked_state (elem, FALSE);
-
-      if (send->rtcp_block)
-        _free_pad_block (send->rtcp_block);
-      send->rtcp_block = NULL;
       elem = send->stream->rtcp_transport->dtlssrtpenc;
       gst_element_set_locked_state (elem, FALSE);
 
-      if (send->rtp_nice_block)
-        _free_pad_block (send->rtp_nice_block);
-      send->rtp_nice_block = NULL;
-      if (send->rtcp_nice_block)
-        _free_pad_block (send->rtcp_nice_block);
-      send->rtcp_nice_block = NULL;
       break;
     }
     default:
@@ -423,6 +411,28 @@
 }
 
 static void
+cleanup_blocks (TransportSendBin * send)
+{
+  if (send->rtp_block)
+    _free_pad_block (send->rtp_block);
+  send->rtp_block = NULL;
+  if (send->rtcp_mux_block)
+    _free_pad_block (send->rtcp_mux_block);
+  send->rtcp_mux_block = NULL;
+
+  if (send->rtcp_block)
+    _free_pad_block (send->rtcp_block);
+  send->rtcp_block = NULL;
+
+  if (send->rtp_nice_block)
+    _free_pad_block (send->rtp_nice_block);
+  send->rtp_nice_block = NULL;
+  if (send->rtcp_nice_block)
+    _free_pad_block (send->rtcp_nice_block);
+  send->rtcp_nice_block = NULL;
+}
+
+static void
 transport_send_bin_dispose (GObject * object)
 {
   TransportSendBin *send = TRANSPORT_SEND_BIN (object);
@@ -434,6 +444,7 @@
         rtcp_transport->transport, send);
   }
   send->stream = NULL;
+  cleanup_blocks (send);
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }