Skip to content

Commit 57a96ac

Browse files
committed
improved Envivio fix: now key length can be unfinalized with object
1 parent 3072454 commit 57a96ac

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

ngx_rtmp_amf.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,15 @@ ngx_rtmp_amf_read_object(ngx_rtmp_amf_ctx_t *ctx, ngx_rtmp_amf_elt_t *elts,
197197
}
198198
#endif
199199
/* read key */
200-
if (ngx_rtmp_amf_get(ctx, buf, 2) != NGX_OK)
200+
switch (ngx_rtmp_amf_get(ctx, buf, 2)) {
201+
case NGX_DONE:
202+
/* Envivio sends unfinalized arrays */
203+
return NGX_OK;
204+
case NGX_OK:
205+
break;
206+
default:
201207
return NGX_ERROR;
208+
}
202209

203210
ngx_rtmp_amf_reverse_copy(&len, buf, 2);
204211

@@ -229,14 +236,9 @@ ngx_rtmp_amf_read_object(ngx_rtmp_amf_ctx_t *ctx, ngx_rtmp_amf_elt_t *elts,
229236
return NGX_ERROR;
230237
}
231238

232-
rc = ngx_rtmp_amf_get(ctx, &type, 1);
233-
234-
/* Envivo encoder does not finalize objects properly */
235-
if (rc == NGX_DONE) {
236-
return NGX_OK;
237-
}
238-
239-
if (rc != NGX_OK || type != NGX_RTMP_AMF_END) {
239+
if (ngx_rtmp_amf_get(ctx, &type, 1) != NGX_OK
240+
|| type != NGX_RTMP_AMF_END)
241+
{
240242
return NGX_ERROR;
241243
}
242244

0 commit comments

Comments
 (0)