Remove unnecessary subtitle scale (I think).
authorCarl Hetherington <cth@carlh.net>
Sun, 2 Sep 2018 02:12:43 +0000 (03:12 +0100)
committerCarl Hetherington <cth@carlh.net>
Sun, 2 Sep 2018 02:12:43 +0000 (03:12 +0100)
src/lib/player.cc
src/lib/player.h

index 12c03e3..15f274e 100644 (file)
@@ -307,39 +307,6 @@ Player::film_change (ChangeType type, Film::Property p)
        }
 }
 
-list<PositionImage>
-Player::transform_bitmap_texts (list<BitmapText> subs) const
-{
-       list<PositionImage> all;
-
-       for (list<BitmapText>::const_iterator i = subs.begin(); i != subs.end(); ++i) {
-               if (!i->image) {
-                       continue;
-               }
-
-               /* We will scale the subtitle up to fit _video_container_size */
-               dcp::Size scaled_size (i->rectangle.width * _video_container_size.width, i->rectangle.height * _video_container_size.height);
-
-               all.push_back (
-                       PositionImage (
-                               i->image->scale (
-                                       scaled_size,
-                                       dcp::YUV_TO_RGB_REC601,
-                                       i->image->pixel_format (),
-                                       true,
-                                       _fast
-                                       ),
-                               Position<int> (
-                                       lrint (_video_container_size.width * i->rectangle.x),
-                                       lrint (_video_container_size.height * i->rectangle.y)
-                                       )
-                               )
-                       );
-       }
-
-       return all;
-}
-
 shared_ptr<PlayerVideo>
 Player::black_player_video_frame (Eyes eyes) const
 {
@@ -714,8 +681,24 @@ Player::open_subtitles_for_frame (DCPTime time) const
                ) {
 
                /* Bitmap subtitles */
-               list<PositionImage> c = transform_bitmap_texts (j.bitmap);
-               copy (c.begin(), c.end(), back_inserter (captions));
+               BOOST_FOREACH (BitmapText i, j.bitmap) {
+                       if (!i.image) {
+                               continue;
+                       }
+
+                       /* i.image will already have been scaled to fit _video_container_size */
+                       dcp::Size scaled_size (i.rectangle.width * _video_container_size.width, i.rectangle.height * _video_container_size.height);
+
+                       captions.push_back (
+                               PositionImage (
+                                       i.image,
+                                       Position<int> (
+                                               lrint (_video_container_size.width * i.rectangle.x),
+                                               lrint (_video_container_size.height * i.rectangle.y)
+                                               )
+                                       )
+                               );
+               }
 
                /* String subtitles (rendered to an image) */
                if (!j.string.empty ()) {
index 70a2e4a..95547f6 100644 (file)
@@ -115,7 +115,6 @@ private:
        void film_change (ChangeType, Film::Property);
        void playlist_change (ChangeType);
        void playlist_content_change (ChangeType, int, bool);
-       std::list<PositionImage> transform_bitmap_texts (std::list<BitmapText>) const;
        Frame dcp_to_content_video (boost::shared_ptr<const Piece> piece, DCPTime t) const;
        DCPTime content_video_to_dcp (boost::shared_ptr<const Piece> piece, Frame f) const;
        Frame dcp_to_resampled_audio (boost::shared_ptr<const Piece> piece, DCPTime t) const;