summaryrefslogtreecommitdiff
path: root/src/lib/writer.cc
AgeCommit message (Collapse)Author
2021-07-10Use dcp::compose rather than our own.composeCarl Hetherington
2021-06-24Fix incorrect issuer/creator in CPL files.Carl Hetherington
2021-06-01Put audio language back in the Film.Carl Hetherington
It feels neat to have audio language in the audio tab, to match the subtitle language in the subtitle tab. It also avoids the potential confusion of there being an audio language setting in the DCP metadata but no subtitle language setting. However: - I am yet to find a need to describe multiple audio languages in the same DCP (all previous users of Film::audio_languages() were just taking the first language off the list). - As Carsten points out it's fiddly to have to set the audio language for 5 separate-channel WAV files, for example (you wouldn't actually have had to do this, but it would have felt like you did). I think subtitle language remains neater where it is (per-content) as there is this additional subtitle language metadata and it makes much more sense (and is much more likely) that there are multiple subtitle languages in a DCP than it does multiple audio languages.
2021-05-01C++11 tidying.Carl Hetherington
2021-04-21Make digest calculations interruptible.Carl Hetherington
2021-04-21Move digest calculation to a separate method.Carl Hetherington
2021-04-21Add some possibly-useful markers for debugging threads from coredumps.Carl Hetherington
2021-04-12Bump libdcp for some API improvements.Carl Hetherington
2021-04-02Add language to audio content and use it instead of the general metadata.Carl Hetherington
2021-03-31Put subtitle language back into content from the film (#1930).Carl Hetherington
This also adds the main/additional language flag. Of all the considerations about how to specify subtitle language, the most important seems to be that the language specification happens for the content where the language is; i.e. in the content text tab.
2021-03-22Don't insist on writing optional metadata (#1923).Carl Hetherington
2021-03-20Tidy up HMSF handling in a few places.Carl Hetherington
2021-03-19Fix handling of subtitles at reel boundaries.Carl Hetherington
When a subtitle spans 3 reels were were backing off the end of the subtitle at the end of reel #1 but not the one at the end of reel #2, causing two subs to be too close together.
2021-03-16Split subtitles at reel boundaries (#1918).Carl Hetherington
2021-02-23Fix assertion failure in AudioBuffers::copy_from() (#1909)Carl Hetherington
A number of frames N was being split up into two parts which together were bigger than N, meaning a copy of one of the parts failed.
2021-02-23Don't write active picture area with zero width or height as it makes ↵Carl Hetherington
verification fail.
2021-02-17Assorted C++11 tidying.Carl Hetherington
2021-01-31More enum class additions.Carl Hetherington
2021-01-26libdcp API change ReelMXF -> ReelFileAsset.Carl Hetherington
2021-01-22Make PKL AnnotationText the same as CPL ContentTitleText per Bv2.1Carl Hetherington
2021-01-21Adapt for libdcp use of enum class.Carl Hetherington
2021-01-07BOOST_FOREACH.Carl Hetherington
2021-01-07std::shared_ptrCarl Hetherington
2020-12-22Pass fonts from content around as FontData.Carl Hetherington
i.e. as a block of memory rather than a file. Also, get the fonts from the decoder rather than the content. Together, these changes allow us to use fonts from SMPTE DCPs added as content. Before, fonts would be messed up in those cases (#1885).
2020-12-08In a DCP with any subs/ccaps, make sure every reel has them (#1340).Carl Hetherington
2020-12-08Write subtitles and closed captions to a test DCP in the hints thread,Carl Hetherington
then check the result for Bv2.1 violations (part of #1800).
2020-12-08Make Writer take an output DCP path rather than getting it from theCarl Hetherington
film itself.
2020-12-08Make Writer tolerate a nullptr Job.Carl Hetherington
2020-12-08Use a weak_ptr<Film> in ReelWriter.Carl Hetherington
2020-12-08Use a weak_ptr<Film> in Writer.Carl Hetherington
2020-12-06Remove a pointless parameter that the callee can calculate.Carl Hetherington
2020-12-05Remove redundant check.Carl Hetherington
2020-11-26Calculate hashes for any referenced assets that do not already have one.Carl Hetherington
This is necessary so that we always include <Hash> in CPLs even when referencing DCPs that do not have it.
2020-11-20Subtitle language handling tweaks; write multiple subtitle languagesCarl Hetherington
to SMPTE extended metadata.
2020-11-20Remove subtitle language from text content.Carl Hetherington
2020-11-02Pass around JPEG2000 data as a shared_ptr and hence avoid a copyCarl Hetherington
of 4MB of data for every JPEG2000 frame we decode.
2020-10-21macOS / new boost build fixes.v2.15.104Carl Hetherington
2020-09-23Build fixes.Carl Hetherington
2020-09-23Support CPL metadata.Carl Hetherington
2020-09-23Adapt for changes to libdcp API.Carl Hetherington
2020-07-29Fix bugs in thread termination causing occasional pthreadCarl 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-06-19Make Atmos content work more like other content. Now its MXFsv2.15.82Carl Hetherington
are re-written, meaning that they can be encrypted. This (along with the libdcp update) also fixes assorted Atmos bugs.
2020-06-08Always sign DCPs (#1760).Carl Hetherington
2020-05-20Difficult to see how any unprotected write with multiple readersCarl Hetherington
could be safe.
2020-04-19Add _last_written to Writer, containing the last written frame and eyesCarl Hetherington
to each reel. This is updated when things are popped off the queue, with _state_mutex_held, and used in preference to the ones in ReelWriter which were previously being updated during the time the _state_mutex lock is unlocked in the body of Writer::thread(). This was not thread safe (thanks, valgrind!)
2020-04-19Use a BOOST_FOREACH.Carl Hetherington
2020-04-19Rename a variable.Carl Hetherington
2020-02-16Make a new AudioBuffers constructor and use it to avoid some use of the more ↵Carl Hetherington
complicated copy_from.
2020-01-30Various thread cleanups.Carl Hetherington
2019-12-15Support content version metadata (#782).Carl Hetherington