summaryrefslogtreecommitdiff
path: root/src/lib/dcp_video.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-05-02 17:33:07 +0100
committerCarl Hetherington <cth@carlh.net>2016-03-21 16:41:06 +0000
commitb0d41c5a78f852619cde4249860c6bbe490804ff (patch)
treeb59c902cb36a6214301e1a098ddfc690dd29d880 /src/lib/dcp_video.cc
parent82be5b24a943f1f31e0de20f0e2e2bb5a8a531bf (diff)
Basic classes for different JPEG2000 encoders; config to choose one.
Diffstat (limited to 'src/lib/dcp_video.cc')
-rw-r--r--src/lib/dcp_video.cc19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/lib/dcp_video.cc b/src/lib/dcp_video.cc
index cd7d5229e..1933c0e35 100644
--- a/src/lib/dcp_video.cc
+++ b/src/lib/dcp_video.cc
@@ -1,6 +1,5 @@
/*
Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
- Taken from code Copyright (C) 2010-2011 Terrence Meiczinger
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -39,6 +38,7 @@
#include "player_video.h"
#include "raw_convert.h"
#include "compose.hpp"
+#include "jpeg2000_encoder.h"
#include <libcxml/cxml.h>
#include <dcp/openjpeg_image.h>
#include <dcp/rgb_xyz.h>
@@ -121,12 +121,17 @@ DCPVideo::convert_to_xyz (shared_ptr<const PlayerVideo> frame, dcp::NoteHandler
Data
DCPVideo::encode_locally (dcp::NoteHandler note)
{
- Data enc = compress_j2k (
- convert_to_xyz (_frame, note),
- _j2k_bandwidth,
- _frames_per_second,
- _frame->eyes() == EYES_LEFT || _frame->eyes() == EYES_RIGHT,
- _resolution == RESOLUTION_4K
+ shared_ptr<JPEG2000Encoder> encoder;
+ if (Config::instance()->encoder ()) {
+ encoder = JPEG2000Encoder::from_id (Config::instance()->encoder().get ());
+ }
+
+ if (!encoder) {
+ encoder = JPEG2000Encoder::all().front ();
+ }
+
+ shared_ptr<EncodedData> enc = encoder->encode (
+ xyz, note, _j2k_bandwidth, _frames_per_second, _resolution, _frame->eyes() == EYES_LEFT || _frame->eyes() == EYES_RIGHT
);
switch (_frame->eyes()) {