X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fplayer.h;h=20b83bfdb7c2468e702409fbc500286937553ec5;hb=f861018389acd9d277fe34d7621182b9b54f977f;hp=44b7c126de3cc465b4c17ed5844cc396e3627b8f;hpb=384e364f02b9a598044aff6073ea0f61c87c62b0;p=dcpomatic.git diff --git a/src/lib/player.h b/src/lib/player.h index 44b7c126d..20b83bfdb 100644 --- a/src/lib/player.h +++ b/src/lib/player.h @@ -57,8 +57,8 @@ public: double last_video_time () const; private: - void process_video (boost::shared_ptr i, bool same, boost::shared_ptr s, double); - void process_audio (boost::weak_ptr, boost::shared_ptr, double); + void process_video (boost::shared_ptr i, bool same, boost::shared_ptr s, double); + void process_audio (boost::weak_ptr, boost::shared_ptr, double); void setup_decoders (); void playlist_changed (); void content_changed (boost::weak_ptr, int); @@ -72,12 +72,18 @@ private: /** Our decoders are ready to go; if this is false the decoders must be (re-)created before they are used */ bool _have_valid_decoders; - std::list > _video_decoders; - std::list >::iterator _video_decoder; - std::list > _audio_decoders; - - /** Current audio decoder if we are running them sequentially; otherwise undefined */ - std::list >::iterator _sequential_audio_decoder; + /** Video decoders in order of presentation */ + std::vector > _video_decoders; + /** Start positions of each video decoder in seconds*/ + std::vector _video_start; + /** Index of current video decoder */ + size_t _video_decoder; + /** Audio decoders in order of presentation (if they are from FFmpeg) */ + std::vector > _audio_decoders; + /** Start positions of each audio decoder (if they are from FFmpeg) in seconds */ + std::vector _audio_start; + /** Current audio decoder index if we are running them sequentially; otherwise undefined */ + size_t _sequential_audio_decoder; boost::shared_ptr _audio_buffers; boost::optional _audio_time;