MediaVdec.hpp
1 //
2 // Created by tfh on 2024/01/06.
3 //
4 
5 #ifndef EMX_MediaVdec_HPP
6 #define EMX_MediaVdec_HPP
7 
8 #include "media/common/MediaInfVdec.hpp"
9 #include "MediaParamCBase.hpp"
10 #include "media/common/MediaRingBuffer.hpp"
11 
12 namespace Emx {
21  class MediaVdec : public MediaInfVdec, public MediaParamCBase<MediaInfVdec::Param> {
22  public:
28  explicit MediaVdec(int32_t chn) : MediaParamCBase(MediaModE::Vdec, chn) {}
29  };
30 
35  public:
41  explicit MediaVdecStream(int chn) : m_chn(chn) {}
42 
50 
58 
66  ErrCodeE PushFrame(MediaInfVdec::FrameData &frame, int32_t timeoutMs);
67 
68  private:
69  int m_chn;
70  int m_key;
71  MediaRingBufferWriter m_ring;
72  };
73 
78  public:
84  explicit MediaVdecStreamAsync(int chn) : m_chn(chn) {}
85 
94 
102 
110 
111  private:
113  int m_chn;
114  int m_key;
115  MediaRingBufferWriter m_ring;
116  };
118 }// namespace Emx
119 
120 #endif//EMX_MediaVdec_HPP
实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
Definition: EuvLoop.hpp:18
Definition: MediaInfVdec.hpp:15
客户端参数基类,方便通用操作
Definition: MediaParamCBase.hpp:35
媒体环形共享缓冲区写类(注意:所有操作都是非线程安全的)
Definition: MediaRingBuffer.hpp:17
异步视频解码流类,用于处理视频解码流的异步操作。
Definition: MediaVdec.hpp:77
ErrCodeE PushFrame(MediaInfVdec::FrameData &frame)
异步推送一帧视频数据到解码流。
ErrCodeE Create(EuvLoop &loop)
创建异步视频解码流。
ErrCodeE Destroy()
销毁异步视频解码流。
MediaVdecStreamAsync(int chn)
构造函数,初始化异步视频解码流实例。
Definition: MediaVdec.hpp:84
同步视频解码流类,用于处理视频解码流的同步操作。
Definition: MediaVdec.hpp:34
MediaVdecStream(int chn)
构造函数,初始化同步视频解码流实例。
Definition: MediaVdec.hpp:41
ErrCodeE Create()
创建视频解码流。
ErrCodeE Destroy()
销毁视频解码流。
ErrCodeE PushFrame(MediaInfVdec::FrameData &frame, int32_t timeoutMs)
推送一帧视频数据到解码流。
视频解码类,实现视频解码相关功能。
Definition: MediaVdec.hpp:21
MediaVdec(int32_t chn)
构造函数,初始化视频解码实例。
Definition: MediaVdec.hpp:28
用于Topic的异步发布
Definition: MsgTopic.hpp:68
MediaModE
Definition: MediaTypedef.hpp:60
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10
Definition: MediaInfVdec.hpp:24