diff --git a/examples/transcode-audio.rs b/examples/transcode-audio.rs index deac4ea..71e3a3b 100644 --- a/examples/transcode-audio.rs +++ b/examples/transcode-audio.rs @@ -50,7 +50,7 @@ fn transcoder>(ictx: &mut format::context::Input, octx: &mut form 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.parameters())); + try!(decoder.set_parameters(input.parameters())); let mut output = try!(octx.add_stream(codec)); let mut encoder = try!(output.codec().encoder().audio()); diff --git a/src/codec/context.rs b/src/codec/context.rs index cee7911..98de7f4 100644 --- a/src/codec/context.rs +++ b/src/codec/context.rs @@ -104,9 +104,11 @@ impl Context { } } - pub fn set_parameters(&mut self, params: &Parameters) -> Result<(), Error> { + pub fn set_parameters>(&mut self, parameters: P) -> Result<(), Error> { + let parameters = parameters.into(); + unsafe { - match avcodec_parameters_to_context(self.as_mut_ptr(), params.as_ptr()) { + match avcodec_parameters_to_context(self.as_mut_ptr(), parameters.as_ptr()) { e if e < 0 => Err(Error::from(e)), _ => Ok(()), }