blob: e213c0abc58adaa7854d2970b149bf8e099d2ac2 [file] [log] [blame]
#pragma once
//Project
#include "videoSubscriber.h"
// Plugin
#include "plugin/jamiplugin.h"
#include "plugin/mediahandler.h"
using avSubjectPtr = std::weak_ptr<jami::Observable<AVFrame*>>;
namespace jami
{
class PluginMediaHandler : public jami::CallMediaHandler
{
public:
PluginMediaHandler(std::map<std::string, std::string>&& ppm, std::string &&dataPath);
~PluginMediaHandler() override;
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;
std::shared_ptr<VideoSubscriber> mVS;
// std::shared_ptr<VideoSubscriber> mpInput;
// std::shared_ptr<VideoSubscriber> mpReceive;
std::string dataPath() const { return datapath_; }
private:
bool preferenceMapHasKey(const std::string& key);
private:
const std::string datapath_;
std::map<std::string, std::string> ppm_;
};
}