diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-08-23 20:27:33 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-09-13 20:23:29 +0200 |
| commit | 4d59a82d5a3b39f6494e69c7827856fe5b836b3c (patch) | |
| tree | 70e82703ff18fd0b851bdc343f407526a884feed /src/lib/j2k_encoder_fastvideo_backend.cc | |
| parent | 56aeb3282f0e8cc8734e4d018f9b0946a0fb09fe (diff) | |
Hacks to multi-thread GPU encoding.
Diffstat (limited to 'src/lib/j2k_encoder_fastvideo_backend.cc')
| -rw-r--r-- | src/lib/j2k_encoder_fastvideo_backend.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/lib/j2k_encoder_fastvideo_backend.cc b/src/lib/j2k_encoder_fastvideo_backend.cc index 17775510a..cf814f13c 100644 --- a/src/lib/j2k_encoder_fastvideo_backend.cc +++ b/src/lib/j2k_encoder_fastvideo_backend.cc @@ -17,8 +17,9 @@ using dcp::Data; -J2KEncoderFastvideoBackend::J2KEncoderFastvideoBackend () - : _setup_done (false) +J2KEncoderFastvideoBackend::J2KEncoderFastvideoBackend (boost::barrier& barrier) + : _barrier (barrier) + , _setup_done (false) { fastSdkParametersHandle_t sdk_parameters; fastStatus_t r = fastGetSdkParametersHandle(&sdk_parameters); @@ -99,14 +100,18 @@ J2KEncoderFastvideoBackend::setup (dcp::Size size) vector<Data> J2KEncoderFastvideoBackend::encode (vector<shared_ptr<DCPVideo> > video) { - DCPOMATIC_ASSERT (static_cast<int>(video.size()) == quantity()); + DCPOMATIC_ASSERT (static_cast<int>(video.size()) <= quantity()); std::cout << "FV: " << video.size() << " from " << video.front()->index() << "\n"; + // XXX: works most of the time, not sure how it helps (need to ask) but screws + // things up when we're only encoding one frame + //_barrier.wait(); if (!_setup_done) { setup (video.front()->frame()->out_size()); _setup_done = true; } + std::cout << "hello dolly.\n"; BOOST_FOREACH (shared_ptr<DCPVideo> i, video) { shared_ptr<dcpomatic::Image> image = i->frame()->image(boost::bind(&PlayerVideo::keep_xyz_or_rgb, _1), true, false); if (i->frame()->colour_conversion()) { @@ -122,6 +127,7 @@ J2KEncoderFastvideoBackend::encode (vector<shared_ptr<DCPVideo> > video) /* XXX */ } + std::cout << "here we go.\n"; fastStatus_t r = fastImportFromHostCopy( _adapter, _xyz_buffer, @@ -147,12 +153,7 @@ J2KEncoderFastvideoBackend::encode (vector<shared_ptr<DCPVideo> > video) } - int free_slots = 0; - fastEncoderJ2kFreeSlotsInBatch(_encoder, &free_slots); - DCPOMATIC_ASSERT (free_slots == 0); - fastEncoderJ2kReport_t report; - fastEncoderJ2kOutput_t output; int const max_j2k_size = 1024 * 1024 * 2; output.bufferSize = max_j2k_size; |
