From 431127d27fe697a60872d6020a8a5abcb47fa9e1 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 2 Mar 2021 00:53:56 +0100 Subject: Tidy up and do flushing more correctly. This seems necessary with the multi-threaded decoding; it looks like we were doing it quite wrong before but getting away with it. --- src/lib/ffmpeg_decoder.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/lib/ffmpeg_decoder.h') diff --git a/src/lib/ffmpeg_decoder.h b/src/lib/ffmpeg_decoder.h index bd35814df..e18d5e8eb 100644 --- a/src/lib/ffmpeg_decoder.h +++ b/src/lib/ffmpeg_decoder.h @@ -52,16 +52,17 @@ public: private: friend struct ::ffmpeg_pts_offset_test; - void flush (); + bool flush (); AVSampleFormat audio_sample_format (std::shared_ptr stream) const; int bytes_per_audio_sample (std::shared_ptr stream) const; std::shared_ptr audio_stream_from_index (int index) const; - void process_audio_frame (std::shared_ptr stream, int64_t packet_pts); + std::pair decode_audio_packet (std::shared_ptr stream, AVPacket* packet); + void process_audio_frame (std::shared_ptr stream); - bool decode_video_packet (AVPacket* packet); - void decode_audio_packet (AVPacket* packet); + bool decode_and_process_video_packet (AVPacket* packet); + void decode_and_process_audio_packet (AVPacket* packet); void decode_and_process_subtitle_packet (AVPacket* packet); void process_bitmap_subtitle (AVSubtitleRect const * rect, dcpomatic::ContentTime from); -- cgit v1.2.3