]> git.sesse.net Git - casparcg/blobdiff - modules/image/consumer/image_consumer.cpp
Fix thumbnail saving on non-windows systems
[casparcg] / modules / image / consumer / image_consumer.cpp
index ee49fdc003fa1be730fca8d0ae6e0dd38e0bd57d..ab466f046ce6e804d9ba718db0f795da577a0a2e 100644 (file)
@@ -27,6 +27,7 @@
 #include <common/utf.h>
 #include <common/array.h>
 #include <common/future.h>
+#include <common/os/general_protection_fault.h>
 
 #include <core/consumer/frame_consumer.h>
 #include <core/video_format.h>
@@ -65,7 +66,11 @@ void write_cropped_png(
 
        std::copy(thumbnail_view.begin(), thumbnail_view.end(), destination_view.begin());
        FreeImage_FlipVertical(bitmap.get());
+#ifdef WIN32
        FreeImage_SaveU(FIF_PNG, bitmap.get(), output_file.wstring().c_str(), 0);
+#else
+       FreeImage_Save(FIF_PNG, bitmap.get(), u8(output_file.wstring()).c_str(), 0);
+#endif
 }
 
 struct image_consumer : public core::frame_consumer
@@ -81,7 +86,7 @@ public:
        {
        }
 
-       void initialize(const core::video_format_desc&, int) override
+       void initialize(const core::video_format_desc&, const core::audio_channel_layout&, int) override
        {
        }
 
@@ -96,6 +101,8 @@ public:
 
                boost::thread async([frame, filename]
                {
+                       ensure_gpf_handler_installed_for_thread("image-consumer");
+
                        try
                        {
                                auto filename2 = filename;