diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-03-02 00:53:56 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-03-02 15:40:18 +0100 |
| commit | 431127d27fe697a60872d6020a8a5abcb47fa9e1 (patch) | |
| tree | f2d00b08cbf126fd6b1f1fa4062cde9d139c9dd4 /src/lib/ffmpeg_decoder.h | |
| parent | 04e94f01295463f2c910ba2b4306c1b76e340a45 (diff) | |
Tidy up and do flushing more correctly.v2.15.133
This seems necessary with the multi-threaded decoding; it looks
like we were doing it quite wrong before but getting away with it.
Diffstat (limited to 'src/lib/ffmpeg_decoder.h')
| -rw-r--r-- | src/lib/ffmpeg_decoder.h | 9 |
1 files changed, 5 insertions, 4 deletions
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<FFmpegAudioStream> stream) const; int bytes_per_audio_sample (std::shared_ptr<FFmpegAudioStream> stream) const; std::shared_ptr<FFmpegAudioStream> audio_stream_from_index (int index) const; - void process_audio_frame (std::shared_ptr<FFmpegAudioStream> stream, int64_t packet_pts); + std::pair<int, bool> decode_audio_packet (std::shared_ptr<FFmpegAudioStream> stream, AVPacket* packet); + void process_audio_frame (std::shared_ptr<FFmpegAudioStream> 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); |
