diff --git a/examples/main.rs b/examples/main.rs index 701d739..9a098d6 100644 --- a/examples/main.rs +++ b/examples/main.rs @@ -48,7 +48,6 @@ unsafe fn decode_input(demuxer: Demuxer, info: DemuxerInfo) { .setup_decoder(stream, None) .expect("decoder setup failed"); } - info!("{}", decoder); loop_decoder(demuxer, decoder); } diff --git a/src/decode.rs b/src/decode.rs index 0d5daf5..744c675 100644 --- a/src/decode.rs +++ b/src/decode.rs @@ -35,9 +35,9 @@ impl DecoderCodecContext { /// Get the codec name pub fn codec_name(&self) -> String { - let codec_name = unsafe { rstr!(avcodec_get_name((*self.codec).id)) }; + let codec_name = unsafe { rstr!((*(*self).codec).name) }; if self.hw_config.is_null() { - codec_name.to_string() + format!("{}", codec_name) } else { let hw = unsafe { rstr!(av_hwdevice_get_type_name((*self.hw_config).device_type)) }; format!("{}_{}", codec_name, hw) diff --git a/src/lib.rs b/src/lib.rs index ee05b3d..f87b3be 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -38,7 +38,11 @@ macro_rules! cstr { #[macro_export] macro_rules! rstr { ($str:expr) => { - core::ffi::CStr::from_ptr($str).to_str().unwrap() + if !$str.is_null() { + core::ffi::CStr::from_ptr($str).to_str().unwrap() + } else { + "" + } }; }