Слияние кода завершено, страница обновится автоматически
/*
* 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_chain_t *video_seq_header;
ngx_chain_t *audio_seq_header;
ngx_chain_t *meta;
ngx_uint_t meta_version;
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;
size_t gop_cache_count;
size_t video_frame_in_all;
size_t audio_frame_in_all;
} ngx_rtmp_gop_cache_ctx_t;
#endif
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )