static void init_everything(void) { log_init("rtpengine"); log_format(rtpe_config.log_format); recording_fs_init(rtpe_config.spooldir, rtpe_config.rec_method, rtpe_config.rec_format); rtpe_ssl_init(); #if !GLIB_CHECK_VERSION(2,32,0) g_thread_init(NULL); #endif #if !(GLIB_CHECK_VERSION(2,36,0)) g_type_init(); #endif signals(); resources(); sdp_init(); dtls_init(); ice_init(); crypto_init_main(); interfaces_init(&rtpe_config.interfaces); iptables_init(); control_ng_init(); if (call_interfaces_init()) abort(); statistics_init(); codeclib_init(0); media_player_init(); }
RET_CODE win_media_player_init(mp_callback_func mp_cb) { RET_CODE ret = RET_SUCCESS; PeConfig pe_cfg; MEMSET(&pe_cfg, 0, sizeof(pe_cfg)); //fill the music engine config pe_cfg.music.pcm_out_buff = __MM_TTX_BS_START_ADDR & 0x8fffffff; pe_cfg.music.pcm_out_buff_size = __MM_TTX_BS_LEN & 0x8fffffff; pe_cfg.music.processed_pcm_buff = __MM_SUB_BS_START_ADDR & 0x8fffffff; pe_cfg.music.processed_pcm_buff_size = __MM_SUB_BS_LEN & 0x8fffffff; pe_cfg.music.mp_cb = mp_cb; //fill the image engine config pe_cfg.image.frm_y_size = __MM_FB0_Y_LEN; pe_cfg.image.frm_y_addr = __MM_FB0_Y_START_ADDR; pe_cfg.image.frm_c_size = __MM_FB0_C_LEN; pe_cfg.image.frm_c_addr = __MM_FB0_C_START_ADDR; pe_cfg.image.frm2_y_size = __MM_FB1_Y_LEN; pe_cfg.image.frm2_y_addr = __MM_FB1_Y_START_ADDR; pe_cfg.image.frm2_c_size = __MM_FB1_C_LEN; pe_cfg.image.frm2_c_addr = __MM_FB1_C_START_ADDR; pe_cfg.image.frm3_y_size = __MM_FB2_Y_LEN; pe_cfg.image.frm3_y_addr = __MM_FB2_Y_START_ADDR; pe_cfg.image.frm3_c_size = __MM_FB2_C_LEN; pe_cfg.image.frm3_c_addr = __MM_FB2_C_START_ADDR; pe_cfg.image.decoder_buf = (UINT8 *)__MM_MP_BUFFER_ADDR; pe_cfg.image.decoder_buf_len = __MM_MP_BUFFER_LEN; pe_cfg.image.mp_cb = mp_cb; //fill the video engine config pe_cfg.video.mp_cb = mp_cb; pe_cfg.video.decoder_buf = __MM_PVR_VOB_BUFFER_ADDR; pe_cfg.video.decoder_buf_len = __MM_PVR_VOB_BUFFER_LEN; pe_cfg.video.mm_vbv_len = __MM_VBV_LEN; pe_cfg.video.reserved = 0; ret = media_player_init(&pe_cfg); config_deo_frm_buf(); return ret; }
RET_CODE win_media_player_init_ex(mp_callback_func mp_cb, UINT8 bExt) //for youtube player init { RET_CODE ret = RET_SUCCESS; PeConfig pe_cfg; struct pe_video_cfg_extra video_cfg_extra; MEMSET(&pe_cfg, 0, sizeof(pe_cfg)); MEMSET(&video_cfg_extra, 0, sizeof(struct pe_video_cfg_extra)); //fill the music engine config pe_cfg.music.pcm_out_buff = __MM_TTX_BS_START_ADDR & 0x8fffffff; pe_cfg.music.pcm_out_buff_size = __MM_TTX_BS_LEN & 0x8fffffff; pe_cfg.music.processed_pcm_buff = __MM_SUB_BS_START_ADDR & 0x8fffffff; pe_cfg.music.processed_pcm_buff_size = __MM_SUB_BS_LEN & 0x8fffffff; pe_cfg.music.mp_cb = mp_cb; //fill the image engine config pe_cfg.image.frm_y_size = __MM_FB0_Y_LEN; pe_cfg.image.frm_y_addr = __MM_FB0_Y_START_ADDR; pe_cfg.image.frm_c_size = __MM_FB0_C_LEN; pe_cfg.image.frm_c_addr = __MM_FB0_C_START_ADDR; pe_cfg.image.frm2_y_size = __MM_FB1_Y_LEN; pe_cfg.image.frm2_y_addr = __MM_FB1_Y_START_ADDR; pe_cfg.image.frm2_c_size = __MM_FB1_C_LEN; pe_cfg.image.frm2_c_addr = __MM_FB1_C_START_ADDR; pe_cfg.image.frm3_y_size = __MM_FB2_Y_LEN; pe_cfg.image.frm3_y_addr = __MM_FB2_Y_START_ADDR; pe_cfg.image.frm3_c_size = __MM_FB2_C_LEN; pe_cfg.image.frm3_c_addr = __MM_FB2_C_START_ADDR; pe_cfg.image.decoder_buf = (UINT8 *)__MM_MP_BUFFER_ADDR; pe_cfg.image.decoder_buf_len = __MM_MP_BUFFER_LEN; pe_cfg.image.mp_cb = mp_cb; //fill the video engine config pe_cfg.video.mp_cb = mp_cb; pe_cfg.video.decoder_buf = __MM_VIDEO_FILE_BUF_ADDR; pe_cfg.video.decoder_buf_len = __MM_VIDEO_FILE_BUF_LEN; pe_cfg.video.mm_vbv_len = __MM_VBV_LEN; pe_cfg.video.reserved = 0; pe_cfg.video.disable_seek = TRUE;//disable network mediaplay seek function #ifdef M36F_CHIP_MODE #if (SYS_SDRAM_SIZE == 128 || SYS_SDRAM_SIZE == 64) // video file buffer is seperated with frame buffer #if (__MM_FB_TOP_ADDR > __MM_VIDEO_FILE_BUF_ADDR) pe_cfg.video.decoder_buf_len = __MM_FB_TOP_ADDR - __MM_VIDEO_FILE_BUF_ADDR; #endif video_cfg_extra.frame_buf_base = __MM_FB_BOTTOM_ADDR; video_cfg_extra.frame_buf_len = __MM_FB_TOP_ADDR - __MM_FB_BOTTOM_ADDR; video_cfg_extra.reserved[0] = (UINT32)font_array_1bit_subt; video_cfg_extra.reserved[1] = 6; //sizeof(font_array_1bit_subt) / sizeof(font_array_1bit_subt[0]); pe_cfg.video.reserved = (UINT32)(&video_cfg_extra); #endif #else // M3602 // video file buffer is seperated with frame buffer video_cfg_extra.frame_buf_base = __MM_FB_BOTTOM_ADDR; video_cfg_extra.frame_buf_len = __MM_FB_TOP_ADDR - __MM_FB_BOTTOM_ADDR; video_cfg_extra.reserved[0] = font_array_1bit_subt; video_cfg_extra.reserved[1] = 6; //sizeof(font_array_1bit_subt) / sizeof(font_array_1bit_subt[0]); pe_cfg.video.reserved = (UINT32)(&video_cfg_extra); #endif if(bExt) ret = media_player_init_ex(&pe_cfg); else ret = media_player_init(&pe_cfg); config_deo_frm_buf(); return ret; }