mixer mixer_;
thumbnail_creator thumbnail_creator_;
spl::shared_ptr<media_info_repository> media_info_repo_;
+ bool mipmap_;
filesystem_monitor::ptr monitor_;
public:
impl(
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)
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();
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,
std::move(image_mixer),
generate_delay_millis,
thumbnail_creator,
- media_info_repo))
+ media_info_repo,
+ mipmap))
{
}
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();
<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
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.";
}