summaryrefslogtreecommitdiff
path: root/src/lib/reel_writer.h
AgeCommit message (Collapse)Author
2025-07-01White space: player_video.{cc,h} reel_writer.{cc,h} maths_util.{cc,h} ↵Carl Hetherington
upmixer_{a,b}.{cc,h} upload_job.{cc,h}
2024-12-26Give ownership of info files to ReelWriters (#2912).v2.18.2Carl Hetherington
The motivation here is to stop a pattern where we create a file, close it, and then re-open it (many times) as I think there are problems on Windows when a virus scanner sees the new file, opens it for checking, and then we can't re-open it. This also makes things a fair bit simpler, as a lock is removed and we don't try to differentiate read/write cases by opening the file in different ways; it's now always writeable.
2024-09-03Adapt to some libdcp class renaming to allow open captions/closed subtitles.Carl Hetherington
2024-05-11Stop using video directory and hard-linking (#2756).Carl Hetherington
Instead store details of a previously-created asset in the film's metadata and then look there for potential video files to re-use.
2024-04-22Support encoding of MPEG2 DCPs.Carl Hetherington
2024-04-21Extract frame info read/write to new class.Carl Hetherington
2024-04-21Rename Encoder -> FilmEncoder, and subclasses.Carl Hetherington
2024-04-21Rename classes to follow preparatory renames in libdcp.Carl Hetherington
2023-11-20Improve progress reporting of digest calculations (might help with #2643).Carl Hetherington
2023-05-12Only add fonts to assets when they are required.Carl Hetherington
2023-02-27Support the 2014 version of SMPTE 428-7 in render_text.cc and use itCarl Hetherington
when placing subtitles (e.g. SRT). Also default to outputting 2014-era alignment.
2022-12-13Add video_{range,frame_type}.{cc,h} and remove some types.h includes.Carl Hetherington
2022-11-21Fix subtitle vertical position (#2367).Carl Hetherington
Previously we would not account for the differences in what vertical position means between Interop and SMPTE. For interop, vertical position is the distance from the reference point to the text baseline, whereas for SMPTE it is the distance from the reference point to the top/middle/bottom of the subtitle (depending on the reference). This caused differences between the preview and the DCP for some cases (notably, using SRT/SSA and making Interop DCPs, or converting Interop DCP subs to SMPTE, or vice versa).
2022-09-27Use EnumIndexedVector in ReelWriter.Carl Hetherington
2022-09-15Fix some spelling mistakes (mostly in comments).Carl Hetherington
2022-06-07Rearrange subtitle font management.Carl Hetherington
With this change each subtitle coming out of the player has a reference to a dcpomatic::Font that belongs to the TextContent. This hopefully solves a few problems which all basically stemmed from the fact that previously the decoders/player were deciding what the font ID in the output DCP would be - they can't do that properly.
2022-06-07Tidying.Carl Hetherington
2022-05-05Use dcp::File in DCP-o-matic (#2231).Carl Hetherington
2021-08-12C++11 tidying.Carl Hetherington
2021-08-12Don't write empty <Text> nodes in subtitles/closed captions.Carl Hetherington
2021-05-01C++11 tidying.Carl Hetherington
2021-01-31More enum class additions.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-08Factor out empty_text_asset() method.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-08Use a weak_ptr<Film> in ReelWriter.Carl Hetherington
2020-12-08Split create_reel() up into some separate bits.Carl Hetherington
2020-12-06Remove a pointless parameter that the callee can calculate.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-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-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!)
2019-10-26Avoid unnecessary re-writes of video assets if they are staying the same ↵v2.15.26Carl Hetherington
(#1638). This is particularly useful as it avoids the hard-link-breaking copy step which is necessary if you're going to re-write the video asset with new IDs.
2019-10-21Copy with progress updates when we might copy long files (#1574).Carl Hetherington
2019-10-09Fix cross-thread access to info files. May help with #1618.Carl Hetherington
2019-09-29Improve OpenFileError so that it doesn't say "opening for read"v2.15.20Carl Hetherington
in one case where it should say "opening for read/write". Also add some unit tests for ReelWriter.
2019-05-10Put Font and Screen into dcpomatic namespace.Carl Hetherington
2019-05-10Put Time types in dcpomatic namespace.Carl Hetherington
2018-08-29Basics of splitting CCAP streams into different assets.Carl Hetherington
2018-08-23Rename some caption -> text.Carl Hetherington
2018-07-23Tidy up after mass rename.Carl Hetherington
2018-07-23More automated renaming.Carl Hetherington
ActiveCaptions -> ActiveText BitmapCaption -> BitmapText ContentCaption -> ContentText ContentTextCaption -> ContentStringText TextCaptionFileContent -> StringTextFileContent TextCaptionFileDecoder -> StringTextFileDecoder TextCaptionFile -> StringTextFile TextCaption -> StringText PlayerCaption -> PlayerText CaptionContent -> TextContent CaptionDecoder -> TextDecoder CaptionPanel -> TextPanel CaptionView -> TextView CaptionAppearanceDialog -> SubtitleAppearanceDialog CaptionType -> TextType
2018-07-19Untested writing of CCAP.Carl Hetherington
2018-07-19Clean up after previous commit.Carl Hetherington
2018-07-19Reword again: Text -> Caption and Plain -> Text.Carl Hetherington
sed -i "s/ActiveText/ActiveCaptions/g" src/lib/*.{cc,h} sed -i "s/active_text.h/active_captions.h/g" src/lib/*.{cc,h} sed -i "s/active_text.cc/active_captions.cc/g" src/lib/wscript mv src/lib/active_text.cc src/lib/active_captions.cc mv src/lib/active_text.h src/lib/active_captions.h sed -i "s/PlainTextFileContent/TextCaptionFileContent/g" src/lib/*.{cc,h} src/wx/*.cc sed -i "s/PlainTextFile/TextCaptionFile/g" src/lib/*.{cc,h} src/wx/*.cc sed -i "s/plain_text_file_content/text_caption_file_content/g" src/lib/*.{cc,h} src/lib/wscript src/wx/*.{cc,h} test/*.cc mv src/lib/plain_text_file_content.cc src/lib/text_caption_file_content.cc mv src/lib/plain_text_file_content.h src/lib/text_caption_file_content.h sed -i "s/PlainTextFileDecoder/TextCaptionFileDecoder/g" src/lib/*.{cc,h} sed -i "s/plain_text_file_decoder/text_caption_file_decoder/g" src/lib/*.{cc,h} src/lib/wscript src/wx/*.{cc,h} mv src/lib/plain_text_file_decoder.cc src/lib/text_caption_file_decoder.cc mv src/lib/plain_text_file_decoder.h src/lib/text_caption_file_decoder.h sed -i "s/PlayerText/PlayerCaption/g" src/lib/*.{cc,h} sed -i "s/player_text.cc/player_caption.cc/g" src/lib/wscript sed -i "s/player_text.h/player_caption.h/g" src/lib/*.{cc,h} mv src/lib/player_text.cc src/lib/player_caption.cc mv src/lib/player_text.h src/lib/player_caption.h sed -i "s/ContentPlainText/ContentTextCaption/g" src/lib/*.{cc,h} src/wx/*.{cc,h} sed -i "s/ContentBitmapText/ContentBitmapCaption/g" src/lib/*.{cc,h} src/wx/*.{cc,h} sed -i "s/PlainText/TextCaption/g" src/lib/*.{cc,h} test/*.cc sed -i "s/plain_text.h/text_caption.h/g" src/lib/*.{cc,h} mv src/lib/plain_text.h src/lib/text_caption.h
2018-07-19Get types into ReelWriter.Carl Hetherington
2018-07-19Finish PlayerSubtitles -> PlayerText and SubtitleString -> PlainText.Carl Hetherington
2018-07-08Write image subs to DCPs.Carl Hetherington