X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=image_input.h;fp=image_input.h;h=0000000000000000000000000000000000000000;hb=392f9d1ccb835c05a3874c4bea163788b2c37024;hp=02be497ff40e2dccee5f569a5be2e1e98a6ae4c5;hpb=330ca2f0052b06d91004c6ceb73cd57ab95e7fe1;p=nageru diff --git a/image_input.h b/image_input.h deleted file mode 100644 index 02be497..0000000 --- a/image_input.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef _IMAGE_INPUT_H -#define _IMAGE_INPUT_H 1 - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// An output that takes its input from a static image, loaded with ffmpeg. -// comes from a single 2D array with chunky pixels. The image is refreshed -// from disk about every second. -class ImageInput : public movit::FlatInput { -public: - ImageInput(const std::string &filename); - - std::string effect_type_id() const override { return "ImageInput"; } - void set_gl_state(GLuint glsl_program_num, const std::string& prefix, unsigned *sampler_num) override; - static void shutdown_updaters(); - -private: - struct Image { - unsigned width, height; - std::unique_ptr pixels; - timespec last_modified; - }; - - std::string filename, pathname; - std::shared_ptr current_image; - - static std::shared_ptr load_image(const std::string &filename, const std::string &pathname); - static std::shared_ptr load_image_raw(const std::string &pathname); - static void update_thread_func(const std::string &filename, const std::string &pathname, const timespec &first_modified); - static std::mutex all_images_lock; - static std::map> all_images; - static std::map update_threads; - - static std::mutex threads_should_quit_mu; - static bool threads_should_quit; // Under threads_should_quit_mu. - static std::condition_variable threads_should_quit_modified; // Signals when threads_should_quit is set. -}; - -#endif // !defined(_IMAGE_INPUT_H)