void seek (dcpomatic::DCPTime position, bool accurate);
- enum Error {
- NONE,
- AGAIN
+ class Error {
+ public:
+ enum Code{
+ NONE,
+ AGAIN,
+ DIED,
+ FINISHED
+ };
+
+ Error()
+ : code (NONE)
+ {}
+
+ Code code;
+ std::string message;
+
+ std::string summary () const;
};
std::pair<boost::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> get_video (bool blocking, Error* e = 0);
boost::asio::io_service _prepare_service;
boost::shared_ptr<boost::asio::io_service::work> _prepare_work;
- /** mutex to protect _pending_seek_position, _pending_seek_acurate, _finished, _died, _stop_thread */
+ /** mutex to protect _pending_seek_position, _pending_seek_accurate, _finished, _died, _stop_thread */
boost::mutex _mutex;
boost::condition _summon;
boost::condition _arrived;
int _suspended;
bool _finished;
bool _died;
+ std::string _died_message;
bool _stop_thread;
AudioMapping _audio_mapping;