summaryrefslogtreecommitdiff
path: root/src/lib/dcp_film_encoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-03-19 14:02:47 +0100
committerCarl Hetherington <cth@carlh.net>2024-04-22 13:03:04 +0200
commitf72a79c93626e773214f1a0318adf2445ac2ee72 (patch)
tree7b84a9c0c000618893a3fa3d609507c855735669 /src/lib/dcp_film_encoder.cc
parent5b2e3126602d508498a99bce256f5f465f095d43 (diff)
Support encoding of MPEG2 DCPs.
Diffstat (limited to 'src/lib/dcp_film_encoder.cc')
-rw-r--r--src/lib/dcp_film_encoder.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/dcp_film_encoder.cc b/src/lib/dcp_film_encoder.cc
index b508b66b6..17f531693 100644
--- a/src/lib/dcp_film_encoder.cc
+++ b/src/lib/dcp_film_encoder.cc
@@ -33,6 +33,7 @@
#include "film.h"
#include "j2k_encoder.h"
#include "job.h"
+#include "mpeg2_encoder.h"
#include "player.h"
#include "player_video.h"
#include "referenced_reel_asset.h"
@@ -67,10 +68,18 @@ using namespace dcpomatic;
DCPFilmEncoder::DCPFilmEncoder(shared_ptr<const Film> film, weak_ptr<Job> job)
: FilmEncoder(film, job)
, _writer(film, job)
- , _encoder(new J2KEncoder(film, _writer))
, _finishing (false)
, _non_burnt_subtitles (false)
{
+ switch (_film->video_encoding()) {
+ case VideoEncoding::JPEG2000:
+ _encoder.reset(new J2KEncoder(film, _writer));
+ break;
+ case VideoEncoding::MPEG2:
+ _encoder.reset(new MPEG2Encoder(film, _writer));
+ break;
+ }
+
_player_video_connection = _player.Video.connect(bind(&DCPFilmEncoder::video, this, _1, _2));
_player_audio_connection = _player.Audio.connect(bind(&DCPFilmEncoder::audio, this, _1, _2));
_player_text_connection = _player.Text.connect(bind(&DCPFilmEncoder::text, this, _1, _2, _3, _4));