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
;
55
bool
paramChange
;
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
Emx::VideoCodecE
VideoCodecE
视频编码类型
Definition:
MediaTypedef.hpp:18
Emx::MediaModE
MediaModE
Definition:
MediaTypedef.hpp:60
Emx::AudioCodecE
AudioCodecE
音频编码类型
Definition:
MediaTypedef.hpp:26
Emx::VideoCodecE::MJPEG
@ MJPEG
MJPEG编码
Emx::VideoCodecE::H265
@ H265
H265编码
Emx::VideoCodecE::H264
@ H264
H264编码
Emx::VideoCodecE::BUTT
@ BUTT
Emx::MediaModE::Aenc
@ Aenc
Emx::MediaModE::Isp
@ Isp
Emx::MediaModE::Vdec
@ Vdec
Emx::MediaModE::Draw
@ Draw
Emx::MediaModE::Osd
@ Osd
Emx::MediaModE::Ai
@ Ai
Emx::MediaModE::Server
@ Server
Emx::MediaModE::Snap
@ Snap
Emx::MediaModE::System
@ System
Emx::MediaModE::QrScan
@ QrScan
Emx::MediaModE::Adec
@ Adec
Emx::MediaModE::Vo
@ Vo
Emx::MediaModE::Aov
@ Aov
Emx::MediaModE::Venc
@ Venc
Emx::MediaModE::Vi
@ Vi
Emx::AudioCodecE::G711A
@ G711A
G711A编码
Emx::AudioCodecE::AAC
@ AAC
AAC编码
Emx::AudioCodecE::G711U
@ G711U
G711U编码
Emx::AudioCodecE::BUTT
@ BUTT
Emx::AudioCodecE::G726
@ G726
G726编码
Emx::AudioCodecE::LPCM
@ LPCM
LPCM编码
Emx
Definition:
EmxGpio.hpp:10
Emx::MediaFrame
媒体帧结构体定义,用于stream发送接收
Definition:
MediaTypedef.hpp:36
Emx::MediaFrame::tsInUs
uint64_t tsInUs
微秒级时间戳
Definition:
MediaTypedef.hpp:51
Emx::MediaFrame::isKeyFrame
bool isKeyFrame
针对于视频编码帧,当前是否为关键帧
Definition:
MediaTypedef.hpp:56
Emx::MediaFrame::chn
int32_t chn
通道号
Definition:
MediaTypedef.hpp:47
Emx::MediaFrame::paramChange
bool paramChange
标记编解码参数等是否发生了改变
Definition:
MediaTypedef.hpp:55
Emx::MediaFrame::data
uint8_t * data
数据内存地址
Definition:
MediaTypedef.hpp:49
Emx::MediaFrame::TypeE
TypeE
媒体帧类型
Definition:
MediaTypedef.hpp:38
Emx::MediaFrame::TypeE::Aenc
@ Aenc
编码音频
Emx::MediaFrame::TypeE::Vdec
@ Vdec
解码视频
Emx::MediaFrame::TypeE::Pcm
@ Pcm
原始音频
Emx::MediaFrame::TypeE::Snap
@ Snap
缩略图
Emx::MediaFrame::TypeE::Adec
@ Adec
解码音频
Emx::MediaFrame::TypeE::Venc
@ Venc
编码视频
Emx::MediaFrame::TypeE::Data
@ Data
一般数据
Emx::MediaFrame::off
int32_t off
数据在ringbuffer中的偏移量(内部用户不需要关心)
Definition:
MediaTypedef.hpp:50
Emx::MediaFrame::seq
uint32_t seq
帧序号
Definition:
MediaTypedef.hpp:53
Emx::MediaFrame::type
enum Emx::MediaFrame::TypeE type
Emx::MediaFrame::size
int32_t size
数据大小
Definition:
MediaTypedef.hpp:48
Emx::MediaFrame::utcMs
uint64_t utcMs
毫秒级utc时间戳
Definition:
MediaTypedef.hpp:52
Emx::MediaFrame::trace
uint64_t trace
用于记录编码器获取到数据并填充此结构体时刻的时钟,基于Time::GetMonoClockUs();
Definition:
MediaTypedef.hpp:54