From d7b23d44dec9d6357619e8e009e564e475215470 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 3 Jan 2014 23:18:47 +0000 Subject: Various attempted fixes to audio sync. --- src/lib/ffmpeg_decoder.cc | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'src/lib/ffmpeg_decoder.cc') diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc index 25fe655be..dae0ddbe8 100644 --- a/src/lib/ffmpeg_decoder.cc +++ b/src/lib/ffmpeg_decoder.cc @@ -445,11 +445,17 @@ FFmpegDecoder::decode_audio_packet () } if (frame_finished) { + ContentTime const ct = ( + av_frame_get_best_effort_timestamp (_frame) * + av_q2d (_ffmpeg_content->audio_stream()->stream (_format_context)->time_base) + + _pts_offset + ) * TIME_HZ; + int const data_size = av_samples_get_buffer_size ( 0, audio_codec_context()->channels, _frame->nb_samples, audio_sample_format (), 1 ); - - audio (deinterleave_audio (_frame->data, data_size)); + + audio (deinterleave_audio (_frame->data, data_size), ct); } copy_packet.data += decode_result; @@ -603,13 +609,3 @@ FFmpegDecoder::decode_subtitle_packet () avsubtitle_free (&sub); } - -ContentTime -FFmpegDecoder::first_audio () const -{ - if (!_ffmpeg_content->audio_stream ()) { - return 0; - } - - return _ffmpeg_content->audio_stream()->first_audio.get_value_or(0) + _pts_offset; -} -- cgit v1.2.3