Skip to content

Commit a74d000

Browse files
committed
[dev] recover the gop cache feature.
1 parent a8ce2eb commit a74d000

10 files changed

+36
-592
lines changed

ngx_http_flv_live_module.c

+5-26
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#include "ngx_rtmp_relay_module.h"
1111
#include "ngx_rtmp_notify_module.h"
1212
#include "ngx_rtmp_bandwidth.h"
13-
#include "ngx_rtmp_gop_cache_module.h"
1413

1514

1615
static ngx_rtmp_play_pt next_play;
@@ -28,6 +27,8 @@ static void ngx_http_flv_live_cleanup(void *data);
2827
static ngx_int_t ngx_http_flv_live_init_process(ngx_cycle_t *cycle);
2928

3029
static void ngx_http_flv_live_send_tail(ngx_rtmp_session_t *s);
30+
static ngx_int_t ngx_http_flv_live_send_message(ngx_rtmp_session_t *s,
31+
ngx_chain_t *out, ngx_uint_t priority);
3132
static ngx_chain_t *ngx_http_flv_live_meta_message(ngx_rtmp_session_t *,
3233
ngx_chain_t *in);
3334
static ngx_chain_t *ngx_http_flv_live_append_message(ngx_rtmp_session_t *s,
@@ -951,10 +952,6 @@ ngx_http_flv_live_send_message(ngx_rtmp_session_t *s,
951952
"flv live: HTTP drop message bufs='%ui', priority='%ui'",
952953
nmsg, priority);
953954

954-
if (s->gop_cache.out[s->out_last].set) {
955-
ngx_rtmp_gop_cache_exec_handler(s, s->out_last, out);
956-
}
957-
958955
return NGX_AGAIN;
959956
}
960957

@@ -1544,14 +1541,8 @@ ngx_http_flv_live_write_handler(ngx_event_t *wev)
15441541
if (s->out_bpos == s->out_chain->buf->last) {
15451542
s->out_chain = s->out_chain->next;
15461543
if (s->out_chain == NULL) {
1547-
if (s->gop_cache.out[s->out_pos].set) {
1548-
ngx_rtmp_gop_cache_exec_handler(s, s->out_pos,
1549-
s->out[s->out_pos]);
1550-
} else {
1551-
cscf = ngx_rtmp_get_module_srv_conf(s,
1552-
ngx_rtmp_core_module);
1553-
ngx_rtmp_free_shared_chain(cscf, s->out[s->out_pos]);
1554-
}
1544+
cscf = ngx_rtmp_get_module_srv_conf(s, ngx_rtmp_core_module);
1545+
ngx_rtmp_free_shared_chain(cscf, s->out[s->out_pos]);
15551546
s->out[s->out_pos] = NULL;
15561547
++s->out_pos;
15571548
s->out_pos %= s->out_queue;
@@ -1876,15 +1867,6 @@ ngx_http_flv_live_init_session(ngx_http_request_t *r,
18761867
return NULL;
18771868
}
18781869

1879-
s->gop_cache.out = ngx_pcalloc(s->out_pool,
1880-
sizeof(ngx_rtmp_gop_cache_free_t)
1881-
* ((ngx_rtmp_core_srv_conf_t *)
1882-
addr_conf->default_server->ctx->srv_conf
1883-
[ngx_rtmp_core_module.ctx_index])->out_queue);
1884-
if (s->gop_cache.out == NULL) {
1885-
return NULL;
1886-
}
1887-
18881870
s->in_streams_pool = ngx_create_pool(4096, c->log);
18891871
if (s->in_streams_pool == NULL) {
18901872
return NULL;
@@ -1907,7 +1889,6 @@ ngx_http_flv_live_init_session(ngx_http_request_t *r,
19071889
s->epoch = ngx_current_msec;
19081890
s->timeout = cscf->timeout;
19091891
s->buflen = cscf->buflen;
1910-
s->gop_cache.count = 0;
19111892
ngx_rtmp_set_chunk_size(s, NGX_RTMP_DEFAULT_CHUNK_SIZE);
19121893

19131894
if (ngx_rtmp_fire_event(s, NGX_RTMP_CONNECT, NULL, NULL) != NGX_OK) {
@@ -2201,9 +2182,7 @@ ngx_http_flv_live_close_session_handler(ngx_rtmp_session_t *s)
22012182
}
22022183

22032184
while (s->out_pos != s->out_last) {
2204-
if (!s->gop_cache.out[s->out_pos].set) {
2205-
ngx_rtmp_free_shared_chain(cscf, s->out[s->out_pos]);
2206-
}
2185+
ngx_rtmp_free_shared_chain(cscf, s->out[s->out_pos]);
22072186

22082187
s->out_pos++;
22092188
s->out_pos %= s->out_queue;

ngx_http_flv_live_module.h

-2
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,6 @@ ngx_chain_t *ngx_http_flv_live_append_shared_bufs(
7474
ngx_rtmp_header_t *h,
7575
ngx_chain_t *in,
7676
ngx_flag_t chunked);
77-
ngx_int_t ngx_http_flv_live_send_message(ngx_rtmp_session_t *s,
78-
ngx_chain_t *out, ngx_uint_t priority);
7977

8078

8179
#endif

ngx_rtmp.c

-6
Original file line numberDiff line numberDiff line change
@@ -1321,12 +1321,6 @@ ngx_rtmp_set_virtual_server(ngx_rtmp_session_t *s, ngx_str_t *host)
13211321
cscf->ctx->srv_conf[ngx_rtmp_core_module
13221322
.ctx_index])->out_queue);
13231323

1324-
s->gop_cache.out = ngx_pcalloc(s->out_pool,
1325-
sizeof(ngx_rtmp_gop_cache_free_t)
1326-
* ((ngx_rtmp_core_srv_conf_t *)
1327-
cscf->ctx->srv_conf[ngx_rtmp_core_module
1328-
.ctx_index])->out_queue);
1329-
13301324
s->out_queue = cscf->out_queue;
13311325
}
13321326

ngx_rtmp.h

-16
Original file line numberDiff line numberDiff line change
@@ -265,20 +265,6 @@ typedef struct {
265265
#endif
266266

267267

268-
typedef void (*free_message_pt)(ngx_rtmp_session_t *s, ngx_chain_t *in);
269-
270-
typedef struct {
271-
free_message_pt free;
272-
ngx_flag_t set;
273-
} ngx_rtmp_gop_cache_free_t;
274-
275-
276-
typedef struct {
277-
ngx_rtmp_gop_cache_free_t *out;
278-
ngx_uint_t count;
279-
} ngx_rtmp_gop_cache_handler_t;
280-
281-
282268
struct ngx_rtmp_session_s {
283269
uint32_t signature; /* "RTMP" */ /* <-- FIXME wtf */
284270

@@ -396,8 +382,6 @@ struct ngx_rtmp_session_s {
396382
unsigned wait_notify_connect:1;
397383
unsigned wait_notify_play:1;
398384

399-
ngx_rtmp_gop_cache_handler_t gop_cache;
400-
401385
/* input stream 0 (reserved by RTMP spec)
402386
* is used as free chain link */
403387

0 commit comments

Comments
 (0)