diff --git a/src/codec/context.rs b/src/codec/context.rs index 760d37b..2202d22 100644 --- a/src/codec/context.rs +++ b/src/codec/context.rs @@ -68,18 +68,6 @@ impl Context { } } - pub fn bit_rate(&self) -> usize { - unsafe { - (*self.as_ptr()).bit_rate as usize - } - } - - pub fn delay(&self) -> usize { - unsafe { - (*self.as_ptr()).delay as usize - } - } - pub fn compliance(&mut self, value: Compliance) { unsafe { (*self.as_mut_ptr()).strict_std_compliance = value.into(); diff --git a/src/codec/decoder/mod.rs b/src/codec/decoder/mod.rs index f02e78f..cff353b 100644 --- a/src/codec/decoder/mod.rs +++ b/src/codec/decoder/mod.rs @@ -24,7 +24,7 @@ use std::ops::{Deref, DerefMut}; use ffi::*; use super::{Id, Context}; -use ::{Codec, Error, Dictionary}; +use ::{Codec, Error, Discard, Dictionary}; pub struct Decoder(pub Context); @@ -83,6 +83,36 @@ impl Decoder { Err(Error::DecoderNotFound) } } + + pub fn conceal(&mut self, value: Conceal) { + unsafe { + (*self.as_mut_ptr()).error_concealment = value.bits(); + } + } + + pub fn check(&mut self, value: Check) { + unsafe { + (*self.as_mut_ptr()).err_recognition = value.bits(); + } + } + + pub fn skip_loop_filter(&mut self, value: Discard) { + unsafe { + (*self.as_mut_ptr()).skip_loop_filter = value.into(); + } + } + + pub fn skip_idct(&mut self, value: Discard) { + unsafe { + (*self.as_mut_ptr()).skip_idct = value.into(); + } + } + + pub fn skip_frame(&mut self, value: Discard) { + unsafe { + (*self.as_mut_ptr()).skip_frame = value.into(); + } + } } impl Deref for Decoder { diff --git a/src/codec/decoder/opened.rs b/src/codec/decoder/opened.rs index 4228331..789a9d4 100644 --- a/src/codec/decoder/opened.rs +++ b/src/codec/decoder/opened.rs @@ -1,10 +1,9 @@ use std::ops::{Deref, DerefMut}; -use std::slice::from_raw_parts; use ffi::*; -use super::{Conceal, Check, Video, Audio, Subtitle, Decoder}; +use super::{Video, Audio, Subtitle, Decoder}; use ::codec::Profile; -use ::{Error, Discard, Rational}; +use ::{Error, Rational}; use ::media; pub struct Opened(pub Decoder); @@ -37,15 +36,15 @@ impl Opened { } } - pub fn conceal(&mut self, value: Conceal) { + pub fn bit_rate(&self) -> usize { unsafe { - (*self.as_mut_ptr()).error_concealment = value.bits(); + (*self.as_ptr()).bit_rate as usize } } - pub fn check(&mut self, value: Check) { + pub fn delay(&self) -> usize { unsafe { - (*self.as_mut_ptr()).err_recognition = value.bits(); + (*self.as_ptr()).delay as usize } } @@ -55,30 +54,6 @@ impl Opened { } } - pub fn skip_loop_filter(&mut self, value: Discard) { - unsafe { - (*self.as_mut_ptr()).skip_loop_filter = value.into(); - } - } - - pub fn skip_idct(&mut self, value: Discard) { - unsafe { - (*self.as_mut_ptr()).skip_idct = value.into(); - } - } - - pub fn skip_frame(&mut self, value: Discard) { - unsafe { - (*self.as_mut_ptr()).skip_frame = value.into(); - } - } - - pub fn subtitle_header(&self) -> &[u8] { - unsafe { - from_raw_parts((*self.as_ptr()).subtitle_header, (*self.as_ptr()).subtitle_header_size as usize) - } - } - pub fn frame_rate(&self) -> Option { unsafe { let value = (*self.as_ptr()).framerate; @@ -91,12 +66,6 @@ impl Opened { } } } - - pub fn time_base(&self) -> Rational { - unsafe { - Rational::from((*self.as_ptr()).time_base) - } - } } impl Drop for Opened { diff --git a/src/codec/decoder/video.rs b/src/codec/decoder/video.rs index 47d1cf5..318f388 100644 --- a/src/codec/decoder/video.rs +++ b/src/codec/decoder/video.rs @@ -42,12 +42,6 @@ impl Video { } } - pub fn set_format(&mut self, value: format::Pixel) { - unsafe { - (*self.as_mut_ptr()).pix_fmt = value.into(); - } - } - pub fn has_b_frames(&self) -> bool { unsafe { (*self.as_ptr()).has_b_frames != 0