blob: eaa6649dd2148e3a5bc9879b5da1036c3fc63ac3 [file] [log] [blame]
agsantos1e7736c2020-10-28 14:39:13 -04001HEADER
2
3#pragma once
4
5// AvFrame
6extern "C" {
7#include <libavutil/frame.h>
8}
9#include <observer.h>
10
11// Frame Scaler
12#include <framescaler.h>
13
14namespace jami {
15
16class GENERICVideoSubscriber : public jami::Observer<AVFrame*>
17{
18public:
19 GENERICVideoSubscriber(const std::string& dataPath);
20 ~GENERICVideoSubscriber();
21
22 virtual void update(jami::Observable<AVFrame*>*, AVFrame* const&) override;
23 virtual void attached(jami::Observable<AVFrame*>*) override;
24 virtual void detached(jami::Observable<AVFrame*>*) override;
25
26 void detach();
27
28private:
29 // Observer pattern
30 Observable<AVFrame*>* observable_ = nullptr;
31
32 // Data
33 std::string path_;
34 FrameScaler scaler;
35
36 // Status variables of the processing
37 bool firstRun {true};
38};
39} // namespace jami