Check for unassigned text tracks.
authorCarl Hetherington <cth@carlh.net>
Wed, 29 Aug 2018 00:24:50 +0000 (01:24 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 29 Aug 2018 10:58:18 +0000 (11:58 +0100)
src/lib/film.cc

index 086d12e634188138590807aa9fab6c13f70f9b50..93e7aa1c05c4322368ee87299b4289a8102d02df 100644 (file)
@@ -1644,8 +1644,10 @@ Film::closed_caption_tracks () const
        list<DCPTextTrack> tt;
        BOOST_FOREACH (shared_ptr<Content> i, content()) {
                BOOST_FOREACH (shared_ptr<TextContent> j, i->text) {
-                       if (j->type() == TEXT_CLOSED_CAPTION && j->dcp_track() && find(tt.begin(), tt.end(), j->dcp_track().get()) == tt.end()) {
-                               tt.push_back (j->dcp_track().get());
+                       /* XXX: Empty DCPTextTrack ends up being a magic value here */
+                       DCPTextTrack dtt = j->dcp_track().get_value_or(DCPTextTrack());
+                       if (j->type() == TEXT_CLOSED_CAPTION && find(tt.begin(), tt.end(), dtt) == tt.end()) {
+                               tt.push_back (dtt);
                        }
                }
        }