Create a single DcpomaticContext for all GrokContexts, rather than copying them.
[dcpomatic.git] / src / lib / j2k_encoder.cc
index 22f2ea6d7268a2ef92155b353d8dd51142128737..fe63deacdf96b5ad59d187145a5ec2e44e82b723 100644 (file)
@@ -68,7 +68,7 @@ J2KEncoder::J2KEncoder(shared_ptr<const Film> film, Writer& writer)
        , _history (200)
        , _writer (writer)
 #ifdef DCPOMATIC_GROK
-       , _dcpomatic_context(film, writer, _history, Config::instance()->gpu_binary_location())
+       , _dcpomatic_context(new grk_plugin::DcpomaticContext(film, writer, _history, Config::instance()->gpu_binary_location()))
        , _context(Config::instance()->enable_gpu() ? new grk_plugin::GrokContext(_dcpomatic_context) : nullptr)
 #endif
 {
@@ -84,6 +84,7 @@ J2KEncoder::~J2KEncoder ()
 
 #ifdef DCPOMATIC_GROK
        delete _context;
+       delete _dcpomatic_context;
 #endif
 }