/*---------------------------------------------------------------------------*/
/* video_renderer.h                                                          */
/* copyright (c) innovaphone 2023                                            */
/*                                                                           */
/*---------------------------------------------------------------------------*/

class RenderVideoProvider : public IRenderVideoProvider, public UIoExec {
    class IIoMux* const iomux;
    class IInstanceLog* const log;
    class URenderVideoProvider* const renderVideoProviderUser;
    bool closing;

public:
    RenderVideoProvider(class IIoMux* const iomux, class URenderVideoProvider* const renderVideoProviderUser, class IInstanceLog* const log);
    ~RenderVideoProvider();

    //IRenderVideoProvider
    class IRenderVideoStream * OpenVideoRenderStream(class URenderVideoStream* const user, bool preview, enum VideoCoder decoder, bool alwaysOnTop) override;
    void Close() override;

    // UIoMux
    void IoExec(void* execContext);
};
