1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| #pragma once
|
| #include <stdint.h>
| #include "Mutex/Cond.h"
| extern "C"
| {
| #include <libavcodec/avcodec.h>
| }
|
| enum av_type_t
| {
| AV_VIDEO = 0,
| AV_AUDIO,
| AV_UNKOWN,
| };
|
| enum audio_codec_t
| {
| AUDIO_UNKNOWN = 0,
| AUDIO_G711_A,
| AUDIO_G711_MU,
| AUDIO_G722,
| AUDIO_G723_1,
| AUDIO_G726,
| AUDIO_G729,
| };
|
| enum video_codec_t
| {
| VIDEO_UNKNOWN = 0,
| VIDEO_H264,
| VIDEO_HEVC,
| VIDEO_MPEG4,
| };
|
| enum VIDEOTYPE {
| NORMALVIDEO = 0,
| RUNWEIVIDEO = 1,
| CDYDVIDEO = 2,
| CSHHVIDEO = 3,
| ZZCXVIDEO = 4,
| HKVIDEO = 5,
| NULLVIDEO
| };
|
| typedef struct packet_t {
| uint8_t* data;
| uint32_t length;
| int64_t pts;
| int64_t dts;
| av_type_t type;
| }packet_t;
|
| class DataCallback {
| public:
| DataCallback():opaque(NULL){}
| virtual ~DataCallback() = default;
|
| virtual int push_packet(const packet_t* pkt, const av_type_t type) = 0;
| virtual int open_codec(const int codec_type, const av_type_t type) = 0;
| virtual int is_quit() = 0;
| virtual int quit() = 0;
| virtual int push_finish() = 0;
|
| void* opaque;
| };
|
|