]> git.sesse.net Git - nageru/blobdiff - ffmpeg_capture.h
When we get an FFmpeg error, send a blank frame to tell the theme about the disconnec...
[nageru] / ffmpeg_capture.h
index 3b2f0e431bd6b08aa0cb7981182dd154bcf5ef5f..05e92e21fec5bfecd75fdcfddeee1ea7365a7c86 100644 (file)
@@ -108,22 +108,20 @@ public:
        void configure_card() override;
        void start_bm_capture() override;
        void stop_dequeue_thread() override;
-
-       // TODO: Specify error status through this.
-       bool get_disconnected() const override { return false; }
+       bool get_disconnected() const override { return false; }  // We never unplug.
 
        std::map<uint32_t, bmusb::VideoMode> get_available_video_modes() const;
        void set_video_mode(uint32_t video_mode_id) override {}  // Ignore.
        uint32_t get_current_video_mode() const override { return 0; }
 
        std::set<bmusb::PixelFormat> get_available_pixel_formats() const override {
-               return std::set<bmusb::PixelFormat>{ bmusb::PixelFormat_8BitRGBA };
+               return std::set<bmusb::PixelFormat>{ bmusb::PixelFormat_8BitBGRA };
        }
        void set_pixel_format(bmusb::PixelFormat pixel_format) override {
-               assert(pixel_format == bmusb::PixelFormat_8BitRGBA);
+               assert(pixel_format == bmusb::PixelFormat_8BitBGRA);
        }       
        bmusb::PixelFormat get_current_pixel_format() const override {
-               return bmusb::PixelFormat_8BitRGBA;
+               return bmusb::PixelFormat_8BitBGRA;
        }
 
        std::map<uint32_t, std::string> get_available_video_inputs() const override {
@@ -139,6 +137,7 @@ public:
 
 private:
        void producer_thread_func();
+       void send_disconnected_frame();
        bool play_video(const std::string &pathname);
        void internal_rewind();