summaryrefslogtreecommitdiff
path: root/src/lib/encoder.cc
AgeCommit message (Collapse)Author
2021-07-03C++11 tidying.Carl Hetherington
2021-01-07std::shared_ptrCarl Hetherington
2020-04-23Nicer fix for 86102d30bf0aad89115bbeb3d8aaa2a27a0aa432Carl Hetherington
2020-04-15Fix length of player output so it can be either the film's length or ↵Carl Hetherington
playlist's length, as appropriate.
2017-07-26Basic multithread of DCP decryption during export.Carl Hetherington
2017-05-23Try to stop crashes when tests are torn down.Carl Hetherington
2017-05-10Rename some classes.Carl Hetherington
2017-05-09Some export tidying up.Carl Hetherington
2017-05-09Basic GUI for export.Carl Hetherington
2017-04-27Distinguish master DoM encode threads count from the server count.Carl Hetherington
2017-04-19Various Doxygen fixes.Carl Hetherington
2017-04-19Fix merge.Carl Hetherington
2017-04-19Attempt to tidy up internal APIs slightly.Carl Hetherington
2017-01-05Tweak comment.Carl Hetherington
2016-12-14Debugging for encode decisions.Carl Hetherington
2016-11-15Attempt to fix lost frames on remote encodes in certain exceptional ↵Carl Hetherington
circumstances.
2016-08-15compose/raw_convert fiddling.Carl Hetherington
2016-08-12Remove all use of stringstream in an attempt to fixCarl Hetherington
the suspected thread-unsafe crash bugs on OS X.
2016-07-20Do EncodeServerFinder 'disable' in a more sensible way.Carl Hetherington
Just stop the threads and clear the server list when stop() is called.
2016-07-20Try to fix intermittent deadlocks with encoding servers.Carl Hetherington
Before this commit all encoding threads could be removed and then ::encode would always wait on _full_condition no matter what the queue size.
2016-06-29Small tweaks to times in progress reports.Carl Hetherington
2016-06-20Fix crash when no video is being encoded.Carl Hetherington
2016-06-20Fix encoder thread interruption.Carl Hetherington
When an encoder thread is interrupted we just want it silently to stop, so catch boost::thread_interrupted separately and don't pass it on. I believe the interruption of jobs and subsequent catch of boost::thread_interrupted will still work as that's the job thread rather than the encoder threads.
2016-06-20Encoder shutdown fixes.Carl Hetherington
Two fixes here; prevent the servers-list-changed callback being called when Encoder is being destroyed, and stop ~Encoder throwing exceptions. I'm not sure if the catch (...) in ~Encoder will hide problems that we should be handling, but I think by the time ~Encoder is happening we'll already have seen any exceptions that we need to report.
2016-06-14Clean up of 3D->2D conversion.Carl Hetherington
It makes slightly more sense to discard 2D in the Transcoder rather than the Encoder. Unfortunately this requires quite invasive changes, mainly to remove Encoder::_position and instead derive this information from the PlayerVideo that is being handled. This is also nicer than before, I think. A notable change is that in player.cc; using time rather than content_video_to_dcp(). This means we are assuming that the decoder returns video at the time we ask it to, rather than checking what it has returned. I can't think of a problem with this (yet).
2016-06-14Discard right-eye images when using 3D sources to make 2D DCPs.Carl Hetherington
2016-06-07Remove some flawed condition manipulation.Carl Hetherington
I think this stuff is unnecessary as wait() is interruptible by boost::thread::interrupt. Hence instead of setting a flag then signalling the condition we can just do interrupt(), the exception will be thrown and that's that.
2016-05-25No-op; fix GPL address and use the explicit-program-name version.Carl Hetherington
2016-05-09Fix erroneous thread affinity log message.Carl Hetherington
2016-03-05Set thread affinity on Windows XP so that each encoder threadCarl Hetherington
is tied to a single CPU. There is some suggestion on the web that Windows 7 does this better, which may explain the slowdowns and erratic timings that we see post-2.6.3 on Windows XP (see #771).
2015-12-11Rename Server -> EncodeServer, ServerFinder -> EncodeServerFinder, ↵Carl Hetherington
ServerDescription -> EncodeServerDescription.
2015-12-09Try to fix build with old boost.Carl Hetherington
2015-12-09More debugging.Carl Hetherington
2015-12-09Remove unused variable.Carl Hetherington
2015-12-09Try to speed up cancel of encoder threads if they are sleeping for remote ↵Carl Hetherington
backoff.
2015-12-04Use libdcp's compress_j2k; move Data into libdcp.Carl Hetherington
2015-11-27Fix crash when repeating video frames across a reel boundary.Carl Hetherington
2015-10-22Remove ref_write mechanism and instead maintain state for eachCarl Hetherington
reel being written so that we don't need to keep track of frames that are being referenced.
2015-10-22Various multi-reel fixes.Carl Hetherington
* _video_frames_enqueued -> _position * some int -> Frame replacements * Call Writer::ref_write when there is nothing to encode / write for one frame. * Assume Encoder::encode is called once per output video frame. * Possibly correct some off-by-1 overlap bugs. * Don't reset _last_written on FAKE write as I believe there is no need.
2015-10-09Logging improvements to allow prettier displays in the server GUI.Carl Hetherington
2015-10-02Speculative fix for hangs during Encoder::end().Carl Hetherington
I think it's possible that, if an exception is thrown by an Encoder thread during the clear-out loop at the top of Encoder::end, that loop will hang waiting for a notify() on _full_condition that never comes. Fix this by rethrow()ing in this loop and notifying _full_condition if an encoder thread throws an exception.
2015-09-18Make sure exceptions during local encodes are propagated up to the front end ↵Carl Hetherington
(#694).
2015-09-02Don't share _terminate.Carl Hetherington
_terminate was being shared between enqueue() and the encoding threads so that when terminating and recreating the encoding threads any pending enqueue() was dropped (#683).
2015-09-01Protect _threads with a mutex since it may be updated fromCarl Hetherington
the GUI thread (via ServersChanged) or from the job thread (via end ()).
2015-08-26Move ServerDescription into its own header.Carl Hetherington
2015-08-19Fix loss of host's encoding threads when servers list changes.Carl Hetherington
2015-08-19Some work on rationalising and tidying up timing logging.Carl Hetherington
2015-08-19Add only-servers-encode option for debugging / optimisation / testing of ↵Carl Hetherington
servers.
2015-08-18Include tidying.Carl Hetherington
2015-07-14Port 65514eea7705fb12985cef448f08ceb47db6acab from 1.x; failure to handle ↵Carl Hetherington
separate-eye 3D when R comes before L in the playlist.