fix: assign pts in audio fifo
This commit is contained in:
parent
f261988821
commit
497234f4b2
@ -8,6 +8,7 @@ use ffmpeg_sys_the_third::{
|
|||||||
|
|
||||||
pub struct AudioFifo {
|
pub struct AudioFifo {
|
||||||
ctx: *mut AVAudioFifo,
|
ctx: *mut AVAudioFifo,
|
||||||
|
pts: i64,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl AudioFifo {
|
impl AudioFifo {
|
||||||
@ -16,7 +17,7 @@ impl AudioFifo {
|
|||||||
if ctx.is_null() {
|
if ctx.is_null() {
|
||||||
bail!("Could not allocate audio fifo");
|
bail!("Could not allocate audio fifo");
|
||||||
}
|
}
|
||||||
Ok(Self { ctx })
|
Ok(Self { ctx, pts: 0 })
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Buffer a resampled frame, and get a frame from the buffer with the desired size
|
/// Buffer a resampled frame, and get a frame from the buffer with the desired size
|
||||||
@ -55,6 +56,11 @@ impl AudioFifo {
|
|||||||
av_frame_free(&mut out_frame);
|
av_frame_free(&mut out_frame);
|
||||||
bail!("Failed to read audio frame");
|
bail!("Failed to read audio frame");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// assign PTS
|
||||||
|
(*out_frame).pts = self.pts;
|
||||||
|
self.pts += (*out_frame).nb_samples as i64;
|
||||||
|
|
||||||
Ok(Some(out_frame))
|
Ok(Some(out_frame))
|
||||||
} else {
|
} else {
|
||||||
Ok(None)
|
Ok(None)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user