Files
luban-lite-t3e-pro/packages/artinchip/mpp/middle_media/base/include/aic_render.h

72 lines
2.4 KiB
C
Raw Normal View History

2023-08-30 16:21:18 +08:00
/*
2025-01-08 19:12:06 +08:00
* Copyright (C) 2020-2024 ArtInChip Technology Co. Ltd
*
* SPDX-License-Identifier: Apache-2.0
*
* Author: <jun.ma@artinchip.com>
* Desc: aic video render interface
*/
2023-08-30 16:21:18 +08:00
#ifndef __AIC_RENDER_H__
#define __AIC_RENDER_H__
#include "mpp_dec_type.h"
#ifdef __cplusplus
2025-01-08 19:12:06 +08:00
extern "C" {
2023-08-30 16:21:18 +08:00
#endif /* __cplusplus */
struct aic_video_render {
2025-01-08 19:12:06 +08:00
s32 (*init)(struct aic_video_render *render, s32 layer_id, s32 dev_id);
s32 (*destroy)(struct aic_video_render *render);
s32 (*rend)(struct aic_video_render *render, struct mpp_frame *frame_info);
s32 (*get_screen_size)(struct aic_video_render *render, struct mpp_size *size);
s32 (*set_dis_rect)(struct aic_video_render *render, struct mpp_rect *rect);
s32 (*get_dis_rect)(struct aic_video_render *render, struct mpp_rect *rect);
s32 (*set_on_off)(struct aic_video_render *render, s32 on_off);
s32 (*get_on_off)(struct aic_video_render *render, s32 *on_off);
s32 (*rend_last_frame)(struct aic_video_render *render, s32 enable);
2023-08-30 16:21:18 +08:00
};
2025-01-08 19:12:06 +08:00
#define aic_video_render_init(render, layer_id, dev_id) \
((struct aic_video_render *)render)->init(render, layer_id, dev_id)
2023-08-30 16:21:18 +08:00
2025-01-08 19:12:06 +08:00
#define aic_video_render_destroy(render) \
((struct aic_video_render *)render)->destroy(render)
2023-08-30 16:21:18 +08:00
2025-01-08 19:12:06 +08:00
#define aic_video_render_rend(render, frame_info) \
((struct aic_video_render *)render)->rend(render, frame_info)
2023-08-30 16:21:18 +08:00
2025-01-08 19:12:06 +08:00
#define aic_video_render_set_dis_rect( \
render, \
rect) \
((struct aic_video_render *)render)->set_dis_rect(render, rect)
2023-08-30 16:21:18 +08:00
2025-01-08 19:12:06 +08:00
#define aic_video_render_get_dis_rect( \
render, \
rect) \
((struct aic_video_render *)render)->get_dis_rect(render, rect)
2023-08-30 16:21:18 +08:00
2025-01-08 19:12:06 +08:00
#define aic_video_render_set_on_off( \
render, \
on_off) \
((struct aic_video_render *)render)->set_on_off(render, on_off)
2023-08-30 16:21:18 +08:00
2025-01-08 19:12:06 +08:00
#define aic_video_render_get_on_off( \
render, \
on_off) \
((struct aic_video_render *)render)->get_on_off(render, on_off)
2023-08-30 16:21:18 +08:00
2025-01-08 19:12:06 +08:00
#define aic_video_render_rend_last_frame( \
render, \
enable) \
((struct aic_video_render *)render)->rend_last_frame(render, enable)
2023-08-30 16:21:18 +08:00
s32 aic_video_render_create(struct aic_video_render **render);
#ifdef __cplusplus
}
#endif /* End of #ifdef __cplusplus */
#endif