| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2024-05-08 | Merge remote-tracking branch 'origin/main' into v2.17.x | Carl Hetherington | |
| 2024-05-08 | Work around deadlock when destroying J2KEncoder with a full writer queue ↵v2.16.83 | Carl Hetherington | |
| (#2784). This feels like a hack, but I can't think of a nicer way to do it. The interruption disable makes sense because when we destroy encoder threads during a DCP encode (because a remote server goes away, for example) we don't want any frames to be lost due to the encode thread being interrupted between taking the frame off the queue and sending it to the writer. When we're destroying the encoder we don't care about this, but I can't see how you'd differentiate. Maybe the encoder queue could have two lists: to-do and in-progress; the encoder thread atomically moves a frame from to-do to in-progress, but then how do you know when the in-progress ones are orphaned and need to be re-added to the main queue. You could make the writer return saying "no" if the queue is full (rather than blocking and waiting for the queue to empty) but that seems wasteful as then the frame would be re-encoded. | |||
| 2024-04-22 | Allow specification of video bit rate separately for J2K and MPEG2. | Carl Hetherington | |
| 2024-04-21 | Rename j2k_bandwidth -> video_bit_rate. | Carl Hetherington | |
| 2024-04-21 | Extract VideoEncoder as a parent of J2KEncoder. | Carl Hetherington | |
| 2024-01-28 | Swap a log for a more informative one. | Carl Hetherington | |
| 2024-01-28 | Clean up grok's presence in the config file and make sure it's optional. | Carl Hetherington | |
| It should be allowed to not have any grok stuff in the config file, and we should generally call it grok rather than GPU in case other non-grok GPU stuff arrives in the future. | |||
| 2024-01-28 | Another patch from Aaron. | Carl Hetherington | |
| 2024-01-28 | Forward-declare grk_plugin stuff. | Carl Hetherington | |
| 2024-01-28 | Create a single DcpomaticContext for all GrokContexts, rather than copying them. | Carl Hetherington | |
| I think this makes sense, and also allows us to forward-declare the contexts in a forthcoming commit. | |||
| 2024-01-28 | Only build grok for Ubuntu 22.04. | Carl Hetherington | |
| 2024-01-28 | Explicitly set up Grok logger rather than relying on a static variable. | Carl Hetherington | |
| 2024-01-28 | Rearrange encoder threading. | Carl Hetherington | |
| Soon we'll add a new encoder type, and the existing structure was already creaking a bit at the seams while handling local and remote encodes. Here we split out an encoder thread and introduce the concept of a "sync" thread (which blocks while the encoding is happening). Later we'll have another type which submits the encode request to a GPU and receives the reply back later. | |||
| 2024-01-28 | Remove check for _threads being null, as I think it should not happen. | Carl Hetherington | |
| 2024-01-28 | Cleanup: white space. | Carl Hetherington | |
| 2024-01-28 | Cleanup: white space tidying. | Carl Hetherington | |
| 2024-01-28 | Change end() to only do one thing, and copy the required stuff into pause() | Carl Hetherington | |
| 2024-01-28 | Formatting, variable name tidying and some const correctness. | Carl Hetherington | |
| 2024-01-28 | Patch from Aaron Boxer adding initial support for GPU-powered J2K encoding ↵ | Carl Hetherington | |
| via his tool "grok". | |||
| 2023-11-23 | Update servers list after connecting to the signal. | Carl Hetherington | |
| Otherwise it can happen that a signal is emitted before we connect to it, and then after that no more signals come because nothing changes. | |||
| 2022-10-17 | Remove some unnecessary use of shared_ptr. | Carl Hetherington | |
| 2022-09-27 | Use EnumIndexedVector in J2KEncoder. | Carl Hetherington | |
| 2022-09-10 | Trim some includes. | Carl Hetherington | |
| 2022-07-15 | Fix failure to destroy the J2KEncoder when an encode fails/is cancelled. | Carl Hetherington | |
| 2022-05-02 | It doesn't seem necessary to use shared_ptr for the DCPVideo queue in ↵v2.16.x-old | Carl Hetherington | |
| J2KEncoder. | |||
| 2022-04-03 | C++11 and whitespace cleanups. | Carl Hetherington | |
| 2021-04-21 | Add some possibly-useful markers for debugging threads from coredumps. | Carl Hetherington | |
| 2021-04-08 | Assorted C++11/formatting cleanups. | Carl Hetherington | |
| 2021-01-31 | More enum class additions. | Carl Hetherington | |
| 2021-01-11 | More c++ tidying. | Carl Hetherington | |
| 2021-01-07 | BOOST_FOREACH. | Carl Hetherington | |
| 2021-01-07 | std::shared_ptr | Carl Hetherington | |
| 2020-12-05 | Fix transcode finish time estimations when re-encoding a DCP (#1863). | Carl Hetherington | |
| 2020-11-26 | It feels unsafe not to lock _threads_mutex between terminate_threads() | Carl Hetherington | |
| and _threads.reset(); move the lock. | |||
| 2020-11-04 | Re-add mutex that was taken away in | Carl Hetherington | |
| 73ebb92e9df01ba7afb97121b6e2cef6ca13a18e I'm not sure why it was removed, and it seems necessary; servers_list_changed() can be called from a variety of different places (the constructor and two different EncodeServerFinder threads). May help with #1854. | |||
| 2020-11-02 | Pass around JPEG2000 data as a shared_ptr and hence avoid a copy | Carl Hetherington | |
| of 4MB of data for every JPEG2000 frame we decode. | |||
| 2020-09-12 | Remove support for Windows XP. | Carl Hetherington | |
| 2020-07-29 | Fix bugs in thread termination causing occasional pthread | Carl Hetherington | |
| assertion failures. Before this, it was possible for J2KEncoder::terminate_threads() to finish without terminating all threads if the thread _running_ terminate_threads() was itself interrupt()ed. This is because the thread_group::join_all() in terminate_threads() is an interruption point, so it was possible it not to complete but instead to throw interrupted_exception. Then the owning J2KEncoder would be torn down but the threads would still be running, causing use-after-frees. This commit adds some boost::this_thread::disable_interruption objects to ensure that the owning thread is not interrupted while it is being destroyed. Also tidy up code that does this stuff, assuming that it's safe to not call thread::joinable but instead do thread.interrupt(); try { thread.join(); } catch (...) {} | |||
| 2020-07-26 | Various OSX warnings fixes. | Carl Hetherington | |
| 2020-07-23 | Use thread_group for improved exception safety (#1785). | Carl Hetherington | |
| 2020-04-14 | Try to give a better error when we fail to start J2K encoding | Carl Hetherington | |
| (probably because of a lack of addressable RAM). See #1540. | |||
| 2020-02-19 | Can't put boost::thread in a std::list with our macOS compiler. | Carl Hetherington | |
| 2020-01-30 | Various thread cleanups. | Carl Hetherington | |
| 2019-12-11 | Make terminate_threads() less likely to leave _threads containing invalid ↵ | Carl Hetherington | |
| pointers. Backported from f0c10e92b849566e458bc323f8783a6fe83e52d2 in master. | |||
| 2019-11-30 | Don't say we're encoding at 0fps when we're waiting for the timing history ↵ | Carl Hetherington | |
| to stablise. | |||
| 2019-05-10 | Put Time types in dcpomatic namespace. | Carl Hetherington | |
| 2018-11-21 | Tidy and fix logging. | Carl Hetherington | |
| 2018-11-07 | Add button to force re-encode of J2K content. | Carl Hetherington | |
| 2018-04-13 | Tidy up to use one list of servers. | Carl Hetherington | |
| 2018-04-13 | Note and indicate servers with bad link version (#982). | Carl Hetherington | |
