]> git.sesse.net Git - casparcg/commitdiff
* Merged possibility to set mipmap flag when generating thumbnails.
authorHelge Norberg <helge.norberg@svt.se>
Fri, 5 Jun 2015 14:28:55 +0000 (16:28 +0200)
committerHelge Norberg <helge.norberg@svt.se>
Fri, 5 Jun 2015 14:28:55 +0000 (16:28 +0200)
core/thumbnail_generator.cpp
core/thumbnail_generator.h
shell/casparcg.config
shell/server.cpp

index 38b21f3234b85e4fc7efd4f6a50e2e875929cd09..cc26be2b6838d806802047c90e9aca9fdbde44b3 100644 (file)
@@ -109,6 +109,7 @@ private:
        mixer                                                                   mixer_;
        thumbnail_creator                                               thumbnail_creator_;
        spl::shared_ptr<media_info_repository>  media_info_repo_;
+       bool                                                                    mipmap_;
        filesystem_monitor::ptr                                 monitor_;
 public:
        impl(
@@ -121,7 +122,8 @@ public:
                        std::unique_ptr<image_mixer> image_mixer,
                        int generate_delay_millis,
                        const thumbnail_creator& thumbnail_creator,
-                       spl::shared_ptr<media_info_repository> media_info_repo)
+                       spl::shared_ptr<media_info_repository> media_info_repo,
+                       bool mipmap)
                : media_path_(media_path)
                , thumbnails_path_(thumbnails_path)
                , width_(width)
@@ -318,11 +320,12 @@ public:
                        auto transformed_frame = draw_frame(raw_frame);
                        transformed_frame.transform().image_transform.fill_scale[0] = static_cast<double>(width_) / format_desc_.width;
                        transformed_frame.transform().image_transform.fill_scale[1] = static_cast<double>(height_) / format_desc_.height;
+                       transformed_frame.transform().image_transform.use_mipmap = mipmap_;
                        frames.insert(std::make_pair(0, transformed_frame));
 
                        std::shared_ptr<void> ticket(nullptr, [&thumbnail_ready](void*) { thumbnail_ready.set_value(); });
 
-                       auto mixed_frame = mixer_(frames, format_desc_);
+                       auto mixed_frame = mixer_(std::move(frames), format_desc_);
 
                        output_->send(std::move(mixed_frame), ticket);
                        ticket.reset();
@@ -357,7 +360,8 @@ thumbnail_generator::thumbnail_generator(
                std::unique_ptr<image_mixer> image_mixer,
                int generate_delay_millis,
                const thumbnail_creator& thumbnail_creator,
-               spl::shared_ptr<media_info_repository> media_info_repo)
+               spl::shared_ptr<media_info_repository> media_info_repo,
+               bool mipmap)
                : impl_(new impl(
                                monitor_factory,
                                media_path,
@@ -367,7 +371,8 @@ thumbnail_generator::thumbnail_generator(
                                std::move(image_mixer),
                                generate_delay_millis,
                                thumbnail_creator,
-                               media_info_repo))
+                               media_info_repo,
+                               mipmap))
 {
 }
 
index 30a4a5737ee951de064806f4064d30e0075220cb..fae7ed51e731b259fe5befb03b389129d6fb2a53 100644 (file)
@@ -53,7 +53,8 @@ public:
                        std::unique_ptr<class image_mixer> image_mixer,
                        int generate_delay_millis,
                        const thumbnail_creator& thumbnail_creator,
-                       spl::shared_ptr<media_info_repository> media_info_repo);
+                       spl::shared_ptr<media_info_repository> media_info_repo,
+                       bool mipmap);
        ~thumbnail_generator();
        void generate(const std::wstring& media_file);
        void generate_all();
index 2e740acb9a8b6aa86b4467e0d24e34cd35a02268..7fbadc3b4affa66a9c7e0a957434d4a2129e5c15 100644 (file)
   <flash>\r
     <buffer-depth>4</buffer-depth>\r
   </flash>\r
-  <thumbnails>\r
-    <generate-thumbnails>true</generate-thumbnails>\r
-    <width>256</width>\r
-    <height>144</height>\r
-    <video-grid>2</video-grid>\r
-    <scan-interval-millis>5000</scan-interval-millis>\r
-    <generate-delay-millis>2000</generate-delay-millis>\r
-    <video-mode>720p2500</video-mode>\r
-  </thumbnails>\r
   <lock-clear-phrase>secret</lock-clear-phrase>\r
   <channels>\r
     <channel>\r
 <flash>\r
     <buffer-depth>auto [auto|1..]</buffer-depth>\r
 </flash>\r
+<thumbnails>\r
+    <generate-thumbnails>true</generate-thumbnails>\r
+    <width>256</width>\r
+    <height>144</height>\r
+    <video-grid>2</video-grid>\r
+    <scan-interval-millis>5000</scan-interval-millis>\r
+    <generate-delay-millis>2000</generate-delay-millis>\r
+    <video-mode>720p2500</video-mode>\r
+    <mipmap>true</mipmap>\r
+</thumbnails>\r
 <channels>\r
     <channel>\r
         <video-mode> PAL [PAL|NTSC|576p2500|720p2398|720p2400|720p2500|720p5000|720p2997|720p5994|720p3000|720p6000|1080p2398|1080p2400|1080i5000|1080i5994|1080i6000|1080p2500|1080p2997|1080p3000|1080p5000|1080p5994|1080p6000|2k2398|2k2400|2k2500|4k2398|4k2400|4k2500|4k2997|4k3000] </video-mode>\r
index a7fd081bc068d867ad1b2ec8876f243462bbca05..4314f19242bb8cbec63e4f991615f95eac0bedc4 100644 (file)
@@ -255,7 +255,8 @@ struct server::impl : boost::noncopyable
                        accelerator_.create_image_mixer(),
                        pt.get(L"configuration.thumbnails.generate-delay-millis", 2000),
                        &image::write_cropped_png,
-                       media_info_repo_));
+                       media_info_repo_,
+                       pt.get(L"configuration.thumbnails.mipmap", true)));
 
                CASPAR_LOG(info) << L"Initialized thumbnail generator.";
        }