⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 med_context.h

📁 最新MTK手机软件源码
💻 H
📖 第 1 页 / 共 3 页
字号:
    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 + -