Skip to content

Commit

Permalink
Merge pull request #6 from phial3/develop
Browse files Browse the repository at this point in the history
optimize `Parameters::from(&encoder)`
  • Loading branch information
phial3 authored Feb 10, 2025
2 parents d5258f0 + 2a4e48e commit 8032cfd
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 12 deletions.
3 changes: 2 additions & 1 deletion examples/transcode-audio.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ extern crate ffmpeg_the_third as ffmpeg;
use std::env;
use std::path::Path;

use ffmpeg::codec::Parameters;
use ffmpeg::{codec, filter, format, frame, media};
use ffmpeg::{rescale, Rescale};

Expand Down Expand Up @@ -135,7 +136,7 @@ fn transcoder<P: AsRef<Path> + ?Sized>(
output.set_time_base((1, decoder.rate() as i32));

let encoder = encoder.open_as(codec)?;
output.set_parameters_into(&encoder);
output.set_parameters(Parameters::from(&encoder));

let filter = filter(filter_spec, &decoder, &encoder)?;

Expand Down
5 changes: 3 additions & 2 deletions examples/transcode-x264.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ use std::collections::HashMap;
use std::env;
use std::time::Instant;

use ffmpeg::codec::Parameters;
use ffmpeg::{
codec, decoder, encoder, format, frame, log, media, picture, Dictionary, Packet, Rational,
};
Expand Down Expand Up @@ -58,7 +59,7 @@ impl Transcoder {
let mut encoder = codec::context::Context::new_with_codec(codec.unwrap())
.encoder()
.video()?;
ost.set_parameters_into(&encoder);
ost.set_parameters(Parameters::from(&encoder));
encoder.set_height(decoder.height());
encoder.set_width(decoder.width());
encoder.set_aspect_ratio(decoder.aspect_ratio());
Expand All @@ -73,7 +74,7 @@ impl Transcoder {
let opened_encoder = encoder
.open_with(x264_opts)
.expect("error opening x264 with supplied settings");
ost.set_parameters_into(&opened_encoder);
ost.set_parameters(Parameters::from(&opened_encoder));
Ok(Self {
ost_index,
decoder,
Expand Down
3 changes: 2 additions & 1 deletion examples/video-resize.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
extern crate ffmpeg_the_third as ffmpeg;

use ffmpeg::codec::Parameters;
use ffmpeg::{codec, format, frame, media, picture, software};
use std::env;

Expand Down Expand Up @@ -54,7 +55,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {

// 创建输出流
let mut output_stream = output_context.add_stream(codec)?;
output_stream.set_parameters_into(&encoder);
output_stream.set_parameters(Parameters::from(&encoder));
output_context.write_header()?;

// 创建缩放器
Expand Down
8 changes: 0 additions & 8 deletions src/format/stream/stream_mut.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,6 @@ impl<'a> StreamMut<'a> {
}
}

pub fn set_parameters_into<P: Into<codec::Parameters>>(&mut self, parameters: P) {
let parameters = parameters.into();

unsafe {
avcodec_parameters_copy((*self.as_mut_ptr()).codecpar, parameters.as_ptr());
}
}

pub fn copy_parameters_from_context(&mut self, ctx: &codec::Context) {
unsafe {
avcodec_parameters_from_context((*self.as_mut_ptr()).codecpar, ctx.as_ptr());
Expand Down

0 comments on commit 8032cfd

Please sign in to comment.