hardware scale APIs

[English]

SCALE Interface

API Reference

Header File

Functions

bk_err_t bk_hw_scale_driver_init(scale_id_t id)

hw scale API

This API to init scale 0 or 1

返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t bk_hw_scale_driver_deinit(scale_id_t id)

This API use to deinit scale0/scale1.

参数

scale0/scale1

返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t bk_hw_scale_isr_register(scale_id_t id, hw_scale_isr_t isr, void *param)

This API use to register scale isr.

参数
返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t bk_hw_scale_isr_unregister(scale_id_t id)

This API use to unregister scale isr.

参数

scale0/scale1

返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t bk_hw_scale_int_enable(scale_id_t id, bool en)

This API use to enable or display scale interrupt.

参数

scale0/scale1 – 0/1

返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t hw_scale_frame(scale_id_t id, scale_drv_config_t *scale_drv_config)

This API use to scale a complete frame not by line scale.

param: scale0/scale1 param: scale_drv_config_t

Usage example:

scale_param->drv_config.src_width = src->width;
scale_param->drv_config.dst_width = dst->width;
scale_param->drv_config.src_height = src->height;
scale_param->drv_config.dst_height = dst->height;

scale_param->drv_config.pixel_fmt = src->fmt;
scale_param->drv_config.scale_mode = FRAME_SCALE;
scale_param->drv_config.frame_complete = scale_frame_cb;

scale_param->drv_config.line_cycle = BLOCK_LINE_COUNT;
scale_param->drv_config.line_mask = 0x1F;
scale_param->drv_config.src_addr = src->frame;
scale_param->drv_config.dst_addr = dst->frame;

hw_scale_frame(HW_SCALE0, &scale_param->drv_config);

返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t hw_scale_block_config(scale_id_t id, scale_drv_config_t *scale_drv_config)

This API use to by line scale.

param: scale0/scale1 param: scale_drv_config_t

返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t hw_scale_block_start(scale_id_t id, scale_block_t *src, scale_block_t *dst)

start scale, reference lcd_scale_pipeline.c

返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t hw_scale_dest_block_fill(scale_id_t id, scale_block_t *scale_block)

start scale, reference lcd_scale_pipeline.c

返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t hw_scale_source_block_fill(scale_id_t id, scale_block_t *scale_block)

start scale, reference lcd_scale_pipeline.c

返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t bk_hw_scale_stop(scale_id_t id)

stop scale

返回

  • BK_OK: succeed

  • others: other errors.

bk_err_t bk_hw_scale_mem_free(scale_id_t id)

free 7.5K memcory by API bk_hw_scale_driver_init malloc

返回

  • BK_OK: succeed

  • others: other errors.

API Typedefs

Header File

Structures

struct scale_block_t
struct scale_result_t
struct scale_drv_config_t

Public Members

uint16_t src_width

src image width

uint16_t src_height

src image height

uint16_t dst_width

dst image width

uint16_t dst_height

dst image height

pixel_format_t pixel_fmt

scale module input data format , only select YUYV/RGB888/RGB565

uint8_t *src_addr

image src addr

uint8_t *dst_addr

image dst addr

struct scale_drv_record_t
struct scale_drv_handle_t

Macros

BK_ERR_HW_SCALE_NOT_INIT

hw scale init err

Type Definitions

typedef void (*hw_scale_isr_t)(void *param)

jpeg isr callback relay jpeg driver

Param id

only 0 useful, set 0 default

Param param

NULL default

Enumerations

enum scale_id_t

Values:

enumerator HW_SCALE0
enumerator HW_SCALE1
enumerator HW_SCALE_MAX
enum scale_mode_t

Values:

enumerator FRAME_SCALE
enumerator BLOCK_SCALE
enumerator DVP_DIRECT_YUV_SCALE
enumerator DVP_H264_SCALE
enumerator JPEGDEC_YUV_SCALE