forked from winshining/nginx-http-flv-module
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ngx_rtmp_gop_cache_module.h
65 lines (45 loc) · 1.63 KB
/
ngx_rtmp_gop_cache_module.h
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
/*
* Copyright (C) Gnolizuh
* Copyright (C) Winshining
*/
#ifndef _NGX_RTMP_GOP_CACHE_H_INCLUDE_
#define _NGX_RTMP_GOP_CACHE_H_INCLUDE_
#define NGX_GOP_CACHE_POOL_CREATE_SIZE 4096
typedef struct ngx_rtmp_gop_frame_s ngx_rtmp_gop_frame_t;
typedef struct ngx_rtmp_gop_cache_s ngx_rtmp_gop_cache_t;
struct ngx_rtmp_gop_frame_s {
ngx_rtmp_header_t h;
ngx_uint_t prio;
ngx_chain_t *frame;
ngx_rtmp_gop_frame_t *next;
};
struct ngx_rtmp_gop_cache_s {
ngx_rtmp_gop_frame_t *frame_head;
ngx_rtmp_gop_frame_t *frame_tail;
ngx_rtmp_gop_cache_t *next;
ngx_int_t video_frame_in_this;
ngx_int_t audio_frame_in_this;
};
typedef struct ngx_rtmp_gop_cache_app_conf_s {
ngx_flag_t gop_cache;
size_t gop_cache_count;
size_t gop_max_frame_count;
size_t gop_max_video_count;
size_t gop_max_audio_count;
} ngx_rtmp_gop_cache_app_conf_t;
typedef struct ngx_rtmp_gop_cache_ctx_s {
ngx_pool_t *pool;
ngx_rtmp_gop_cache_t *cache_head;
ngx_rtmp_gop_cache_t *cache_tail;
ngx_rtmp_gop_cache_t *free_cache;
ngx_rtmp_gop_frame_t *free_frame;
ngx_chain_t *video_seq_header;
ngx_chain_t *audio_seq_header;
ngx_chain_t *meta;
ngx_chain_t *free;
ngx_uint_t meta_version;
size_t gop_cache_count;
size_t video_frame_in_all;
size_t audio_frame_in_all;
} ngx_rtmp_gop_cache_ctx_t;
#endif