X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Frender_subtitles.cc;h=5364b8dfe3eeb9a3e0f0c1655c2b1ff4a425ca3a;hb=9e4c091e6ef0f79fab10664e95240de2f14e5702;hp=c18cb4272440958db21d27f055ae0eb003131b5c;hpb=cc3900735839ff4b0da0c046b5c606c440ba917a;p=dcpomatic.git diff --git a/src/lib/render_subtitles.cc b/src/lib/render_subtitles.cc index c18cb4272..5364b8dfe 100644 --- a/src/lib/render_subtitles.cc +++ b/src/lib/render_subtitles.cc @@ -28,6 +28,7 @@ using std::cout; using std::string; using std::min; using std::max; +using std::pair; using boost::shared_ptr; using boost::optional; @@ -46,12 +47,11 @@ calculate_position (dcp::VAlign v_align, double v_position, int target_height, i return 0; } -void -render_subtitles (list subtitles, dcp::Size target, shared_ptr& image, Position& position) +PositionImage +render_subtitles (list subtitles, dcp::Size target) { if (subtitles.empty ()) { - image.reset (); - return; + return PositionImage (); } /* Estimate height that the subtitle image needs to be */ @@ -68,7 +68,7 @@ render_subtitles (list subtitles, dcp::Size target, shared_ top = top.get() - 32; bottom = bottom.get() + 32; - image.reset (new Image (PIX_FMT_RGBA, dcp::Size (target.width, bottom.get() - top.get ()), false)); + shared_ptr image (new Image (PIX_FMT_RGBA, dcp::Size (target.width, bottom.get() - top.get ()), false)); image->make_black (); Cairo::RefPtr surface = Cairo::ImageSurface::create ( @@ -146,5 +146,7 @@ render_subtitles (list subtitles, dcp::Size target, shared_ context->stroke (); } } + + return PositionImage (image, Position (0, top.get ())); }