]> git.sesse.net Git - casparcg/blobdiff - core/producer/media_info/media_info_repository.h
Don't persist media info, but generate at server startup in background thread instead...
[casparcg] / core / producer / media_info / media_info_repository.h
index c9b93df1eaf7ed68c151c585d0c4a1fb2be785e1..c01fec67cb3da1733646eae4456ea08b27961e42 100644 (file)
 #pragma once
 
 #include <string>
+#include <functional>
 
 namespace caspar { namespace core {
 
 struct media_info;
+typedef std::function<bool (const std::wstring& f, media_info& info)> media_info_extractor;
 
 struct media_info_repository
 {
        virtual ~media_info_repository() { }
-       virtual void store(std::wstring media_file, media_info info) = 0;
-       virtual bool try_load(
-                       const std::wstring& media_file, media_info& info) const = 0;
-       virtual void remove(const std::wstring& media_file) = 0;
+       virtual void register_extractor(media_info_extractor extractor) = 0;
+       virtual media_info get(const std::wstring& file) = 0;
+       virtual void remove(const std::wstring& file) = 0;
 };
 
 }}