// Copyright 2020-2021 Beken // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #pragma once #include #include #include #ifdef __cplusplus extern "C" { #endif typedef enum { APP_CAMERA_DVP_JPEG, APP_CAMERA_DVP_YUV, APP_CAMERA_DVP_MIX, APP_CAMERA_UVC_MJPEG, APP_CAMERA_UVC_H264, APP_CAMERA_NET_MJPEG, APP_CAMERA_NET_H264, APP_CAMERA_DVP_H264_TRANSFER, APP_CAMERA_DVP_H264_LOCAL, APP_CAMERA_DVP_H264_ENC_LCD, APP_CAMERA_INVALIED, } app_camera_type_t; /* * legacy */ #define APP_CAMERA_DVP APP_CAMERA_DVP_JPEG #define APP_CAMERA_YUV APP_CAMERA_DVP_YUV #define APP_CAMERA_MIX APP_CAMERA_DVP_MIX #define APP_CAMERA_UVC APP_CAMERA_UVC_MJPEG typedef enum { APP_LCD_RGB, APP_LCD_MCU, } app_lcd_type_t; typedef int (*media_transfer_send_cb)(uint8_t *data, uint32_t length, uint16_t *retry_cnt); typedef int (*media_transfer_prepare_cb)(uint8_t *data, uint32_t length); typedef void* (*media_transfer_get_tx_buf_cb)(void); typedef int (*media_transfer_get_tx_size_cb)(void); typedef void (*frame_cb_t)(frame_buffer_t *frame); typedef bool (*media_transfer_drop_check_cb)(frame_buffer_t *frame,uint32_t count, uint16_t ext_size); typedef struct { media_transfer_send_cb send; media_transfer_prepare_cb prepare; media_transfer_drop_check_cb drop_check; media_transfer_get_tx_buf_cb get_tx_buf; media_transfer_get_tx_size_cb get_tx_size; pixel_format_t fmt; } media_transfer_cb_t; bk_err_t media_app_camera_open(media_camera_device_t *device); bk_err_t media_app_camera_close(camera_type_t type); bk_err_t media_app_register_read_frame_callback(pixel_format_t fmt, frame_cb_t cb); bk_err_t media_app_unregister_read_frame_callback(void); bk_err_t media_app_lcd_open(void *lcd_open); bk_err_t media_app_lcd_close(void); bk_err_t media_app_storage_open(void); bk_err_t media_app_storage_close(void); bk_err_t media_app_capture(char *name); bk_err_t media_app_save_start(char *name); bk_err_t media_app_save_stop(void); bk_err_t media_app_lcd_set_backlight(uint8_t level); bk_err_t media_app_mailbox_test(void); bk_err_t media_app_lcd_rotate(media_rotate_t rotate); bk_err_t media_app_lcd_resize(media_ppi_t ppi); bk_err_t media_app_dump_display_frame(void); bk_err_t media_app_dump_decoder_frame(void); bk_err_t media_app_dump_jpeg_frame(void); bk_err_t media_app_lcd_step_mode(bool enable); bk_err_t media_app_lcd_step_trigger(void); bk_err_t media_app_transfer_pause(bool pause); bk_err_t media_app_lcd_display_file(char *file_name); //display sd card file bk_err_t media_app_lcd_display(void* lcd_display); bk_err_t media_app_lcd_display_beken(void* lcd_display); bk_err_t media_app_lcd_blend(void *param); bk_err_t media_app_register_uvc_connect_state_cb(void *cb); bk_err_t media_app_lcd_gui_blend_open(int blend_x_size, int blend_y_size); bk_err_t media_app_lcd_gui_blend_close(void); bk_err_t media_app_lcd_decode(media_decode_mode_t decode_mode); bk_err_t media_app_lcd_blend_open(bool en); uint32_t media_app_get_lcd_devices_num(void); uint32_t media_app_get_lcd_devices_list(void); uint32_t media_app_get_lcd_device_by_id(uint32_t id); bk_err_t media_app_rtsp_open(video_config_t *config); bk_err_t media_app_rtsp_close(); bk_err_t media_app_get_uvc_camera_status(void); bk_err_t media_app_get_lcd_status(void); #if CONFIG_VIDEO_AVI bk_err_t media_app_avi_open(void); bk_err_t media_app_avi_close(void); #endif #ifdef __cplusplus } #endif