, thumbnail_creator_(thumbnail_creator)
, media_info_repo_(std::move(media_info_repo))
, producer_registry_(std::move(producer_registry))
+ , mipmap_(mipmap)
, monitor_(monitor_factory.create(
media_path,
filesystem_event::ALL,
void generate_thumbnail(const boost::filesystem::path& file)
{
+ auto media_file_with_extension = get_relative(file, media_path_);
auto media_file = get_relative_without_extension(file, media_path_);
auto png_file = thumbnails_path_ / (media_file.wstring() + L".png");
std::promise<void> thumbnail_ready;
{
- auto producer = frame_producer::empty();
-
- try
- {
- producer = producer_registry_->create_thumbnail_producer(
- frame_producer_dependencies(image_mixer_, { }, format_desc_, producer_registry_),
- media_file.wstring());
- }
- catch (const boost::thread_interrupted&)
- {
- throw;
- }
- catch (...)
- {
- CASPAR_LOG(debug) << L"Thumbnail producer failed to initialize for " << media_file;
- return;
- }
-
- if (producer == frame_producer::empty())
- {
- CASPAR_LOG(trace) << L"No appropriate thumbnail producer found for " << media_file;
- return;
- }
-
boost::filesystem::create_directories(png_file.parent_path());
output_->on_send = [this, &png_file] (const_frame frame)
{
try
{
- raw_frame = producer->create_thumbnail_frame();
+ raw_frame = producer_registry_->create_thumbnail(frame_producer_dependencies(image_mixer_, {}, format_desc_, producer_registry_), media_file.wstring());
media_info_repo_->remove(file.wstring());
media_info_repo_->get(file.wstring());
}
}
catch (...)
{
- CASPAR_LOG(debug) << L"Thumbnail producer failed to create thumbnail for " << media_file;
+ CASPAR_LOG_CURRENT_EXCEPTION_AT_LEVEL(trace);
+ CASPAR_LOG(info) << L"Thumbnail producer failed to create thumbnail for " << media_file_with_extension << L". Turn on log level trace to see more information.";
return;
}
if (raw_frame == draw_frame::empty()
|| raw_frame == draw_frame::late())
{
- CASPAR_LOG(debug) << L"No thumbnail generated for " << media_file;
+ CASPAR_LOG(debug) << L"No thumbnail producer for " << media_file_with_extension;
return;
}
try
{
boost::filesystem::last_write_time(png_file, boost::filesystem::last_write_time(file));
- CASPAR_LOG(debug) << L"Generated thumbnail for " << media_file;
+ CASPAR_LOG(info) << L"Generated thumbnail for " << media_file_with_extension;
}
catch (...)
{
}
}
else
- CASPAR_LOG(debug) << L"No thumbnail generated for " << media_file;
+ CASPAR_LOG(debug) << L"No thumbnail generated for " << media_file_with_extension;
}
};