📄 med_context.h
字号:
kal_uint32 file_size_limit;
kal_uint32 disk_cluster_size;
} video_file_info_struct;
typedef struct
{
kal_uint8 state;
kal_uint8 aud_state;
module_type src_mod;
kal_eventgrpid vid_event;
kal_eventgrpid vid_event_ext;
kal_uint8 media_mode; /* the media mode like file, array, stream */
kal_uint8 media_type; /* 3GP, ... */
kal_int32 file_handle; /* the file handle of the file */
kal_uint32 audio_frame_num; /* the frame number of audio */
kal_uint32 total_frame_num; /* the total frame number of video file */
kal_uint64 current_time; /* the current time duration of the video play */
kal_uint64 total_audio_time; /* the total audio time duration of the video file */
kal_uint64 total_video_time; /* the total video duration of the video file */
kal_uint64 total_time; /* the total time duration of the video file */
kal_uint8 video_track; /* video track: audio, visual or both */
kal_uint8 image_path_open; /* image path open/closed */
kal_uint8 get_frame; /* get frame when seek */
kal_uint8 encode_quality; /* encode quality */
kal_uint8 bit_stream_type; /* bit stream type, 3GP or MP4 */
kal_uint8 record_audio; /* record audio, 1: yes, 0: no */
kal_uint32 file_size_limit; /* the limit of the video file size */
kal_uint32 free_disc_space; /* free space on the disc */
kal_uint16 max_width; /* the max image width expected for the play */
kal_uint16 max_height; /* the max image height expected for the play */
kal_bool use_pseudo_merge; /* Use pseudo merge or not */
kal_bool audio_end; /* seek to audio end */
kal_uint8 open_audio; /* open audio, 1: yes, 0: no */
kal_uint8 play_audio; /* play audio, 1: yes, 0: no */
kal_uint8 display_device; /* video play display output device */
kal_uint16 repeats; /* play repeats, 0xffff: infinite */
kal_int16 play_speed; /* play speed, normal:100 */
kal_int16 lcd_rotate; /* LCD rotate value */
kal_uint16 seq_num;
kal_uint32 file_buffer_address; /* the start address of file located */
kal_uint32 file_size; /* the size of file to be decoded */
kal_uint32 intmem_start_address; /* internal memory start address for hardware engine buffer */
kal_uint32 intmem_size; /* internal memory size for hardware engine buffer */
kal_uint32 extmem_start_address; /* external memroy start address for hardware engine buffer */
kal_uint32 extmem_size; /* external memory size for hardware engine buffer */
kal_uint32 image_buffer_address; /* image buffer address for jpeg decode result */
kal_uint32 image_buffer_size; /* image buffer size for jpeg decode result */
kal_uint16 image_width; /* the image width after decoder and resizer */
kal_uint16 image_height; /* the image height after decoder and resizer */
kal_uint16 display_width; /* the display width after decoder and resizer */
kal_uint16 display_height; /* the display height after decoder and resizer */
kal_uint8 blocking; /* blocking decode or not */
kal_uint8 em_mode; /* video engineering mode */
kal_int16 error_code; /* error code */
kal_wchar current_file_name[MAX_FILE_NAME_LEN]; /* file name for recording */
kal_wchar storing_path[MAX_FILE_NAME_LEN]; /* file path for recording */
video_file_info_struct file_size_info; /* video file size info for recording */
}
vid_context_struct;
#endif /* __MED_VID_MOD__ */
#ifdef __MED_MJPG_MOD__
typedef struct
{
kal_uint32 video_bitstream_size;
kal_uint32 audio_bitstream_size;
kal_uint32 index_size;
kal_uint32 file_size_limit;
#ifdef CAMERA_MODULE_WITH_LCD
kal_uint32 residual_size;
kal_uint16 frame_size_table[20];
#endif /* CAMERA_MODULE_WITH_LCD */
} video_file_info_struct;
typedef struct
{
kal_uint8 state;
kal_uint8 aud_state;
module_type src_mod;
kal_eventgrpid vid_event;
kal_eventgrpid vid_event_ext;
kal_uint8 media_mode; /* the media mode like file, array, stream */
kal_uint8 media_type; /* 3GP, ... */
kal_int32 file_handle; /* the file handle of the file */
kal_int32 current_frame_num; /* the current frame number of video file */
kal_int32 display_frame_num; /* the current displayed frame number of video file */
kal_uint32 total_frame_num; /* the total frame number of video file */
kal_uint64 current_time; /* the current time duration of the video play */
kal_uint64 total_time; /* the total time duration of the video file */
kal_uint8 open_audio; /* open audio, 1: yes, 0: no */
kal_uint8 play_audio; /* play audio, 1: yes, 0: no */
kal_uint8 display_device; /* video play display output device */
kal_uint16 repeats; /* play repeats, 0xffff: infinite */
kal_uint8 cache_in_mem; /* cache video clip in memory or not */
kal_uint8 get_frame; /* get frame when seek */
kal_uint8 encode_quality; /* encode quality */
kal_uint32 file_size_limit; /* the limit of the video file size */
kal_uint8 image_path_open; /* image path open/closed */
kal_uint8 record_audio; /* record audio, 1: yes, 0: no */
kal_int16 play_speed; /* play speed, normal:100 */
kal_int16 lcd_rotate; /* LCD rotate value */
kal_uint32 period; /* the period(ms) of the video clip */
kal_uint32 period_fraction; /* the period fraction of the video clip */
kal_uint32 period_div; /* div factor for period time */
kal_int64 time_played; /* time played from start of the video */
kal_uint32 frame_rate; /* the frame rate fps of the video clip */
kal_uint16 seq_num;
kal_uint32 file_buffer_address; /* the start address of file located */
kal_uint32 file_size; /* the size of file to be decoded */
kal_uint32 intmem_start_address; /* internal memory start address for hardware engine buffer */
kal_uint32 intmem_size; /* internal memory size for hardware engine buffer */
kal_uint32 extmem_start_address; /* external memroy start address for hardware engine buffer */
kal_uint32 extmem_size; /* external memory size for hardware engine buffer */
kal_uint32 image_buffer_address; /* image buffer address for jpeg decode result */
kal_uint32 image_buffer_size; /* image buffer size for jpeg decode result */
kal_uint32 decode_buffer_address; /* intermediate image buffer address for jpeg decode result */
kal_uint32 decode_buffer_size; /* intermediate image buffer size for jpeg decode result */
kal_uint16 image_width; /* the image width after decoder and resizer */
kal_uint16 image_height; /* the image height after decoder and resizer */
kal_uint16 display_width; /* the display width after decoder and resizer */
kal_uint16 display_height; /* the display height after decoder and resizer */
kal_uint8 blocking; /* blocking decode or not */
kal_uint8 em_mode; /* video engineering mode */
kal_int16 error_code; /* error code */
kal_uint32 start_tick; /* start tick when record or play */
kal_uint64 tick_per_frame_period; /* ticks per frame << 10 */
kal_uint32 disp_fps; /* display fps */
kal_wchar current_file_name[MAX_FILE_NAME_LEN]; /* file name for recording */
kal_wchar storing_path[MAX_FILE_NAME_LEN]; /* file path for recording */
#ifdef __MED_MJPG_AUDIO__
aud_player_struct aud_player;
kal_uint32 audio_bytes;
#endif /* __MED_MJPG_AUDIO__ */
video_file_info_struct file_size_info; /* video file size info for recording */
}
vid_context_struct;
#endif /* __MED_MJPG_MOD__ */
#ifdef __MED_WEBCAM_MOD__
typedef struct
{
kal_uint8 state; /* Camera module state */
module_type src_mod; /* the source module of request */
kal_eventgrpid webcam_event; /* the event group of wedcam module */
kal_uint16 seq_num; /* sequence num */
kal_uint8 *buffer_addr;
kal_uint32 buffer_size;
kal_uint8 image_mirror; /* horizonal/vertical mirror from image sensor */
kal_uint16 banding;
kal_uint32 intmem_start_address; /* internal memory start address for hardware engine buffer */
kal_uint32 intmem_size; /* internal memory size for hardware engine buffer */
kal_uint32 extmem_start_address; /* external memroy start address for hardware engine buffer */
kal_uint32 extmem_size; /* external memory size for hardware engine buffer */
webcam_default_jpeg_file_info default_jpeg_files; /* default JPEG files for displaying when interrupt */
}
webcam_context_struct;
#endif /* __MED_WEBCAM_MOD__ */
#ifdef __MED_TVO_MOD__
typedef struct
{
kal_uint8 state; /* Camera module state */
module_type src_mod; /* the source module of request */
kal_eventgrpid tvo_event; /* the event group of camera module */
kal_uint16 seq_num; /* sequence num */
/* TV Setting */
kal_uint8 tv_output_mode; /* tv output mode, MED_TVO_MODE1,... */
kal_uint8 tv_output_format; /* tv output format, MED_TV_FORMAT_NTSC,... */
kal_bool tv_output;
kal_bool tv_connected; /* a flag to check whether the TV is connected */
kal_bool tv_vertical_fileter;
kal_uint16 tv_output_width; /* image width for TV output */
kal_uint16 tv_output_height; /* image height for TV output */
kal_uint16 tv_output_offset_x; /* the offset X from TV output frame buffer to preview image */
kal_uint16 tv_output_offset_y; /* the offset Y from TV output frame buffer to preview image */
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_rotate_buffer1_address; /* rotate buffer1 for TV source buffer */
kal_uint32 tv_rotate_buffer2_address; /* rotate buffer2 for TV source buffer */
kal_uint32 tv_output_buffer_size; /* image buffer size for TV source buffer */
/* LCD Setting */
kal_uint32 roi_background_color; /* set the background color */
}
tvo_context_struct;
#endif /* __MED_TVO_MOD__ */
/* Media task Context Struct */
typedef struct
{
kal_uint16 my_mod_id;
med_nvram_state_enum nvram_state;
stack_timer_struct base_timer;
event_scheduler *event_scheduler_ptr;
kal_eventgrpid med_event; /* the event group of media task */
void *int_mem_p;
void *ext_mem_p;
aud_context_struct aud_context;
#ifdef __MED_SND_MOD__
aud_snd_context_struct snd_context;
#endif
#ifdef __MED_APP_MOD__
aud_app_context_struct app_context;
#endif
#ifdef __MED_IMG_MOD__
img_context_struct img_context;
#endif
#ifdef __MED_CAM_MOD__
cam_context_struct cam_context;
#endif
#if defined(__MED_VID_MOD__) || defined (__MED_MJPG_MOD__)
vid_context_struct vid_context;
#endif
#if defined(__MED_WEBCAM_MOD__)
webcam_context_struct webcam_context;
#endif
#if defined(__MED_TVO_MOD__)
tvo_context_struct tvo_context;
#endif
}
med_context_struct;
/*==== GLOBAL VARIABLES ============*/
/* context of media task */
extern med_context_struct med_context;
extern med_context_struct *med_context_p;
/* context of audio manager tast */
extern aud_context_struct *aud_context_p;
#ifdef __MED_SND_MOD__
extern aud_snd_context_struct *aud_snd_cntx_p;
#endif
#ifdef __MED_IMG_MOD__
extern img_context_struct *img_context_p;
#endif
#ifdef __MED_CAM_MOD__
extern cam_context_struct *cam_context_p;
#endif
#if defined(__MED_VID_MOD__) || defined (__MED_MJPG_MOD__)
extern vid_context_struct *vid_context_p;
#endif
#if defined(__MED_WEBCAM_MOD__)
extern webcam_context_struct *webcam_context_p;
#endif
#if defined(__MED_TVO_MOD__)
extern tvo_context_struct *tvo_context_p;
#endif
/* for media common use */
typedef enum
{
MED_EVT_NOWAIT = 0,
MED_EVT_GET_BUFFER = 0x0001,
MED_EVT_FREE_BUFFER = 0x0002
}
med_wait_event_enum;
#define MED_WAIT_EVENT(evt_) do{ \
kal_uint32 retrieved_events; \
kal_retrieve_eg_events(med_context_p->med_event, (evt_), \
KAL_OR_CONSUME, &retrieved_events, KAL_SUSPEND); }while(0)
#define MED_SET_EVENT(evt_) do{ \
kal_set_eg_events(med_context_p->med_event, (evt_),KAL_OR);\
} while(0)
#endif /* _MED_CONTEXT_H */
#endif /* MED_NOT_PRESENT */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -