}
}
+DCPEncoder::~DCPEncoder ()
+{
+ /* We must stop receiving more video data before we die */
+ _player_video_connection.release ();
+ _player_audio_connection.release ();
+ _player_subtitle_connection.release ();
+}
+
void
DCPEncoder::go ()
{
, _job (job)
, _player (new Player (film, film->playlist ()))
{
- _player->Video.connect (bind (&Encoder::video, this, _1, _2));
- _player->Audio.connect (bind (&Encoder::audio, this, _1, _2));
- _player->Subtitle.connect (bind (&Encoder::subtitle, this, _1, _2));
+ _player_video_connection = _player->Video.connect (bind (&Encoder::video, this, _1, _2));
+ _player_audio_connection = _player->Audio.connect (bind (&Encoder::audio, this, _1, _2));
+ _player_subtitle_connection = _player->Subtitle.connect (bind (&Encoder::subtitle, this, _1, _2));
}
#include "types.h"
#include "player_subtitles.h"
#include <boost/weak_ptr.hpp>
+#include <boost/signals2.hpp>
class Film;
class Encoder;
boost::shared_ptr<const Film> _film;
boost::weak_ptr<Job> _job;
boost::shared_ptr<Player> _player;
+
+ boost::signals2::scoped_connection _player_video_connection;
+ boost::signals2::scoped_connection _player_audio_connection;
+ boost::signals2::scoped_connection _player_subtitle_connection;
};
#endif