codec/encoder: add some accessors
This commit is contained in:
parent
4fe66b6735
commit
e02bd1e763
@ -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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user