codec/encoder: add some accessors

This commit is contained in:
meh 2015-05-16 22:47:38 +02:00
parent 4fe66b6735
commit e02bd1e763

View File

@ -23,10 +23,11 @@ use std::ffi::CString;
use std::ptr; use std::ptr;
use std::ops::Deref; use std::ops::Deref;
use libc::c_int;
use ffi::*; use ffi::*;
use super::Id; use super::Id;
use super::context::Opened; use super::context::Opened;
use ::{Codec, Error}; use ::{Codec, Error, Rational};
use ::media; use ::media;
pub struct Encoder(pub Opened); pub struct Encoder(pub Opened);
@ -58,6 +59,41 @@ impl Encoder {
Err(Error::from(AVERROR_INVALIDDATA)) Err(Error::from(AVERROR_INVALIDDATA))
} }
} }
pub fn set_rate(&mut self, value: usize) {
unsafe {
(*self.ptr).bit_rate = value as c_int;
}
}
pub fn set_tolerance(&mut self, value: usize) {
unsafe {
(*self.ptr).bit_rate_tolerance = value as c_int;
}
}
pub fn set_quality(&mut self, value: usize) {
unsafe {
(*self.ptr).global_quality = value as c_int;
}
}
pub fn set_compression(&mut self, value: Option<usize>) {
unsafe {
if let Some(value) = value {
(*self.ptr).compression_level = value as c_int;
}
else {
(*self.ptr).compression_level = -1;
}
}
}
pub fn set_time_base(&mut self, value: Rational) {
unsafe {
(*self.ptr).time_base = value.0;
}
}
} }
impl Deref for Encoder { impl Deref for Encoder {