From d39bfb9a1360a83f3451b79d01fdc4f465ef21d3 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 26 Jun 2013 16:35:43 +0100 Subject: Improve FFmpeg sync, in theory. --- src/lib/audio_decoder.cc | 4 +-- src/lib/audio_decoder.h | 2 +- src/lib/ffmpeg_content.cc | 6 ++-- src/lib/ffmpeg_content.h | 7 ++++- src/lib/ffmpeg_decoder.cc | 68 ++++++++++++++++++++++++++++++++---------- src/lib/ffmpeg_decoder.h | 6 ++++ src/lib/ffmpeg_examiner.cc | 12 ++++---- src/lib/ffmpeg_examiner.h | 6 ++-- src/lib/imagemagick_decoder.cc | 14 ++++----- src/lib/sndfile_decoder.cc | 2 +- src/lib/video_decoder.cc | 4 +-- src/lib/video_decoder.h | 2 +- 12 files changed, 91 insertions(+), 42 deletions(-) (limited to 'src/lib') diff --git a/src/lib/audio_decoder.cc b/src/lib/audio_decoder.cc index 396471910..dc49a1846 100644 --- a/src/lib/audio_decoder.cc +++ b/src/lib/audio_decoder.cc @@ -33,7 +33,7 @@ using boost::shared_ptr; AudioDecoder::AudioDecoder (shared_ptr f) : Decoder (f) - , _next_audio_frame (0) + , _audio_position (0) { } @@ -71,5 +71,5 @@ void AudioDecoder::audio (shared_ptr data, AudioContent::Frame frame) { Audio (data, frame); - _next_audio_frame = frame + data->frames (); + _audio_position = frame + data->frames (); } diff --git a/src/lib/audio_decoder.h b/src/lib/audio_decoder.h index 168348c2e..ddfb296c9 100644 --- a/src/lib/audio_decoder.h +++ b/src/lib/audio_decoder.h @@ -43,7 +43,7 @@ public: protected: void audio (boost::shared_ptr, AudioContent::Frame); - AudioContent::Frame _next_audio_frame; + AudioContent::Frame _audio_position; }; #endif diff --git a/src/lib/ffmpeg_content.cc b/src/lib/ffmpeg_content.cc index 378bd98cb..1135cc9a3 100644 --- a/src/lib/ffmpeg_content.cc +++ b/src/lib/ffmpeg_content.cc @@ -296,7 +296,7 @@ FFmpegAudioStream::FFmpegAudioStream (shared_ptr node) frame_rate = node->number_child ("FrameRate"); channels = node->number_child ("Channels"); mapping = AudioMapping (node->node_child ("Mapping")); - start = node->optional_number_child