void core_init(void) { modules_init(); #ifndef WIN32 pidwait_init(); #endif net_disconnect_init(); net_sendbuffer_init(); signals_init(); settings_init(); commands_init(); nickmatch_cache_init(); chat_protocols_init(); chatnets_init(); expandos_init(); ignore_init(); servers_init(); write_buffer_init(); log_init(); rawlog_init(); channels_init(); queries_init(); nicklist_init(); chat_commands_init(); settings_check(); }
void core_init(void) { dialog_type_queue = NULL; dialog_text_queue = NULL; client_start_time = time(NULL); modules_init(); pidwait_init(); net_disconnect_init(); signals_init(); signal_add_first("gui dialog", (SIGNAL_FUNC) sig_gui_dialog); signal_add_first("irssi init finished", (SIGNAL_FUNC) sig_init_finished); settings_init(); commands_init(); nickmatch_cache_init(); session_init(); #ifdef HAVE_CAPSICUM capsicum_init(); #endif chat_protocols_init(); chatnets_init(); expandos_init(); ignore_init(); servers_init(); write_buffer_init(); log_init(); log_away_init(); rawlog_init(); recode_init(); channels_init(); queries_init(); nicklist_init(); chat_commands_init(); wcwidth_wrapper_init(); settings_add_str("misc", "ignore_signals", ""); settings_add_bool("misc", "override_coredump_limit", FALSE); #ifdef HAVE_SYS_RESOURCE_H getrlimit(RLIMIT_CORE, &orig_core_rlimit); #endif read_settings(); signal_add("setup changed", (SIGNAL_FUNC) read_settings); signal_add("irssi init finished", (SIGNAL_FUNC) sig_irssi_init_finished); settings_check(); module_register("core", "core"); }
static vod_status_t mp4_encrypt_init_state( mp4_encrypt_state_t* state, request_context_t* request_context, media_set_t* media_set, uint32_t segment_index, segment_writer_t* segment_writer, const u_char* iv) { media_sequence_t* sequence = &media_set->sequences[0]; drm_info_t* drm_info = (drm_info_t*)sequence->drm_info; vod_status_t rc; uint64_t iv_int; u_char* p; // fixed fields state->request_context = request_context; state->media_set = media_set; state->sequence = sequence; state->segment_index = segment_index; state->segment_writer = *segment_writer; // init the aes ctr rc = mp4_aes_ctr_init(&state->cipher, request_context, drm_info->key); if (rc != VOD_OK) { return rc; } // init the output buffer write_buffer_init( &state->write_buffer, request_context, segment_writer->write_tail, segment_writer->context, FALSE); // increment the iv by the index of the first frame iv_int = parse_be64(iv); iv_int += sequence->filtered_clips[0].first_track->first_frame_index; // Note: we don't know how many frames were in previous clips (were not parsed), assuming there won't be more than 60 fps iv_int += (sequence->filtered_clips[0].first_track->clip_start_time * MAX_FRAME_RATE) / 1000; p = state->iv; write_be64(p, iv_int); // init the first clip state->cur_clip = sequence->filtered_clips; mp4_encrypt_init_track(state, state->cur_clip->first_track); // saiz / saio state->saiz_atom_size = ATOM_HEADER_SIZE + sizeof(saiz_atom_t); state->saio_atom_size = ATOM_HEADER_SIZE + sizeof(saio_atom_t); return VOD_OK; }
void core_init(int argc, char *argv[]) { dialog_type_queue = NULL; dialog_text_queue = NULL; modules_init(); #ifndef WIN32 pidwait_init(); #endif net_disconnect_init(); net_sendbuffer_init(); signals_init(); signal_add_first("gui dialog", (SIGNAL_FUNC) sig_gui_dialog); signal_add_first("irssi init finished", (SIGNAL_FUNC) sig_init_finished); settings_init(); commands_init(); nickmatch_cache_init(); session_init(); chat_protocols_init(); chatnets_init(); expandos_init(); ignore_init(); servers_init(); write_buffer_init(); log_init(); log_away_init(); rawlog_init(); recode_init(); channels_init(); queries_init(); nicklist_init(); chat_commands_init(); settings_add_str("misc", "ignore_signals", ""); settings_add_bool("misc", "override_coredump_limit", TRUE); #ifdef HAVE_SYS_RESOURCE_H getrlimit(RLIMIT_CORE, &orig_core_rlimit); #endif read_settings(); signal_add("setup changed", (SIGNAL_FUNC) read_settings); signal_add("irssi init finished", (SIGNAL_FUNC) sig_irssi_init_finished); settings_check(); module_register("core", "core"); }
static vod_status_t hds_muxer_init_state( request_context_t* request_context, media_sequence_t* sequence, write_callback_t write_callback, void* write_context, hds_muxer_state_t** result) { media_clip_filtered_t* track_array; media_track_t* cur_track; hds_muxer_stream_state_t* cur_stream; hds_muxer_state_t* state; uint32_t index; vod_status_t rc; // allocate the state and stream states state = vod_alloc(request_context->pool, sizeof(*state)); if (state == NULL) { vod_log_debug0(VOD_LOG_DEBUG_LEVEL, request_context->log, 0, "hds_muxer_init_state: vod_alloc failed (1)"); return VOD_ALLOC_FAILED; } state->first_stream = vod_alloc( request_context->pool, sizeof(state->first_stream[0]) * sequence->total_track_count); if (state->first_stream == NULL) { vod_log_debug0(VOD_LOG_DEBUG_LEVEL, request_context->log, 0, "hds_muxer_init_state: vod_alloc failed (2)"); return VOD_ALLOC_FAILED; } state->last_stream = state->first_stream + sequence->total_track_count; state->request_context = request_context; state->cur_frame = NULL; state->first_time = TRUE; state->clips_start = sequence->filtered_clips; state->clips_end = sequence->filtered_clips_end; state->cur_clip = sequence->filtered_clips + 1; write_buffer_init(&state->write_buffer_state, request_context, write_callback, write_context, FALSE); state->codec_config_size = 0; index = 0; cur_track = state->clips_start->first_track; for (cur_stream = state->first_stream; cur_stream < state->last_stream; cur_stream++, cur_track++, index++) { cur_stream->index = index; // get total frame count for this stream cur_stream->frame_count = cur_track->frame_count; for (track_array = state->cur_clip; track_array < state->clips_end; track_array++) { cur_stream->frame_count += track_array->first_track[cur_stream->index].frame_count; } // allocate the output offset cur_stream->first_frame_output_offset = vod_alloc( request_context->pool, cur_stream->frame_count * sizeof(uint32_t)); if (cur_stream->first_frame_output_offset == NULL) { vod_log_debug0(VOD_LOG_DEBUG_LEVEL, request_context->log, 0, "hds_muxer_init_state: vod_alloc failed (3)"); return VOD_ALLOC_FAILED; } cur_stream->cur_frame_output_offset = cur_stream->first_frame_output_offset; // init the stream rc = hds_muxer_init_track(state, cur_stream, cur_track); if (rc != VOD_OK) { return rc; } // update the codec config size state->codec_config_size += tag_size_by_media_type[cur_track->media_info.media_type] + cur_track->media_info.extra_data_size + sizeof(uint32_t); } *result = state; return VOD_OK; }
static vod_status_t hds_muxer_init_state( request_context_t* request_context, mpeg_metadata_t *mpeg_metadata, read_cache_state_t* read_cache_state, write_callback_t write_callback, void* write_context, hds_muxer_state_t** result) { mpeg_stream_metadata_t* cur_stream; hds_muxer_stream_state_t* stream_state; hds_muxer_state_t* state; vod_status_t rc; // allocate the state and stream states state = vod_alloc(request_context->pool, sizeof(*state)); if (state == NULL) { vod_log_debug0(VOD_LOG_DEBUG_LEVEL, request_context->log, 0, "hds_muxer_init_state: vod_alloc failed (1)"); return VOD_ALLOC_FAILED; } state->first_stream = vod_alloc( request_context->pool, sizeof(state->first_stream[0]) * mpeg_metadata->streams.nelts); if (state->first_stream == NULL) { vod_log_debug0(VOD_LOG_DEBUG_LEVEL, request_context->log, 0, "hds_muxer_init_state: vod_alloc failed (2)"); return VOD_ALLOC_FAILED; } state->last_stream = state->first_stream + mpeg_metadata->streams.nelts; state->request_context = request_context; state->cur_frame = NULL; state->read_cache_state = read_cache_state; write_buffer_init(&state->write_buffer_state, request_context, write_callback, write_context); stream_state = state->first_stream; for (cur_stream = mpeg_metadata->first_stream; cur_stream < mpeg_metadata->last_stream; cur_stream++, stream_state++) { // initialize the stream stream_state->metadata = cur_stream; stream_state->media_type = cur_stream->media_info.media_type; stream_state->timescale = cur_stream->media_info.timescale; stream_state->first_frame = cur_stream->frames; stream_state->last_frame = cur_stream->frames + cur_stream->frame_count; stream_state->first_frame_time_offset = cur_stream->first_frame_time_offset; stream_state->next_frame_time_offset = cur_stream->first_frame_time_offset; stream_state->next_frame_dts = rescale_time(stream_state->next_frame_time_offset, stream_state->timescale, HDS_TIMESCALE); stream_state->cur_frame = stream_state->first_frame; stream_state->first_frame_input_offset = cur_stream->frame_offsets; stream_state->cur_frame_input_offset = stream_state->first_frame_input_offset; stream_state->first_frame_output_offset = vod_alloc( request_context->pool, cur_stream->frame_count * sizeof(uint32_t)); if (stream_state->first_frame_output_offset == NULL) { vod_log_debug0(VOD_LOG_DEBUG_LEVEL, request_context->log, 0, "hds_muxer_init_state: vod_alloc failed (3)"); return VOD_ALLOC_FAILED; } stream_state->cur_frame_output_offset = stream_state->first_frame_output_offset; if (cur_stream->media_info.media_type == MEDIA_TYPE_AUDIO) { rc = hds_get_sound_info(request_context, &cur_stream->media_info, &stream_state->sound_info); if (rc != VOD_OK) { vod_log_debug1(VOD_LOG_DEBUG_LEVEL, request_context->log, 0, "hds_muxer_init_state: hds_get_sound_info failed %i", rc); return rc; } } } *result = state; return VOD_OK; }