diff --git a/net/mpegtslive/src/mpegtslive/imp.rs b/net/mpegtslive/src/mpegtslive/imp.rs
index 4db891cefafcb253d848401ee8ef2e9509efb11c..b2911e3dcd293c8f2bf955c8f7c3c3172f95c1e9 100644
--- a/net/mpegtslive/src/mpegtslive/imp.rs
+++ b/net/mpegtslive/src/mpegtslive/imp.rs
@@ -747,6 +747,8 @@ impl MpegTsLiveSource {
             buffer.set_dts(new_pts);
         };
 
+        drop(state);
+
         gst::ProxyPad::chain_default(pad, Some(&*self.obj()), buffer)
     }
 
@@ -801,6 +803,8 @@ impl MpegTsLiveSource {
             ControlFlow::Continue(Some(buffer))
         });
 
+        drop(state);
+
         gst::ProxyPad::chain_list_default(pad, Some(&*self.obj()), bufferlist)
     }
 }