📄 med_api.h
字号:
/* IPP Setting */
kal_bool overlay_frame_mode; /* KAL_TRUE or KAL_FALSE */
kal_uint8 overlay_color_depth; /* 1/2/4/8 bpp */
kal_uint8 overlay_frame_source_key; /* source key of the overlay frame buffer */
kal_uint16 overlay_frame_width; /* overlay frame width */
kal_uint16 overlay_frame_height; /* overlay frame height */
kal_uint32 overlay_frame_buffer_address; /* bsae address of the overlay frame buffer */
kal_bool image_pitch_mode; /* KAL_TRUE or KAL_FALSE for block mode of decoded image */
kal_uint8 image_data_format; /* IMGDMA_IBW_OUTPUT_RGB565 or IMGDMA_IBW_OUTPUT_RGB888 */
kal_uint16 image_pitch_bytes; /* pitch width */
/* Display Setting */
kal_uint8 lcd_id;
kal_uint16 lcm_start_x; /* the start x axis of LCM to be updated */
kal_uint16 lcm_start_y; /* the start y axis of LCM to be updated */
kal_uint16 lcm_end_x; /* the end x axis of LCM to be updated */
kal_uint16 lcm_end_y; /* the end y axis of LCM to be updated */
// kal_uint16 roi_offset_x; /* the ROI window offset x from main window */
// kal_uint16 roi_offset_y; /* the ROI window offset y from main window */
kal_uint32 update_layer; /* the updated layer */
kal_uint32 hw_update_layer; /* which layer will be applied by hw trigger or direct couple for MT6219 only */
kal_bool display; /* output to LCM or TV */
kal_uint32 frame_buffer_address;
kal_uint32 frame_buffer_size;
kal_bool tv_output; /* works when display item is KAL_TRUE */
kal_uint32 tv_output_buffer1_address; /* image buffer1 for TV source buffer */
kal_uint32 tv_output_buffer2_address; /* image buffer2 for TV source buffer, if snapshot_number==1, this buffer is not necessary */
kal_uint32 tv_output_buffer_size; /* image buffer size for TV source buffer */
#endif /* (defined(MT6228) || defined(MT6229) || defined(MT6230)) */
}
cam_capture_struct;
#if defined (JPG_DECODE) || defined (JPG_ENCODE) || defined (GIF_DECODE)
/* image */
typedef struct
{
kal_uint16 image_width;
kal_uint16 image_height;
kal_uint8 image_quality;
void *image_buffer_p;
kal_uint32 image_buffer_size;
kal_uint16 target_width;
kal_uint16 target_height;
kal_uint8 media_mode;
kal_uint8 media_type;
void *data;
kal_uint32 file_buffer_len;
kal_uint32 *file_size_p;
kal_uint16 seq_num;
kal_uint8 blocking;
kal_uint8 gray_mode;
#if (defined(MT6228) || defined(MT6229) || defined(MT6230))
kal_uint8 jpeg_yuv_mode; /* YUV420, YUV422 or Gray mode */
kal_bool thumbnail_mode; /* add thumbnail in JPEG file or not */
kal_uint16 thumbnail_width;
kal_uint16 thumbnail_height;
kal_bool overlay_frame_mode; /* KAL_TRUE or KAL_FALSE */
kal_uint8 overlay_color_depth; /* 1/2/4/8 bpp */
kal_uint8 overlay_frame_source_key; /* source key of the overlay frame buffer */
kal_uint16 overlay_frame_width; /* overlay frame width */
kal_uint16 overlay_frame_height; /* overlay frame height */
kal_uint32 overlay_frame_buffer_address; /* bsae address of the overlay frame buffer */
#endif /* (defined(MT6228) || defined(MT6229) || defined(MT6230)) */
}
img_encode_struct;
typedef struct
{
kal_uint32 src_image_address; /* the source image buffer start address */
kal_uint32 dest_image_address; /* the destination image buffer start address */
kal_uint32 dest_buffer_size; /* the buffer size of destination image buffer size */
kal_uint16 src_width; /* the width of image source */
kal_uint16 src_height; /* the height of image source */
kal_uint16 src_pitch; /* the pitch width of image source */
kal_uint16 target_width; /* the width of target image */
kal_uint16 target_height; /* the height of target image */
kal_uint16 image_clip_x1; /* image clip window start x */
kal_uint16 image_clip_x2; /* image clip window end x */
kal_uint16 image_clip_y1; /* image clip window start y */
kal_uint16 image_clip_y2; /* image clip window end x */
kal_uint16 seq_num; /* use for non-blocking mode */
kal_uint8 blocking;
kal_uint8 type; /* IBR1_TYPE_RGB565 or IBR1_TYPE_RGB888 */
kal_uint8 data_order; /* IBR1_ORDER_BGR888 or IBR1_ORDER_RGB888 */
#if (defined(MT6228) || defined(MT6229) || defined(MT6230))
kal_bool image_pitch_mode; /* KAL_TRUE or KAL_FALSE for block mode of decoded image */
kal_uint8 image_data_format; /* IMGDMA_IBW_OUTPUT_RGB565 or IMGDMA_IBW_OUTPUT_RGB888 */
kal_uint16 image_pitch_bytes; /* pitch width */
#endif /* (defined(MT6228) || defined(MT6229) || defined(MT6230)) */
}
img_resize_struct;
#endif /* defined (JPG_DECODE) || defined (JPG_ENCODE) || defined (GIF_DECODE) */
#if defined (MP4_CODEC) || defined (MJPG_SUPPORT)
/* video */
/* Video encoding quality */
enum
{
VID_REC_QTY_LOW = 0,
VID_REC_QTY_NORMAL,
VID_REC_QTY_HIGH,
VID_REC_QTY_FINE,
VID_NO_OF_REC_QTY
};
/* Bit stream type, not the file format */
enum
{
VID_3GP_BIT_STREAM = 0,
VID_MP4_BIT_STREAM,
VID_NO_OF_BIT_STREAM
};
/* video em mode enum */
enum
{
VID_EM_MODE_DISABLED = 0,
VID_EM_MODE_ULTRA_HIGH_BITRATE,
VID_NO_OF_EM_MODE
};
/* video param enum */
enum
{
VID_PARAM_NONE = 0,
VID_PARAM_CONTRAST,
VID_PARAM_BRIGHTNESS,
VID_NO_OF_PARAM
};
typedef struct media_vid_record_req_struct vid_record_struct;
typedef struct
{
kal_wchar *file_name_p;
kal_uint16 image_x;
kal_uint16 image_y;
kal_uint32 total_frame_num;
}
vid_open_file_struct;
typedef struct
{
kal_uint8 media_mode;
kal_uint8 media_type;
void *data;
kal_uint32 data_size;
kal_uint16 seq_num;
kal_uint16 max_width;
kal_uint16 max_height;
kal_uint16 *image_width;
kal_uint16 *image_height;
kal_uint64 *total_time;
kal_uint8 blocking;
kal_uint8 play_audio;
}
vid_open_struct;
typedef struct
{
kal_uint8 get_frame;
kal_uint32 frame_num;
kal_uint64 time;
kal_uint16 display_width;
kal_uint16 display_height;
kal_uint16 display_offset_x;
kal_uint16 display_offset_y;
void *image_buffer_p;
kal_uint32 image_buffer_size;
kal_uint8 blocking;
kal_uint16 seq_num;
#if (defined(MT6228) || defined(MT6229) || defined(MT6230))
kal_bool image_pitch_mode; /* KAL_TRUE or KAL_FALSE for block mode of decoded image */
kal_uint8 image_data_format; /* IMGDMA_IBW_OUTPUT_RGB565 or IMGDMA_IBW_OUTPUT_RGB888 */
kal_uint16 image_pitch_bytes; /* pitch width */
/* TV Setting */
kal_bool tv_output;
kal_uint32 tv_output_buffer1_address; /* image buffer1 for TV source buffer */
kal_uint32 tv_output_buffer2_address; /* image buffer2 for TV source buffer */
kal_uint32 tv_output_buffer_size; /* image buffer size for TV source buffer */
#endif /* (defined(MT6228) || defined(MT6229) || defined(MT6230)) */
}
vid_seek_struct;
typedef struct
{
void *image_buffer_p;
kal_uint32 image_buffer_size;
}
vid_snapshot_struct;
typedef struct
{
kal_uint8 media_mode;
kal_uint8 media_type;
void *data;
kal_uint16 display_width;
kal_uint16 display_height;
void *image_buffer_p;
kal_uint32 image_buffer_size;
kal_uint16 frame_num;
kal_uint16 seq_num;
kal_uint8 blocking;
}
vid_get_iframe_struct;
#endif /* defined (MP4_CODEC) || defined (MJPG_SUPPORT) */
/* TV output mode */
enum
{
MED_TV_OUT_DISABLE = 0,
MED_TV_OUT_MODE1,
MED_TV_OUT_MODE2,
MED_TV_OUT_MODE3,
MED_TV_OUT_MODE4
};
/* TV output format */
enum
{
MED_TV_FORMAT_NTSC = 0,
MED_TV_FORMAT_PALM,
MED_TV_FORMAT_PALC,
MED_TV_FORMAT_PAL
};
/* TV output parameter types */
enum
{
MED_TV_PARAM_Y_COMP = 0,
MED_TV_PARAM_U_COMP,
MED_TV_PARAM_V_COMP,
MED_TV_PARAM_AUD_PATH
};
/* TV output parameter values */
enum
{
MED_TV_PARAM_GAMMA1 = 0,
MED_TV_PARAM_GAMMA2,
MED_TV_PARAM_GAMMA3,
MED_TV_PARAM_GAMMA4,
MED_TV_PARAM_GAMMA5
};
enum
{
MED_TV_PARAM_AUD_PATH_BOTH=0,
MED_TV_PARAM_AUD_PATH_TV,
MED_TV_PARAM_AUD_PATH_PHONE
};
#if (defined(MT6228) || defined(MT6229) || defined(MT6230)) /* will change to TV_OUT_SUPPORT */
/* tv out */
typedef struct
{
kal_uint8 tv_output_mode;
kal_uint8 tv_output_format;
kal_uint16 tv_output_width; /* image width for TV output */
kal_uint16 tv_output_height; /* image height for TV output */
kal_bool tv_output_vertical_filter;
}
tvo_mode_struct;
#endif /* (defined(MT6228) || defined(MT6229) || defined(MT6230)) */
/*==== PROTOTYPE ====*/
/* audio */
extern kal_int32 media_aud_play_id(module_type src_mod_id, void *id_param);
extern kal_int32 media_aud_stop_id(module_type src_mod_id, kal_uint8 audio_id);
extern kal_int32 media_aud_play_string(module_type src_mod_id, void *string_param);
extern kal_int32 media_aud_stop_string(module_type src_mod_id, kal_uint8 src_id);
extern kal_int32 media_aud_play_file(module_type src_mod_id, void *file_param);
extern kal_int32 media_aud_stop_file(module_type src_mod_id, kal_uint8 src_id);
extern kal_int32 media_aud_start_record(
module_type src_mod_id,
kal_wchar *file_name,
kal_uint8 format,
kal_bool default_input,
kal_uint8 input_source);
extern kal_int32 media_aud_stop_record(module_type src_mod_id, kal_uint8 src_id);
extern kal_int32 media_aud_pause(module_type src_mod_id, kal_uint8 src_id);
extern kal_int32 media_aud_resume(module_type src_mod_id, kal_uint8 src_id);
extern kal_int32 media_aud_block(module_type src_mod_id, kal_uint16 mod_id, kal_uint8 level);
extern kal_int32 media_aud_set_headset_mode_output_path(module_type src_mod_id, kal_uint8 device);
extern kal_int32 media_aud_set_vibrator_enabled(module_type src_mod_id, kal_uint8 enable);
extern kal_int32 media_aud_store(module_type src_mod_id, kal_uint8 src_id);
extern kal_int32 media_aud_restore(module_type src_mod_id, void *file_param);
extern kal_int32 media_aud_set_equalizer(module_type src_mod_id, kal_int8 *magnitude);
extern kal_int32 media_aud_get_spectrum(module_type src_mod_id, kal_uint8 *top_p, kal_uint8 *val_p);
extern kal_int32 media_aud_start_calc_spectrum(module_type src_mod_id);
extern kal_int32 media_aud_stop_calc_spectrum(module_type src_mod_id);
extern kal_int32 media_aud_get_duration(module_type src_mod_id, void *file_name, kal_uint32 *time_p);
extern kal_int32 media_aud_get_progress_time(module_type src_mod_id, kal_uint32 *progress);
extern kal_int32 media_aud_set_progress_time(module_type src_mod_id, kal_uint32 progress);
extern kal_int32 media_aud_fmr_power_on(module_type src_mod_id, kal_uint8 output_path);
extern kal_int32 media_aud_fmr_power_off(module_type src_mod_id);
extern kal_int32 media_aud_fmr_set_freq(module_type src_mod_id, kal_uint16 freq);
extern kal_int32 media_aud_fmr_mute(module_type src_mod_id, kal_uint8 mute);
extern kal_int32 media_aud_fmr_evaluate_threshold(module_type src_mod_id);
#ifdef DSP_WT_SYN
/* mma */
extern kal_int32 media_mma_midi_open(med_handler handler, mma_player_struct *param);
extern kal_int32 media_mma_midi_close(kal_int32 handle);
extern kal_int32 media_mma_midi_play(kal_int32 handle);
extern kal_int32 media_mma_midi_stop(kal_int32 handle);
extern kal_int32 media_mma_midi_pause(kal_int32 handle);
extern kal_int32 media_mma_midi_resume(kal_int32 handle);
extern kal_int32 media_mma_midi_set_start_time(kal_int32 handle, kal_int32 start_time);
extern kal_int32 media_mma_midi_set_stop_time(kal_int32 handle, kal_int32 stop_time);
extern kal_int32 media_mma_midi_get_current_time(kal_int32 handle);
extern kal_int32 media_mma_midi_get_duration(kal_int32 handle);
extern kal_int32 media_mma_midi_get_duration_by_string(const kal_uint8 *data);
extern kal_uint8 media_mma_midi_get_volume(kal_int32 handle);
extern kal_int32 media_mma_midi_set_volume(kal_int32 handle, kal_uint8 volume);
extern kal_int32 media_mma_midi_get_rate(kal_int32 handle);
extern kal_int32 media_mma_midi_set_rate(kal_int32 handle, kal_int32 rate);
extern kal_int32 media_mma_midi_get_tempo(kal_int32 handle);
extern kal_int32 media_mma_midi_set_tempo(kal_int32 handle, kal_int32 tempo);
extern kal_int32 media_mma_midi_get_pitch(kal_int32 handle);
extern kal_int32 media_mma_midi_set_pitch(kal_int32 handle, kal_int32 pitch);
extern kal_int32 media_mma_midi_open_device(void);
extern kal_int32 media_mma_midi_close_device(kal_int32 handle);
extern kal_int32 media_mma_midi_send_long_msg(kal_int32 handle, kal_uint8 *buf, kal_uint16 len);
extern kal_int32 media_mma_midi_send_short_msg(kal_int32 handle, kal_uint8 type, kal_uint8 data1, kal_uint8 data2);
extern kal_uint8 media_mma_midi_get_channel_volume(kal_int32 handle, kal_uint8 channel);
extern kal_int32 media_mma_midi_set_channel_volume(kal_int32 handle, kal_uint8 channel, kal_uint8 level);
extern void media_mma_midi_get_program(kal_int32 handle, kal_uint8 channel, kal_int16 *bank, kal_int8 *program);
extern kal_int32 media_mma_midi_set_program(kal_int32 handle, kal_uint8 channel, kal_uint8 bank, kal_uint8 program);
extern kal_bool media_mma_midi_bank_support(kal_int32 handle);
extern void media_mma_midi_get_bank_list(kal_int32 handle, kal_bool custom, const kal_int16 **buf, kal_int16 *len);
extern void media_mma_midi_get_program_list(kal_int32 handle, kal_int16 bank, const kal_int8 **buf, kal_int16 *len);
extern const kal_uint8 *media_mma_midi_get_program_name(kal_int32 handle, kal_int16 bank, kal_int8 prog);
extern const kal_uint8 *media_mma_midi_get_key_name(kal_int32 handle, kal_int16 bank, kal_int8 prog, kal_int8 key);
extern kal_int32 media_mma_tone_open(med_handler handler, mma_player_struct *param);
extern kal_int32 media_mma_tone_close(kal_int32 handle);
extern kal_int32 media_mma_tone_play(kal_int32 handle);
extern kal_int32 media_mma_tone_stop(kal_int32 handle);
extern kal_int32 media_mma_tone_pause(kal_int32 handle);
extern kal_int32 media_mma_tone_resume(kal_int32 handle);
extern kal_int32 media_mma_tone_set_data(kal_int32 handle, mma_player_struct *param);
extern kal_int32 media_mma_tone_set_start_time(kal_int32 handle, kal_int32 start_time);
extern kal_int32 media_mma_tone_set_stop_time(kal_int32 handle, kal_int32 stop_time);
extern kal_int32 media_mma_tone_get_current_time(kal_int32 handle);
extern kal_int32 media_mma_tone_get_duration(kal_int32 handle);
extern kal_uint8 media_mma_tone_get_volume(kal_int32 handle);
extern kal_int32 media_mma_tone_set_volume(kal_int32 handle, kal_uint8 volume);
extern kal_int8 media_mma_tone_get_pitch(kal_int32 handle);
extern kal_int32 media_mma_tone_set_pitch(kal_int32 handle, kal_int32 pitch);
extern kal_int32 media_mma_wav_open(med_handler handler, mma_player_struct *param);
extern kal_int32 media_mma_wav_close(kal_int32 handle);
extern kal_int32 media_mma_wav_play(kal_int32 handle);
extern kal_int32 media_mma_wav_stop(kal_int32 handle);
extern kal_int32 media_mma_wav_pause(kal_int32 handle);
extern kal_int32 media_mma_wav_resume(kal_int32 handle);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -