| Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
|
|
|
|
a new setup_layout() which can do some more stuff.
|
|
when placing subtitles (e.g. SRT). Also default to outputting 2014-era
alignment.
|
|
|
|
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.
|
|
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).
|
|
Interop and SMPTE.
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
In this case we can't do any fade out.
|
|
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.
|
|
|
|
alignment and pixel format.
|
|
|
|
|
|
Previously we would convert > to > then the ampersand to &
resulting in >
|
|
|
|
|
|
|
|
|
|
|
|
|
|
they have borders. This fix will cause some movement of border-less
subtitles (in existing projects) within the video frame.
|
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
subtitles at the same vposition from different reference points (#1458).
|
|
instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
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
|