/*
- Copyright (C) 2016-2017 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2016-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
+
#include "dcpomatic_time.h"
#include "player_video.h"
#include "types.h"
-#include <boost/noncopyable.hpp>
#include <boost/thread/mutex.hpp>
-#include <boost/shared_ptr.hpp>
#include <utility>
+
+class Film;
class PlayerVideo;
-class VideoRingBuffers : public boost::noncopyable
+
+class VideoRingBuffers
{
public:
- void put (boost::shared_ptr<PlayerVideo> frame, DCPTime time);
- std::pair<boost::shared_ptr<PlayerVideo>, DCPTime> get ();
+ VideoRingBuffers () {}
+
+ VideoRingBuffers (VideoRingBuffers const&) = delete;
+ VideoRingBuffers& operator= (VideoRingBuffers const&) = delete;
+
+ void put (std::shared_ptr<PlayerVideo> frame, dcpomatic::DCPTime time);
+ std::pair<std::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> get ();
void clear ();
Frame size () const;
bool empty () const;
- boost::optional<DCPTime> earliest () const;
+
+ void reset_metadata (std::shared_ptr<const Film> film, dcp::Size player_video_container_size);
+
+ std::pair<size_t, std::string> memory_used () const;
private:
mutable boost::mutex _mutex;
- std::list<std::pair<boost::shared_ptr<PlayerVideo>, DCPTime> > _data;
+ std::list<std::pair<std::shared_ptr<PlayerVideo>, dcpomatic::DCPTime>> _data;
};