\r
void destroy_producer(safe_ptr<frame_producer>& producer)\r
{\r
- bool unique = producer.unique();\r
-\r
- if(!unique)\r
- CASPAR_LOG(warning) << producer->print() << L" Not destroyed on safe asynchronous destruction thread.";\r
+ if(!producer.unique())\r
+ CASPAR_LOG(debug) << producer->print() << L" Not destroyed on safe asynchronous destruction thread.";\r
\r
producer = frame_producer::empty();\r
- \r
- if(unique)\r
- CASPAR_LOG(debug) << producer->print() << L" Destroyed.";\r
}\r
\r
class destroy_producer_proxy : public frame_producer\r
struct stage::implementation : boost::noncopyable\r
{ \r
std::map<int, layer> layers_; \r
- typedef std::map<int, layer>::value_type layer_t;\r
- \r
video_channel_context& channel_;\r
public:\r
implementation(video_channel_context& video_channel) \r
\r
try\r
{\r
- auto layers2 = std::move(layers_);\r
- std::remove_copy_if(layers2.begin(), layers2.end(), std::inserter(layers_, layers_.begin()), [](layer_t& layer){return layer.second.empty();});\r
-\r
BOOST_FOREACH(auto& layer, layers_)\r
frames[layer.first] = layer.second.receive();\r
}\r