diff --git a/gst-plugin-file/src/filesink.rs b/gst-plugin-file/src/filesink.rs index 3796132f..b1330808 100644 --- a/gst-plugin-file/src/filesink.rs +++ b/gst-plugin-file/src/filesink.rs @@ -111,12 +111,12 @@ impl Sink for FileSink { } fn render(&mut self, buffer: &Buffer) -> Result<(), FlowError> { - // FIXME: Because we borrow streaming state mutably below - let logger = self.logger.clone(); + let logger = &self.logger; + let streaming_state = &mut self.streaming_state; trace!(logger, "Rendering {:?}", buffer); - let (file, position) = match self.streaming_state { + let (file, position) = match *streaming_state { StreamingState::Started { ref mut file, ref mut position, diff --git a/gst-plugin-file/src/filesrc.rs b/gst-plugin-file/src/filesrc.rs index 8a4657a8..01f3dfa5 100644 --- a/gst-plugin-file/src/filesrc.rs +++ b/gst-plugin-file/src/filesrc.rs @@ -120,10 +120,10 @@ impl Source for FileSrc { } fn fill(&mut self, offset: u64, _: u32, buffer: &mut Buffer) -> Result<(), FlowError> { - // FIXME: Because we borrow streaming state mutably below - let logger = self.logger.clone(); + let logger = &self.logger; + let streaming_state = &mut self.streaming_state; - let (file, position) = match self.streaming_state { + let (file, position) = match *streaming_state { StreamingState::Started { ref mut file, ref mut position,