codec: introduce Parameters
As of ffmpeg 3.1, a new `AVCodecParameters` type and related API introduced. This commit contains minimal changes to support new API.
This commit is contained in:
@ -47,10 +47,12 @@ struct Transcoder {
|
||||
|
||||
fn transcoder<P: AsRef<Path>>(ictx: &mut format::context::Input, octx: &mut format::context::Output, path: &P, filter_spec: &str) -> Result<Transcoder, ffmpeg::Error> {
|
||||
let input = ictx.streams().best(media::Type::Audio).expect("could not find best audio stream");
|
||||
let decoder = try!(input.codec().decoder().audio());
|
||||
let mut decoder = try!(input.codec().decoder().audio());
|
||||
let codec = try!(ffmpeg::encoder::find(octx.format().codec(path, media::Type::Audio)).expect("failed to find encoder").audio());
|
||||
let global = octx.format().flags().contains(ffmpeg::format::flag::GLOBAL_HEADER);
|
||||
|
||||
try!(decoder.set_parameters(input.codec_parameters()));
|
||||
|
||||
let mut output = try!(octx.add_stream(codec));
|
||||
let mut encoder = try!(output.codec().encoder().audio());
|
||||
|
||||
@ -73,6 +75,8 @@ fn transcoder<P: AsRef<Path>>(ictx: &mut format::context::Input, octx: &mut form
|
||||
output.set_time_base((1, decoder.rate() as i32));
|
||||
|
||||
let encoder = try!(encoder.open_as(codec));
|
||||
try!(output.set_codec_parameters_from(&encoder));
|
||||
|
||||
let filter = try!(filter(filter_spec, &decoder, &encoder));
|
||||
|
||||
Ok(Transcoder {
|
||||
|
Reference in New Issue
Block a user