From a6097fc358baf4538550ece49a16ac3c86f1c65e Mon Sep 17 00:00:00 2001 From: Zhiming Wang Date: Fri, 19 Mar 2021 13:28:36 +0000 Subject: [PATCH] Fix empty names --- src/codec/codec.rs | 10 +++++++++- src/format/context/input.rs | 3 +-- src/format/context/output.rs | 2 +- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/codec/codec.rs b/src/codec/codec.rs index 2ca7222..a1202fc 100644 --- a/src/codec/codec.rs +++ b/src/codec/codec.rs @@ -39,7 +39,15 @@ impl Codec { } pub fn description(&self) -> &str { - unsafe { from_utf8_unchecked(CStr::from_ptr((*self.as_ptr()).long_name).to_bytes()) } + unsafe { + let long_name = (*self.as_ptr()).long_name; + if long_name.is_null() { + "" + } + else { + from_utf8_unchecked(CStr::from_ptr(long_name).to_bytes()) + } + } } pub fn medium(&self) -> media::Type { diff --git a/src/format/context/input.rs b/src/format/context/input.rs index 1c7b572..628d4a7 100644 --- a/src/format/context/input.rs +++ b/src/format/context/input.rs @@ -2,7 +2,6 @@ use std::{ ffi::CString, mem, ops::{Deref, DerefMut}, - ptr, }; use super::{common::Context, destructor}; @@ -199,7 +198,7 @@ pub fn dump(ctx: &Input, index: i32, url: Option<&str>) { av_dump_format( ctx.as_ptr() as *mut _, index, - url.map(|u| u.as_ptr()).unwrap_or(ptr::null()), + url.unwrap_or_else(|| CString::new("").unwrap()).as_ptr(), 0, ); } diff --git a/src/format/context/output.rs b/src/format/context/output.rs index 822cce9..9b3813a 100644 --- a/src/format/context/output.rs +++ b/src/format/context/output.rs @@ -174,7 +174,7 @@ pub fn dump(ctx: &Output, index: i32, url: Option<&str>) { av_dump_format( ctx.as_ptr() as *mut _, index, - url.map(|u| u.as_ptr()).unwrap_or(ptr::null()), + url.unwrap_or_else(|| CString::new("").unwrap()).as_ptr(), 1, ); }