Skip to content

Commit f690cd5

Browse files
committed
[dev] simplify some codes.
1 parent 392e11e commit f690cd5

File tree

4 files changed

+44
-41
lines changed

4 files changed

+44
-41
lines changed

ngx_http_flv_live_module.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ static ngx_int_t ngx_http_flv_live_init_process(ngx_cycle_t *cycle);
2323
static void ngx_http_flv_live_send_tail(ngx_rtmp_session_t *s);
2424
static ngx_int_t ngx_http_flv_live_send_message(ngx_rtmp_session_t *s,
2525
ngx_chain_t *out, unsigned int priority);
26+
static ngx_chain_t *ngx_http_flv_live_meta_message(ngx_rtmp_session_t *,
27+
ngx_chain_t *in);
2628
static ngx_chain_t *ngx_http_flv_live_append_message(ngx_rtmp_session_t *s,
2729
ngx_rtmp_header_t *h, ngx_rtmp_header_t *lh, ngx_chain_t *in);
2830
static void ngx_http_flv_live_free_message(ngx_rtmp_session_t *s,
@@ -32,6 +34,7 @@ static void ngx_http_flv_live_close_http_request(ngx_rtmp_session_t *s);
3234
extern ngx_rtmp_process_handler_t ngx_rtmp_live_process_handler;
3335
static ngx_rtmp_process_handler_t ngx_http_flv_live_process_handler = {
3436
ngx_http_flv_live_send_message,
37+
ngx_http_flv_live_meta_message,
3538
ngx_http_flv_live_append_message,
3639
ngx_http_flv_live_free_message
3740
};
@@ -1235,6 +1238,18 @@ ngx_http_flv_live_connect_init(ngx_rtmp_session_t *s, ngx_str_t *app,
12351238
}
12361239

12371240

1241+
ngx_chain_t *
1242+
ngx_http_flv_live_meta_message(ngx_rtmp_session_t *s, ngx_chain_t *in)
1243+
{
1244+
ngx_rtmp_header_t ch;
1245+
1246+
ch.timestamp = 0;
1247+
ch.type = NGX_RTMP_MSG_AMF_META;
1248+
1249+
return ngx_http_flv_live_append_message(s, &ch, NULL, in);
1250+
}
1251+
1252+
12381253
ngx_chain_t *
12391254
ngx_http_flv_live_append_message(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h,
12401255
ngx_rtmp_header_t *lh, ngx_chain_t *in)

ngx_http_flv_live_module.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ typedef struct ngx_http_flv_live_conf_s {
5252
typedef struct {
5353
ngx_int_t (*send_message_pt)(ngx_rtmp_session_t *s,
5454
ngx_chain_t *out, unsigned int priority);
55+
ngx_chain_t *(*meta_message_pt)(ngx_rtmp_session_t *s,
56+
ngx_chain_t *in);
5557
ngx_chain_t *(*append_message_pt)(ngx_rtmp_session_t *s,
5658
ngx_rtmp_header_t *h, ngx_rtmp_header_t *lh,
5759
ngx_chain_t *in);

ngx_rtmp_gop_cache_module.c

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -594,8 +594,6 @@ ngx_rtmp_gop_cache_send(ngx_rtmp_session_t *s)
594594
ngx_rtmp_live_chunk_stream_t *cs;
595595
ngx_rtmp_process_handler_t *handler;
596596
ngx_http_request_t *r;
597-
ngx_rtmp_core_srv_conf_t *cscf;
598-
ngx_rtmp_header_t mch;
599597

600598
lacf = ngx_rtmp_get_module_app_conf(s, ngx_rtmp_live_module);
601599
if (lacf == NULL) {
@@ -625,11 +623,6 @@ ngx_rtmp_gop_cache_send(ngx_rtmp_session_t *s)
625623
return;
626624
}
627625

628-
mch.timestamp = 0;
629-
mch.type = NGX_RTMP_MSG_AMF_META;
630-
631-
cscf = ngx_rtmp_get_module_srv_conf(s, ngx_rtmp_core_module);
632-
633626
for (cache = gctx->cache_head; cache; cache = cache->next) {
634627
if (ctx->protocol == NGX_RTMP_PROTOCOL_HTTP) {
635628
r = s->data;
@@ -642,20 +635,10 @@ ngx_rtmp_gop_cache_send(ngx_rtmp_session_t *s)
642635
hflctx->header_sent = 1;
643636
ngx_http_flv_live_send_header(s);
644637
}
638+
}
645639

646-
if (meta == NULL && meta_version != cache->meta_version) {
647-
if (hflctx->chunked) {
648-
meta = ngx_http_flv_live_append_shared_bufs(cscf,
649-
&mch, cache->meta, 1);
650-
} else {
651-
meta = ngx_http_flv_live_append_shared_bufs(cscf,
652-
&mch, cache->meta, 0);
653-
}
654-
}
655-
} else {
656-
if (meta == NULL && meta_version != cache->meta_version) {
657-
meta = ngx_rtmp_append_shared_bufs(cscf, NULL, cache->meta);
658-
}
640+
if (meta == NULL && meta_version != cache->meta_version) {
641+
meta = handler->meta_message_pt(s, cache->meta);
659642
}
660643

661644
if (meta) {

ngx_rtmp_live_module.c

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,16 @@ static void ngx_rtmp_live_stop(ngx_rtmp_session_t *s);
3333

3434
static ngx_int_t ngx_rtmp_live_send_message(ngx_rtmp_session_t *s,
3535
ngx_chain_t *in, unsigned int priority);
36+
static ngx_chain_t *ngx_rtmp_live_meta_message(ngx_rtmp_session_t *s,
37+
ngx_chain_t *in);
3638
static ngx_chain_t *ngx_rtmp_live_append_message(ngx_rtmp_session_t *s,
3739
ngx_rtmp_header_t *h, ngx_rtmp_header_t *lh, ngx_chain_t *in);
3840
static void ngx_rtmp_live_free_message(ngx_rtmp_session_t *s, ngx_chain_t *in);
3941

4042

4143
ngx_rtmp_process_handler_t ngx_rtmp_live_process_handler = {
4244
ngx_rtmp_live_send_message,
45+
ngx_rtmp_live_meta_message,
4346
ngx_rtmp_live_append_message,
4447
ngx_rtmp_live_free_message
4548
};
@@ -162,15 +165,29 @@ ngx_module_t ngx_rtmp_live_module = {
162165

163166
ngx_int_t
164167
ngx_rtmp_live_send_message(ngx_rtmp_session_t *s,
165-
ngx_chain_t *in, unsigned int priority)
168+
ngx_chain_t *in, unsigned int priority)
166169
{
167170
return ngx_rtmp_send_message(s, in, priority);
168171
}
169172

170173

174+
ngx_chain_t *
175+
ngx_rtmp_live_meta_message(ngx_rtmp_session_t *s, ngx_chain_t *in)
176+
{
177+
ngx_rtmp_core_srv_conf_t *cscf;
178+
179+
cscf = ngx_rtmp_get_module_srv_conf(s, ngx_rtmp_core_module);
180+
if (cscf == NULL) {
181+
return NULL;
182+
}
183+
184+
return ngx_rtmp_append_shared_bufs(cscf, NULL, in);
185+
}
186+
187+
171188
ngx_chain_t *
172189
ngx_rtmp_live_append_message(ngx_rtmp_session_t *s,
173-
ngx_rtmp_header_t *h, ngx_rtmp_header_t *lh, ngx_chain_t *in)
190+
ngx_rtmp_header_t *h, ngx_rtmp_header_t *lh, ngx_chain_t *in)
174191
{
175192
ngx_rtmp_core_srv_conf_t *cscf;
176193
ngx_chain_t *pkt;
@@ -783,7 +800,7 @@ ngx_rtmp_live_av(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h,
783800
ngx_rtmp_core_srv_conf_t *cscf;
784801
ngx_rtmp_live_app_conf_t *lacf;
785802
ngx_rtmp_session_t *ss;
786-
ngx_rtmp_header_t ch, lh, clh, mch;
803+
ngx_rtmp_header_t ch, lh, clh;
787804
ngx_int_t rc, mandatory;
788805
ngx_uint_t prio;
789806
ngx_uint_t peers;
@@ -846,9 +863,6 @@ ngx_rtmp_live_av(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h,
846863
prio = (h->type == NGX_RTMP_MSG_VIDEO ?
847864
ngx_rtmp_get_video_frame_type(in) : 0);
848865

849-
mch.timestamp = 0;
850-
mch.type = NGX_RTMP_MSG_AMF_META;
851-
852866
cscf = ngx_rtmp_get_module_srv_conf(s, ngx_rtmp_core_module);
853867

854868
csidx = !(lacf->interleave || h->type == NGX_RTMP_MSG_VIDEO);
@@ -972,24 +986,13 @@ ngx_rtmp_live_av(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h,
972986
hctx->header_sent = 1;
973987
ngx_http_flv_live_send_header(ss);
974988
}
975-
976-
if (meta == NULL && meta_version != pctx->meta_version) {
977-
if (hctx->chunked) {
978-
meta = ngx_http_flv_live_append_shared_bufs(cscf,
979-
&mch, codec_ctx->meta, 1);
980-
} else {
981-
meta = ngx_http_flv_live_append_shared_bufs(cscf,
982-
&mch, codec_ctx->meta, 0);
983-
}
984-
}
985-
} else {
986-
if (meta == NULL && meta_version != pctx->meta_version) {
987-
meta = ngx_rtmp_append_shared_bufs(cscf, NULL,
988-
codec_ctx->meta);
989-
}
990989
}
991990
}
992991

992+
if (meta == NULL && meta_version != pctx->meta_version) {
993+
meta = handler->meta_message_pt(ss, codec_ctx->meta);
994+
}
995+
993996
if (meta && meta_version != pctx->meta_version) {
994997
ngx_log_debug0(NGX_LOG_DEBUG_RTMP, ss->connection->log, 0,
995998
"live: meta");

0 commit comments

Comments
 (0)