MediaAov.hpp
1 //
2 // Created by tfh on 2024/09/02.
3 //
4 
5 #ifndef EMX_MediaAov_HPP
6 #define EMX_MediaAov_HPP
7 
8 #include "media/common/MediaInfAov.hpp"
9 #include "MediaParamCBase.hpp"
10 #include "EmxCore.hpp"
11 
12 namespace Emx {
17  class MediaAov : public MediaInfAov, public MediaParamCBase<MediaInfAov::Param> {
18  public:
19  explicit MediaAov(int32_t chn) : MediaParamCBase(MediaModE::Aov, chn) {}
20 
27  };
30  public:
31  MediaAovMessage() : m_started(false) {}
32 
34  using OnGetInfoCallback = std::function<void(MediaInfAov::AovPushFrame &frame)>;
35 
44  ErrCodeE Start(EuvLoop &loop, char *buffer, int bufferSize, OnGetInfoCallback cb);
45 
47  void Stop();
48 
49  protected:
50  void OnMsgRecv(uint32_t topic, const char *data, int32_t size);
51 
52  private:
54  OnGetInfoCallback m_cb;
55  bool m_started;
56  };
58 }// namespace Emx
59 
60 #endif//EMX_MediaAov_HPP
实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
Definition: EuvLoop.hpp:18
异步Aov消息数据接收
Definition: MediaAov.hpp:29
ErrCodeE Start(EuvLoop &loop, char *buffer, int bufferSize, OnGetInfoCallback cb)
开始接收Aov消息数据
std::function< void(MediaInfAov::AovPushFrame &frame)> OnGetInfoCallback
异步Aov消息接收回调函数
Definition: MediaAov.hpp:34
void OnMsgRecv(uint32_t topic, const char *data, int32_t size)
MediaAovMessage()
Definition: MediaAov.hpp:31
void Stop()
停止接收ISP消息数据
视频输出
Definition: MediaAov.hpp:17
MediaAov(int32_t chn)
Definition: MediaAov.hpp:19
ErrCodeE UpdateStatus(AovStatusTypeE type) override
更新aov状态
Aov接口
Definition: MediaInfAov.hpp:15
AovStatusTypeE
aov状态类型
Definition: MediaInfAov.hpp:34
客户端参数基类,方便通用操作
Definition: MediaParamCBase.hpp:35
用于Topic的异步订阅
Definition: MsgTopic.hpp:175
MediaModE
Definition: MediaTypedef.hpp:60
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10
Definition: MediaInfAov.hpp:54