ss928_framework/libapi/ive/libapi_ive_queue.h

51 lines
1.5 KiB
C
Raw Normal View History

2024-12-16 13:31:45 +08:00
/*
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 */