Move video level conversion for RGB from FFmpegImageProxy to Image.
[dcpomatic.git] / src / lib / util.cc
index 24ea42b8f2e0e945a31488a414e42ca1f4017f57..a3c8c50820d3c5bca94f13e0fb52935eb933167d 100644 (file)
 #include <dcp/sound_asset.h>
 #include <dcp/subtitle_asset.h>
 #include <dcp/atmos_asset.h>
+DCPOMATIC_DISABLE_WARNINGS
 extern "C" {
 #include <libavfilter/avfilter.h>
 #include <libavformat/avformat.h>
 #include <libavcodec/avcodec.h>
 }
+DCPOMATIC_ENABLE_WARNINGS
 #include <curl/curl.h>
 #include <glib.h>
 #include <pangomm/init.h>
@@ -949,7 +951,7 @@ void
 emit_subtitle_image (ContentTimePeriod period, dcp::SubtitleImage sub, dcp::Size size, shared_ptr<TextDecoder> decoder)
 {
        /* XXX: this is rather inefficient; decoding the image just to get its size */
-       FFmpegImageProxy proxy (sub.png_image(), VideoRange::FULL);
+       FFmpegImageProxy proxy (sub.png_image());
        auto image = proxy.image().image;
        /* set up rect with height and width */
        dcpomatic::Rect<double> rect(0, 0, image->size().width / double(size.width), image->size().height / double(size.height));
@@ -1040,7 +1042,7 @@ show_jobs_on_console (bool progress)
 
 /** XXX: could use mmap? */
 void
-copy_in_bits (boost::filesystem::path from, boost::filesystem::path to, boost::function<void (float)> progress)
+copy_in_bits (boost::filesystem::path from, boost::filesystem::path to, std::function<void (float)> progress)
 {
        auto f = fopen_boost (from, "rb");
        if (!f) {
@@ -1167,3 +1169,30 @@ default_font_file ()
 
        return liberation_normal;
 }
+
+
+string
+to_upper (string s)
+{
+       transform (s.begin(), s.end(), s.begin(), ::toupper);
+       return s;
+}
+
+
+/* Set to 1 to print the IDs of some of our threads to stdout on creation */
+#define DCPOMATIC_DEBUG_THREADS 0
+
+#if DCPOMATIC_DEBUG_THREADS
+void
+start_of_thread (string name)
+{
+       std::cout << "THREAD:" << name << ":" << std::hex << pthread_self() << "\n";
+}
+#else
+void
+start_of_thread (string)
+{
+
+}
+#endif
+