Kaynağa Gözat

Fix auto disposal of pipeline that needs to stay in struct

Sean McNamara 5 yıl önce
ebeveyn
işleme
1e9a52bd6e
1 değiştirilmiş dosya ile 5 ekleme ve 2 silme
  1. 5 2
      playback/src/audio_backend/gstreamer.rs

+ 5 - 2
playback/src/audio_backend/gstreamer.rs

@@ -5,8 +5,10 @@ use gst::prelude::*;
 use gst::*;
 use gst::*;
 use zerocopy::*;
 use zerocopy::*;
 
 
+#[allow(dead_code)]
 pub struct GstreamerSink {
 pub struct GstreamerSink {
-    tx: SyncSender<Vec<u8>>
+    tx: SyncSender<Vec<u8>>,
+    pipeline: gst::Pipeline
 }
 }
 
 
 impl Open for GstreamerSink {
 impl Open for GstreamerSink {
@@ -75,7 +77,8 @@ impl Open for GstreamerSink {
         pipeline.set_state(gst::State::Playing).expect("Unable to set the pipeline to the `Playing` state");
         pipeline.set_state(gst::State::Playing).expect("Unable to set the pipeline to the `Playing` state");
 
 
         GstreamerSink {
         GstreamerSink {
-            tx: tx
+            tx: tx,
+            pipeline: pipeline
         }
         }
     }
     }
 }
 }