blob: 412d6f1e8384d00071fc984152688f32f8d9fcfb [file] [log] [blame]
agsantos1e7736c2020-10-28 14:39:13 -04001HEADER
2
3#pragma once
4
agsantos1e7736c2020-10-28 14:39:13 -04005extern "C" {
6#include <libavutil/frame.h>
7}
8#include <observer.h>
agsantosf499e072020-11-26 16:30:57 -05009---DATATYPEINCLUDES
10---
agsantos1e7736c2020-10-28 14:39:13 -040011
12namespace jami {
13
agsantosf499e072020-11-26 16:30:57 -050014class GENERICDATATYPESubscriber : public jami::Observer<AVFrame*>
agsantos1e7736c2020-10-28 14:39:13 -040015{
16public:
agsantosf499e072020-11-26 16:30:57 -050017 GENERICDATATYPESubscriber(const std::string& dataPath);
18 ~GENERICDATATYPESubscriber();
agsantos1e7736c2020-10-28 14:39:13 -040019
20 virtual void update(jami::Observable<AVFrame*>*, AVFrame* const&) override;
21 virtual void attached(jami::Observable<AVFrame*>*) override;
22 virtual void detached(jami::Observable<AVFrame*>*) override;
23
24 void detach();
25
26private:
27 // Observer pattern
28 Observable<AVFrame*>* observable_ = nullptr;
29
30 // Data
agsantosf499e072020-11-26 16:30:57 -050031 std::string path_;---
32 DATATYPEPRIVATE
33---
agsantos1e7736c2020-10-28 14:39:13 -040034 // Status variables of the processing
35 bool firstRun {true};
36};
37} // namespace jami