ffmpeg_the_third/codec/parameters/
borrowed.rs1use std::marker::PhantomData;
2use std::ptr::NonNull;
3
4use crate::ffi::*;
5use crate::AsPtr;
6
7pub struct ParametersRef<'p> {
8 ptr: NonNull<AVCodecParameters>,
9 _marker: PhantomData<&'p AVCodecParameters>,
10}
11
12impl<'p> ParametersRef<'p> {
13 pub unsafe fn from_raw(ptr: *const AVCodecParameters) -> Option<Self> {
20 NonNull::new(ptr as *mut _).map(|ptr| Self {
21 ptr,
22 _marker: PhantomData,
23 })
24 }
25
26 pub fn as_ptr(&self) -> *const AVCodecParameters {
30 self.ptr.as_ptr()
31 }
32}
33
34impl<'p> AsPtr<AVCodecParameters> for ParametersRef<'p> {
35 fn as_ptr(&self) -> *const AVCodecParameters {
36 self.ptr.as_ptr()
37 }
38}