blob: 6b3a70dc06c5c1f6d953293468f553e40811caf8 [file] [log] [blame]
agsantos1e7736c2020-10-28 14:39:13 -04001HEADER
2
3#pragma once
4
5// Project
6#include "GENERICVideoSubscriber.h"
7
8// Plugin
9#include "plugin/jamiplugin.h"
10#include "plugin/mediahandler.h"
11
12using avSubjectPtr = std::weak_ptr<jami::Observable<AVFrame*>>;
13
14namespace jami {
15
16class GENERICMediaHandler : public jami::CallMediaHandler
17{
18public:
19 GENERICMediaHandler(std::map<std::string, std::string>&& ppm, std::string&& dataPath);
20 ~GENERICMediaHandler();
21
22 virtual void notifyAVFrameSubject(const StreamData& data, avSubjectPtr subject) override;
23 virtual std::map<std::string, std::string> getCallMediaHandlerDetails() override;
24
25 virtual void detach() override;
26 virtual void setPreferenceAttribute(const std::string& key, const std::string& value) override;
27 virtual bool preferenceMapHasKey(const std::string& key) override;
28
29 std::shared_ptr<GENERICVideoSubscriber> mVS;
30
31 const std::string& dataPath() const { return datapath_; }
32
33private:
34 const std::string datapath_;
35 std::map<std::string, std::string> ppm_;
36};
37} // namespace jami