/** * Initialization code to be run at the very start, most not depend * on option values. */ void common_preinit(void) { InitTimer(); srand(GetTimerMS()); mp_msg_init(); }
static int output_ffmpeg_init(void) { Log_error("ffmpeg", "output_ffmpeg_init----- "); SongMetaData_init(&song_meta_); register_mime_type("audio/*"); register_mime_type("audio/x-mpeg"); register_mime_type("audio/mpeg"); av_register_all(); avformat_network_init(); //:(s_pFormatCtx = avformat_alloc_context(); s_au_convert_ctx = swr_alloc(); s_out_buffer = (uint8_t *)av_malloc(MAX_AUDIO_FRAME_SIZE * 2); s_pFrame = av_frame_alloc(); mp_msg_init(); char ** ao_list= malloc(sizeof(char*)*2); const int c_number_count = 10; *ao_list = malloc(sizeof(char) * c_number_count); ao_list[1] = malloc(sizeof(char) *c_number_count); strcpy(ao_list[0],"alsa"); memset(ao_list[1],0, c_number_count); s_audio_device = init_best_audio_out(ao_list, 0, 44100, 2,AF_FORMAT_S16_LE,0); assert(s_audio_device != NULL); free(ao_list[0]); free(ao_list[1]); free(ao_list); mixer_Init_control_point(&s_mixer, s_audio_device); pthread_mutex_init(&s_mutex, NULL); pthread_cond_init(&s_cond, NULL); return 0; }
/** * Initialization code to be run at the very start, must not depend * on option values. */ void common_preinit(void) { sanitize_os(); InitTimer(); srand(GetTimerMS()); mp_msg_init(); }
int main(void) { void *handler; void *handler2; void* theqtdp=NULL; void* compcall=NULL; void* compcallws=NULL; ComponentResult (*dispatcher)(ComponentParameters *params, Globals glob); ComponentResult ret; ComponentParameters *params; ComponentDescription desc; void *globals=NULL; //unsigned int esp=0; //int i; mp_msg_init(); //mp_msg_set_level(10); Setup_LDT_Keeper(); printf("loading qts\n"); // handler = LoadLibraryA("/root/.wine/fake_windows/Windows/System/QuickTime.qts"); handler = LoadLibraryA("QuickTime.qts"); theqtdp = GetProcAddress(handler, "theQuickTimeDispatcher"); compcall = GetProcAddress(handler, "CallComponent"); compcallws = GetProcAddress(handler, "CallComponentFunctionWithStorage"); InitializeQTML = 0x6299e590;//GetProcAddress(handler, "InitializeQTML"); InitializeQTML(6+16); printf("loading svq3\n"); handler2= LoadLibraryA("/root/.wine/fake_windows/Windows/System/QuickTime/QuickTimeEssentials.qtx"); printf("done\n"); dispatcher = GetProcAddress(handler2, "SMD_ComponentDispatch"); // handler = expLoadLibraryA("/usr/local/lib/codecs/On2_VP3.qtx"); // dispatcher = GetProcAddress(handler, "CDComponentDispatcher"); printf("handler: %p, dispatcher: %p theqtdp: %p\n", handler, dispatcher, theqtdp); // printf("theQuickTimeDispatcher = %p\n",GetProcAddress(handler, "theQuickTimeDispatcher")); // patch svq3 dll: *((void**)0x63214c98) = NULL; *((void**)0x63214c9c) = theqtdp; // theQt... *((void**)0x63214ca0) = compcall; //0xdeadbeef; //dispatcher; // CallCOmponent_ptr *((void**)0x63214ca4) = compcallws; //0xdeadbef2; //dispatcher; // CallComponentWithStorage_ptr desc.componentType=0; desc.componentSubType=0; desc.componentManufacturer=0; desc.componentFlags=0; desc.componentFlagsMask=0; params = malloc(sizeof(ComponentParameters)+2048); params->flags = 0; params->paramSize = 4; params->what = kComponentOpenSelect; params->params[0] = 0x830000; //0x820000|i; //(i<<16)|0x24; //0x820024; ret = dispatcher(params, &globals); printf("!!! CDComponentDispatch() => 0x%X glob=%p\n",ret,globals); // memset(x_table,12,4*0x00001837); //for(i=0;i<=255;i++){ // params->what = kComponentVersionSelect; // params->what = kComponentRegisterSelect; // params->what = kComponentOpenSelect; // params->what = kComponentCanDoSelect; printf("params: flags: %d, paramSize: %d, what: %d, params[0] = %x\n", params->flags, params->paramSize, params->what, params->params[0]); // __asm__ volatile ("movl %%esp, %0\n\t" : "=a" (esp) :: "memory" ); // printf("ESP=%p\n",esp); *((void**)0x62b7d640) = &x_table[0]; //malloc(0x00001837 * 4); // ugly hack? printf("params=%p &glob=%p x_table=%p\n",params,&globals, &x_table[0]); ret = dispatcher(params, &globals); // __asm__ volatile ("movl %%esp, %0\n\t" : "=a" (esp) :: "memory" ); // printf("ESP=%p\n",esp); printf("!!! CDComponentDispatch() => %d glob=%p\n",ret,globals); // if(ret!=-3000) break; //} // for(i=0;i<0x00001837;i++) // if(x_table[i]) printf("x_table[0x%X] = %p\n",i,x_table[i]); exit(0); //return 0; }