X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fffmpeg_subtitle_stream.cc;h=1101901b7f1b20a83a192129b8361f5ce4d9cba5;hb=bb3a9a12116a4b2a5bc1fef38e73853f576a773a;hp=c3c6c1f8635cc0d0c3c013d464a101f7f5d159ee;hpb=ba8a5a15cc27988e2bbc6acd470d8532f1d8e99f;p=dcpomatic.git diff --git a/src/lib/ffmpeg_subtitle_stream.cc b/src/lib/ffmpeg_subtitle_stream.cc index c3c6c1f86..1101901b7 100644 --- a/src/lib/ffmpeg_subtitle_stream.cc +++ b/src/lib/ffmpeg_subtitle_stream.cc @@ -20,8 +20,10 @@ #include "ffmpeg_subtitle_stream.h" #include +#include +LIBDCP_DISABLE_WARNINGS #include -#include +LIBDCP_ENABLE_WARNINGS #include using std::string; @@ -39,7 +41,8 @@ FFmpegSubtitleStream::FFmpegSubtitleStream (cxml::ConstNodePtr node, int version : FFmpegStream (node) { if (version >= 33) { - BOOST_FOREACH (cxml::NodePtr i, node->node_children ("Colour")) { + boost::mutex::scoped_lock lm (_mutex); + for (auto i: node->node_children ("Colour")) { _colours[RGBA(i->node_child("From"))] = RGBA (i->node_child("To")); } } @@ -50,6 +53,7 @@ FFmpegSubtitleStream::as_xml (xmlpp::Node* root) const { FFmpegStream::as_xml (root); + boost::mutex::scoped_lock lm (_mutex); for (map::const_iterator i = _colours.begin(); i != _colours.end(); ++i) { xmlpp::Node* node = root->add_child("Colour"); i->first.as_xml (node->add_child("From")); @@ -60,11 +64,13 @@ FFmpegSubtitleStream::as_xml (xmlpp::Node* root) const map FFmpegSubtitleStream::colours () const { + boost::mutex::scoped_lock lm (_mutex); return _colours; } void FFmpegSubtitleStream::set_colour (RGBA from, RGBA to) { + boost::mutex::scoped_lock lm (_mutex); _colours[from] = to; }