summaryrefslogtreecommitdiff
path: root/src/lib/render_text.cc
AgeCommit message (Collapse)Author
2023-12-05Account for split branch in libdcp.splitCarl Hetherington
2023-09-03Ignore newlines in subtitle text (#2341).Carl Hetherington
2023-08-29Fix vertical alignment of subtitles in some cases (#2569).Carl Hetherington
2023-08-29Fix incorrect horizontal positions when different HPositions are used with ↵Carl Hetherington
one VPosition. Previously if HPosition changed we would still use a single "line" (i.e. Pango layout) for all the text, meaning that HPosition would not be respected.
2023-08-29Cleanup: use some more vector instead of list.Carl Hetherington
2023-06-09Cleanup: whitespace fix.Carl Hetherington
2023-04-09Fix subtitle font handling with in-memory fonts from SMPTE (#2509).v2.16.52Carl Hetherington
Previously we would fail to make a font available if it came from a SMPTE MXF. In that case we have a memory buffer containing the TTF/OTF file but no file; here we add a hack/workaround so that in-memory font files can be used by FontConfig.
2023-02-27Add override_standard to bounding_box().Carl Hetherington
2023-02-27Cleanup: pass required things int {x,y}_position instead of a whole StringText.Carl Hetherington
2023-02-27Add bounding_box().Carl Hetherington
2023-02-27Move the contents of setup_layout() into create_layout() and makeCarl Hetherington
a new setup_layout() which can do some more stuff.
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-12-01Escape entities just before Pango rendering (#2382).v2.16.35Carl Hetherington
Previously, text coming out of the player would have things like & escaped to &. This escaping is also done by libxml++ when writing XML, so doing it in the player would mean it was done twice. We do, however, need to escape things before passing them to Pango as otherwise it gives errors and renders nothing for the line. Here we move the escaping to just before the rendering, meaning that in the reset of DoM we should pass unescaped strings around.
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-07-20Handle vertical alignment of subs correctly wrt the difference between ↵Carl Hetherington
Interop and SMPTE.
2022-07-20Whitespace tweak.Carl Hetherington
2022-07-20Tidy up font rendering for subtitles.Carl Hetherington
Here was use get_ink_extents() rather than get_pixel_size() to find out how big the rendered subtitle will be, then use the x/y values of this extents rectangle to offset the rendering within the image. This allows the removal of some hacks to make accents visible.
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-07Move fontconfig-related code out to a class.Carl Hetherington
2022-06-05Improve accuracy of subtitle font sizing.Carl Hetherington
2022-04-22Use libdcp's warnings.hCarl Hetherington
2021-10-25Fix fade factor calculation when there is no end time.Carl Hetherington
In this case we can't do any fade out.
2021-10-17Basic and slightly inaccurate support for <Space> in subtitles (#2103).v2.15.170Carl Hetherington
Adding horizontal space to a Pango layout is hard, and I think this change probably gets it slightly wrong, but it's a step in the right direction.
2021-10-17Move some functions up the file so we can use them.Carl Hetherington
2021-09-27Check that the image used to make a Cairo::ImageSurface is the right ↵Carl Hetherington
alignment and pixel format.
2021-09-27Remove unused usingCarl Hetherington
2021-09-27Replace aligned bool with enum Alignment.Carl Hetherington
2021-08-01Do all text -> HTML conversion for subtitles in the same place.Carl Hetherington
Previously we would convert > to &gt; then the ampersand to &amp; resulting in &amp;gt;
2021-04-08Remove some old Centos 5 support.Carl Hetherington
2021-04-08Assorted C++11/formatting cleanups.Carl Hetherington
2021-01-21Adapt for libdcp use of enum class.Carl Hetherington
2021-01-07BOOST_FOREACH.Carl Hetherington
2021-01-07std::shared_ptrCarl Hetherington
2021-01-04Check that pango/cairo stuff is created successfully.Carl Hetherington
2020-11-16Fix thinko-ed logic causing all subtitles to be treated as thoughCarl Hetherington
they have borders. This fix will cause some movement of border-less subtitles (in existing projects) within the video frame.
2020-10-12Make use of default_font_file().Carl Hetherington
2020-09-27Go back to add_to_cairo_context rather than show_in_cairo_context.Carl Hetherington
On Linux, at least, doing add_to_cairo_context() fill() add_to_cairo_context() stroke() gives a nicer output than show_in_cairo_context() It's not clear exactly what the difference is, but the anti aliasing looks better and the font outlines basically look smoother. May help with #1815.
2020-09-14Rename shared_path -> resources_path.Carl Hetherington
2020-08-03Fix slightly chopped-off subtitles when there are borders.Carl Hetherington
2020-07-26Various OSX warnings fixes.Carl Hetherington
2020-04-24Substantial reworking of the font rendering code to measureCarl Hetherington
the size of the text before rendering, thereby creating correctly- sized output images (rather than ones with guesses on height and with the full target width). This uses some potentially dubious behaviour described here https://stackoverflow.com/questions/31788577/create-pango-layout-before-cairo-surface and could cause any number of problems. The advantages are that a) it should be a little more efficient and b) the images created for the subtitle analysis code are useful.
2020-04-24More extractions.Carl Hetherington
2020-04-24Use a variable for subtitles.front()Carl Hetherington
2020-04-24Extract some bits of code into their own methods.Carl Hetherington
2019-05-10Put Time types in dcpomatic namespace.Carl Hetherington
2019-02-03Fix incorrect subtitle positioning when there are simultaneousCarl Hetherington
subtitles at the same vposition from different reference points (#1458).
2019-01-27Remove specification of italic/bold fonts (#1451); synthesis will be used ↵v2.13.110Carl Hetherington
instead.
2019-01-26Modify FontConfig call to allow italic/bold synthesis.Carl Hetherington
2019-01-26Revert accidentally-committed stuff in pot/merge.Carl Hetherington