blob: 6b3a70dc06c5c1f6d953293468f553e40811caf8 [file] [log] [blame]
HEADER
#pragma once
// Project
#include "GENERICVideoSubscriber.h"
// Plugin
#include "plugin/jamiplugin.h"
#include "plugin/mediahandler.h"
using avSubjectPtr = std::weak_ptr<jami::Observable<AVFrame*>>;
namespace jami {
class GENERICMediaHandler : public jami::CallMediaHandler
{
public:
GENERICMediaHandler(std::map<std::string, std::string>&& ppm, std::string&& dataPath);
~GENERICMediaHandler();
virtual void notifyAVFrameSubject(const StreamData& data, avSubjectPtr subject) override;
virtual std::map<std::string, std::string> getCallMediaHandlerDetails() override;
virtual void detach() override;
virtual void setPreferenceAttribute(const std::string& key, const std::string& value) override;
virtual bool preferenceMapHasKey(const std::string& key) override;
std::shared_ptr<GENERICVideoSubscriber> mVS;
const std::string& dataPath() const { return datapath_; }
private:
const std::string datapath_;
std::map<std::string, std::string> ppm_;
};
} // namespace jami