@@ -292,22 +292,6 @@ ngx_rtmp_gop_cache_alloc_cache(ngx_rtmp_session_t *s)
292292 }
293293 }
294294
295- // save video seq header.
296- if (codec_ctx -> avc_header && ctx -> video_seq_header == NULL ) {
297- ctx -> video_seq_header = codec_ctx -> avc_header ;
298- }
299-
300- // save audio seq header.
301- if (codec_ctx -> aac_header && ctx -> audio_seq_header == NULL ) {
302- ctx -> audio_seq_header = codec_ctx -> aac_header ;
303- }
304-
305- // save metadata.
306- if (codec_ctx -> meta && ctx -> meta == NULL ) {
307- ctx -> meta_version = codec_ctx -> meta_version ;
308- ctx -> meta = codec_ctx -> meta ;
309- }
310-
311295 if (ctx -> cache_head == NULL ) {
312296 ctx -> cache_tail = ctx -> cache_head = cache ;
313297 } else {
@@ -476,6 +460,28 @@ ngx_rtmp_gop_cache_frame(ngx_rtmp_session_t *s, ngx_uint_t prio,
476460 }
477461 }
478462
463+ // save video seq header.
464+ if (ctx -> video_seq_header == NULL && codec_ctx -> avc_header ) {
465+ ngx_log_debug0 (NGX_LOG_DEBUG_RTMP , s -> connection -> log , 0 ,
466+ "video header comming" );
467+ ctx -> video_seq_header = codec_ctx -> avc_header ;
468+ }
469+
470+ // save audio seq header.
471+ if (ctx -> audio_seq_header == NULL && codec_ctx -> aac_header ) {
472+ ngx_log_debug0 (NGX_LOG_DEBUG_RTMP , s -> connection -> log , 0 ,
473+ "audio header comming" );
474+ ctx -> audio_seq_header = codec_ctx -> aac_header ;
475+ }
476+
477+ // save metadata.
478+ if (ctx -> meta == NULL && codec_ctx -> meta ) {
479+ ngx_log_debug0 (NGX_LOG_DEBUG_RTMP , s -> connection -> log , 0 ,
480+ "meta comming" );
481+ ctx -> meta_version = codec_ctx -> meta_version ;
482+ ctx -> meta = codec_ctx -> meta ;
483+ }
484+
479485 gf = ngx_rtmp_gop_cache_alloc_frame (s );
480486 if (gf == NULL ) {
481487 return ;
0 commit comments