\r
class image_renderer\r
{\r
- tbb::concurrent_unordered_map<int, tbb::concurrent_bounded_queue<std::shared_ptr<SwsContext>>> sws_devices_;\r
- tbb::concurrent_bounded_queue<spl::shared_ptr<buffer>> temp_buffers_;\r
+ tbb::concurrent_unordered_map<int64_t, tbb::concurrent_bounded_queue<std::shared_ptr<SwsContext>>> sws_devices_;\r
+ tbb::concurrent_bounded_queue<spl::shared_ptr<buffer>> temp_buffers_;\r
public: \r
boost::unique_future<array<const std::uint8_t>> operator()(std::vector<item> items, const core::video_format_desc& format_desc)\r
{ \r
data2.at(n) = const_cast<uint8_t*>(data[n]);\r
\r
auto input_av_frame = ffmpeg::make_av_frame(data2, pix_desc);\r
- \r
- int key = ((input_av_frame->width << 22) & 0xFFC00000) | ((input_av_frame->height << 6) & 0x003FC000) | ((input_av_frame->format << 7) & 0x00007F00);\r
- \r
+\r
+ \r
+ int64_t key = ((static_cast<int64_t>(input_av_frame->width) << 32) & 0xFFFF00000000) | \r
+ ((static_cast<int64_t>(input_av_frame->height) << 16) & 0xFFFF0000) | \r
+ ((static_cast<int64_t>(input_av_frame->format) << 8) & 0xFF00);\r
+\r
auto& pool = sws_devices_[key];\r
\r
std::shared_ptr<SwsContext> sws_device;\r