mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2025-09-03 10:23:48 +00:00
audio-buffer: Don't store whether unmapping is necessary in AudioBufferRef
This is already stored as part of the enum discriminant. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1712>
This commit is contained in:
parent
56a6eb2146
commit
10b66eda23
1 changed files with 2 additions and 9 deletions
|
@ -151,7 +151,6 @@ impl<T> AudioBuffer<T> {
|
||||||
pub fn as_audio_buffer_ref(&self) -> AudioBufferRef<&gst::BufferRef> {
|
pub fn as_audio_buffer_ref(&self) -> AudioBufferRef<&gst::BufferRef> {
|
||||||
AudioBufferRef {
|
AudioBufferRef {
|
||||||
audio_buffer: AudioBufferPtr::Borrowed(ptr::NonNull::from(&*self.audio_buffer)),
|
audio_buffer: AudioBufferPtr::Borrowed(ptr::NonNull::from(&*self.audio_buffer)),
|
||||||
unmap: false,
|
|
||||||
phantom: PhantomData,
|
phantom: PhantomData,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -279,7 +278,6 @@ impl AudioBuffer<Writable> {
|
||||||
pub fn as_mut_audio_buffer_ref(&mut self) -> AudioBufferRef<&mut gst::BufferRef> {
|
pub fn as_mut_audio_buffer_ref(&mut self) -> AudioBufferRef<&mut gst::BufferRef> {
|
||||||
AudioBufferRef {
|
AudioBufferRef {
|
||||||
audio_buffer: AudioBufferPtr::Borrowed(ptr::NonNull::from(&mut *self.audio_buffer)),
|
audio_buffer: AudioBufferPtr::Borrowed(ptr::NonNull::from(&mut *self.audio_buffer)),
|
||||||
unmap: false,
|
|
||||||
phantom: PhantomData,
|
phantom: PhantomData,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -292,6 +290,7 @@ impl AudioBuffer<Writable> {
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
enum AudioBufferPtr {
|
enum AudioBufferPtr {
|
||||||
|
// Has to be boxed because it contains self-references
|
||||||
Owned(Box<ffi::GstAudioBuffer>),
|
Owned(Box<ffi::GstAudioBuffer>),
|
||||||
Borrowed(ptr::NonNull<ffi::GstAudioBuffer>),
|
Borrowed(ptr::NonNull<ffi::GstAudioBuffer>),
|
||||||
}
|
}
|
||||||
|
@ -319,9 +318,7 @@ impl ops::DerefMut for AudioBufferPtr {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct AudioBufferRef<T> {
|
pub struct AudioBufferRef<T> {
|
||||||
// Has to be boxed because it contains self-references
|
|
||||||
audio_buffer: AudioBufferPtr,
|
audio_buffer: AudioBufferPtr,
|
||||||
unmap: bool,
|
|
||||||
phantom: PhantomData<T>,
|
phantom: PhantomData<T>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -456,7 +453,6 @@ impl<'a> AudioBufferRef<&'a gst::BufferRef> {
|
||||||
audio_buffer: AudioBufferPtr::Borrowed(ptr::NonNull::new_unchecked(
|
audio_buffer: AudioBufferPtr::Borrowed(ptr::NonNull::new_unchecked(
|
||||||
audio_buffer as *mut _,
|
audio_buffer as *mut _,
|
||||||
)),
|
)),
|
||||||
unmap: false,
|
|
||||||
phantom: PhantomData,
|
phantom: PhantomData,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -484,7 +480,6 @@ impl<'a> AudioBufferRef<&'a gst::BufferRef> {
|
||||||
} else {
|
} else {
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
audio_buffer: AudioBufferPtr::Owned(audio_buffer),
|
audio_buffer: AudioBufferPtr::Owned(audio_buffer),
|
||||||
unmap: true,
|
|
||||||
phantom: PhantomData,
|
phantom: PhantomData,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -504,7 +499,6 @@ impl<'a> AudioBufferRef<&'a mut gst::BufferRef> {
|
||||||
|
|
||||||
Borrowed::new(Self {
|
Borrowed::new(Self {
|
||||||
audio_buffer: AudioBufferPtr::Borrowed(ptr::NonNull::new_unchecked(audio_buffer)),
|
audio_buffer: AudioBufferPtr::Borrowed(ptr::NonNull::new_unchecked(audio_buffer)),
|
||||||
unmap: false,
|
|
||||||
phantom: PhantomData,
|
phantom: PhantomData,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -532,7 +526,6 @@ impl<'a> AudioBufferRef<&'a mut gst::BufferRef> {
|
||||||
} else {
|
} else {
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
audio_buffer: AudioBufferPtr::Owned(audio_buffer),
|
audio_buffer: AudioBufferPtr::Owned(audio_buffer),
|
||||||
unmap: true,
|
|
||||||
phantom: PhantomData,
|
phantom: PhantomData,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -594,7 +587,7 @@ impl<T> Drop for AudioBufferRef<T> {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
unsafe {
|
unsafe {
|
||||||
if self.unmap {
|
if matches!(self.audio_buffer, AudioBufferPtr::Owned(..)) {
|
||||||
ffi::gst_audio_buffer_unmap(&mut *self.audio_buffer);
|
ffi::gst_audio_buffer_unmap(&mut *self.audio_buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue