pub struct Audio(/* private fields */);
Implementations§
source§impl Audio
impl Audio
sourcepub fn empty() -> Self
pub fn empty() -> Self
Examples found in repository?
examples/transcode-audio.rs (line 164)
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
fn get_and_process_filtered_frames(&mut self, octx: &mut format::context::Output) {
let mut filtered = frame::Audio::empty();
while self
.filter
.get("out")
.unwrap()
.sink()
.frame(&mut filtered)
.is_ok()
{
self.send_frame_to_encoder(&filtered);
self.receive_and_process_encoded_packets(octx);
}
}
fn send_packet_to_decoder(&mut self, packet: &ffmpeg::Packet) {
self.decoder.send_packet(packet).unwrap();
}
fn send_eof_to_decoder(&mut self) {
self.decoder.send_eof().unwrap();
}
fn receive_and_process_decoded_frames(&mut self, octx: &mut format::context::Output) {
let mut decoded = frame::Audio::empty();
while self.decoder.receive_frame(&mut decoded).is_ok() {
let timestamp = decoded.timestamp();
decoded.set_pts(timestamp);
self.add_frame_to_filter(&decoded);
self.get_and_process_filtered_frames(octx);
}
}
pub fn new(format: Sample, samples: usize, layout: ChannelLayout) -> Self
pub fn format(&self) -> Sample
pub fn set_format(&mut self, value: Sample)
pub fn channel_layout(&self) -> ChannelLayout
pub fn set_channel_layout(&mut self, value: ChannelLayout)
pub fn channels(&self) -> u16
pub fn set_channels(&mut self, value: u16)
pub fn rate(&self) -> u32
pub fn set_rate(&mut self, value: u32)
pub fn samples(&self) -> usize
pub fn set_samples(&mut self, value: usize)
pub fn is_planar(&self) -> bool
pub fn is_packed(&self) -> bool
pub fn planes(&self) -> usize
pub fn plane<T: Sample>(&self, index: usize) -> &[T]
pub fn plane_mut<T: Sample>(&mut self, index: usize) -> &mut [T]
pub fn data(&self, index: usize) -> &[u8] ⓘ
pub fn data_mut(&mut self, index: usize) -> &mut [u8] ⓘ
Methods from Deref<Target = Frame>§
pub unsafe fn as_ptr(&self) -> *const AVFrame
pub unsafe fn as_mut_ptr(&mut self) -> *mut AVFrame
pub unsafe fn is_empty(&self) -> bool
pub fn is_key(&self) -> bool
pub fn is_corrupt(&self) -> bool
pub fn packet(&self) -> Packet
pub fn pts(&self) -> Option<i64>
sourcepub fn set_pts(&mut self, value: Option<i64>)
pub fn set_pts(&mut self, value: Option<i64>)
Examples found in repository?
More examples
examples/transcode-x264.rs (line 108)
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
fn receive_and_process_decoded_frames(
&mut self,
octx: &mut format::context::Output,
ost_time_base: Rational,
) {
let mut frame = frame::Video::empty();
while self.decoder.receive_frame(&mut frame).is_ok() {
self.frame_count += 1;
let timestamp = frame.timestamp();
self.log_progress(f64::from(
Rational(timestamp.unwrap_or(0) as i32, 1) * self.decoder.time_base(),
));
frame.set_pts(timestamp);
frame.set_kind(picture::Type::None);
self.send_frame_to_encoder(&frame);
self.receive_and_process_encoded_packets(octx, ost_time_base);
}
}
sourcepub fn timestamp(&self) -> Option<i64>
pub fn timestamp(&self) -> Option<i64>
Examples found in repository?
More examples
examples/transcode-x264.rs (line 104)
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
fn receive_and_process_decoded_frames(
&mut self,
octx: &mut format::context::Output,
ost_time_base: Rational,
) {
let mut frame = frame::Video::empty();
while self.decoder.receive_frame(&mut frame).is_ok() {
self.frame_count += 1;
let timestamp = frame.timestamp();
self.log_progress(f64::from(
Rational(timestamp.unwrap_or(0) as i32, 1) * self.decoder.time_base(),
));
frame.set_pts(timestamp);
frame.set_kind(picture::Type::None);
self.send_frame_to_encoder(&frame);
self.receive_and_process_encoded_packets(octx, ost_time_base);
}
}
pub fn quality(&self) -> usize
pub fn flags(&self) -> Flags
pub fn metadata(&self) -> DictionaryRef<'_>
pub fn set_metadata(&mut self, value: Dictionary<'_>)
pub fn side_data(&self, kind: Type) -> Option<SideData<'_>>
pub fn new_side_data(&mut self, kind: Type, size: usize) -> Option<SideData<'_>>
pub fn remove_side_data(&mut self, kind: Type)
Trait Implementations§
source§impl PartialEq for Audio
impl PartialEq for Audio
impl Eq for Audio
impl StructuralPartialEq for Audio
Auto Trait Implementations§
impl Freeze for Audio
impl RefUnwindSafe for Audio
impl Send for Audio
impl Sync for Audio
impl Unpin for Audio
impl UnwindSafe for Audio
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more