MediaTypedef.hpp
1 //
2 // Created by xiong on 2020/10/26.
3 //
4 
5 #ifndef EMX_MEDIATYPEDEF_HPP
6 #define EMX_MEDIATYPEDEF_HPP
7 
8 #include "core/EmxTypeDef.hpp"
9 
11 #define EMX_AUDIO_MAX_FRAME_SIZE 2048
12 
13 namespace Emx {
18  enum class VideoCodecE : uint8_t {
19  H264 = 0,
20  H265,
21  MJPEG,
22  BUTT
23  };
24 
26  enum class AudioCodecE : uint8_t {
27  LPCM = 0,
28  AAC,
29  G711A,
30  G711U,
31  G726,
32  BUTT
33  };
34 
36  struct MediaFrame {
38  enum class TypeE : uint8_t {
39  Venc = 0,
40  Vdec,
41  Aenc,
42  Pcm,
43  Adec,
44  Snap,
45  Data,
46  } type;
47  int32_t chn;
48  int32_t size;
49  uint8_t *data;
50  int32_t off;
51  uint64_t tsInUs;
52  uint64_t utcMs;
53  uint32_t seq;
54  uint64_t trace;
56  bool isKeyFrame;
57  };
58 
59  //RPC Module
60  enum class MediaModE : uint32_t {
61  Server = 1,
62  System = 2,
63  Isp = 3,
64  Venc = 4,
65  Aenc = 5,
66  Adec = 6,
67  Snap = 7,
68  QrScan = 8,
69  Osd = 9,
70  Vi = 10,
71  Vdec = 11,
72  Vo = 12,
73  Draw = 13,
74  Aov = 14,
75  Ai = 15,
76  };
78 }// namespace Emx
79 #endif//EMX_MEDIATYPEDEF_HPP
VideoCodecE
视频编码类型
Definition: MediaTypedef.hpp:18
MediaModE
Definition: MediaTypedef.hpp:60
AudioCodecE
音频编码类型
Definition: MediaTypedef.hpp:26
@ MJPEG
MJPEG编码
@ H265
H265编码
@ H264
H264编码
@ G711A
G711A编码
@ AAC
AAC编码
@ G711U
G711U编码
@ G726
G726编码
@ LPCM
LPCM编码
Definition: EmxGpio.hpp:10
媒体帧结构体定义,用于stream发送接收
Definition: MediaTypedef.hpp:36
uint64_t tsInUs
微秒级时间戳
Definition: MediaTypedef.hpp:51
bool isKeyFrame
针对于视频编码帧,当前是否为关键帧
Definition: MediaTypedef.hpp:56
int32_t chn
通道号
Definition: MediaTypedef.hpp:47
bool paramChange
标记编解码参数等是否发生了改变
Definition: MediaTypedef.hpp:55
uint8_t * data
数据内存地址
Definition: MediaTypedef.hpp:49
TypeE
媒体帧类型
Definition: MediaTypedef.hpp:38
int32_t off
数据在ringbuffer中的偏移量(内部用户不需要关心)
Definition: MediaTypedef.hpp:50
uint32_t seq
帧序号
Definition: MediaTypedef.hpp:53
enum Emx::MediaFrame::TypeE type
int32_t size
数据大小
Definition: MediaTypedef.hpp:48
uint64_t utcMs
毫秒级utc时间戳
Definition: MediaTypedef.hpp:52
uint64_t trace
用于记录编码器获取到数据并填充此结构体时刻的时钟,基于Time::GetMonoClockUs();
Definition: MediaTypedef.hpp:54