51 lines
1.5 KiB
C
Executable File
51 lines
1.5 KiB
C
Executable File
/*
|
|
Copyright (c), 2001-2022, Shenshu Tech. Co., Ltd.
|
|
*/
|
|
|
|
#ifndef LIBAPI_IVE_QUEUE_H
|
|
#define LIBAPI_IVE_QUEUE_H
|
|
|
|
#include "ot_type.h"
|
|
#include "ot_common_video.h"
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
typedef struct tag_ot_struct_ive_node {
|
|
ot_video_frame_info frame_info;
|
|
struct tag_ot_struct_ive_node *next;
|
|
} ot_struct_ive_node;
|
|
|
|
typedef struct {
|
|
ot_struct_ive_node *front, *rear;
|
|
} ot_struct_ive_queue;
|
|
|
|
#define QUEUE_CORE_ERROR_BASE 1
|
|
#define QUEUE_CORE_FRAMEWORK_ERROR_BASE (QUEUE_CORE_ERROR_BASE + 10000)
|
|
|
|
#define QUEUE_NULL_POINTER (QUEUE_CORE_FRAMEWORK_ERROR_BASE + 1)
|
|
#define QUEUE_ILLEGAL_STATE (QUEUE_CORE_FRAMEWORK_ERROR_BASE + 2)
|
|
#define QUEUE_OUT_OF_MEMORY (QUEUE_CORE_FRAMEWORK_ERROR_BASE + 3)
|
|
|
|
ot_struct_ive_queue *libapi_ive_create_queue(td_s32 len);
|
|
td_void libapi_ive_destory_queue(ot_struct_ive_queue **queue_head);
|
|
td_void libapi_ive_clear_queue(ot_struct_ive_queue *queue_head);
|
|
td_bool libapi_ive_is_queue_empty(ot_struct_ive_queue *queue_head);
|
|
td_s32 libapi_ive_queue_size(ot_struct_ive_queue *queue_head);
|
|
td_s32 libapi_ive_add_queue_node(ot_struct_ive_queue *queue_head, ot_video_frame_info *added_frm_info);
|
|
ot_struct_ive_node *libapi_ive_get_queue_head_node(const ot_struct_ive_queue *queue_head);
|
|
ot_struct_ive_node *libapi_ive_get_queue_node(ot_struct_ive_queue *queue_head);
|
|
td_void libapi_ive_free_queue_node(ot_struct_ive_node **free_node);
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* LIBAPI_IVE_QUEUE_H */
|
|
|