static av_cold int avisynth_load_library(void) { avs_library.library = LoadLibrary(AVISYNTH_LIB); if (!avs_library.library) return AVERROR_UNKNOWN; #define LOAD_AVS_FUNC(name, continue_on_fail) \ avs_library.name = \ (void *)GetProcAddress(avs_library.library, #name); \ if (!continue_on_fail && !avs_library.name) \ goto fail; LOAD_AVS_FUNC(avs_bit_blt, 0); LOAD_AVS_FUNC(avs_clip_get_error, 0); LOAD_AVS_FUNC(avs_create_script_environment, 0); LOAD_AVS_FUNC(avs_delete_script_environment, 0); LOAD_AVS_FUNC(avs_get_audio, 0); LOAD_AVS_FUNC(avs_get_error, 1); // New to AviSynth 2.6 LOAD_AVS_FUNC(avs_get_frame, 0); LOAD_AVS_FUNC(avs_get_version, 0); LOAD_AVS_FUNC(avs_get_video_info, 0); LOAD_AVS_FUNC(avs_invoke, 0); LOAD_AVS_FUNC(avs_release_clip, 0); LOAD_AVS_FUNC(avs_release_value, 0); LOAD_AVS_FUNC(avs_release_video_frame, 0); LOAD_AVS_FUNC(avs_take_clip, 0); #ifdef USING_AVISYNTH LOAD_AVS_FUNC(avs_bits_per_pixel, 1); LOAD_AVS_FUNC(avs_get_height_p, 1); LOAD_AVS_FUNC(avs_get_pitch_p, 1); LOAD_AVS_FUNC(avs_get_read_ptr_p, 1); LOAD_AVS_FUNC(avs_get_row_size_p, 1); LOAD_AVS_FUNC(avs_is_yv24, 1); LOAD_AVS_FUNC(avs_is_yv16, 1); LOAD_AVS_FUNC(avs_is_yv411, 1); LOAD_AVS_FUNC(avs_is_y8, 1); #endif #undef LOAD_AVS_FUNC atexit(avisynth_atexit_handler); return 0; fail: FreeLibrary(avs_library.library); return AVERROR_UNKNOWN; }
static int load_avisynth_dll( avs_handler_t *hp ) { #define LOAD_AVS_FUNC( name, ignore_fail ) \ { \ hp->func.name = (name##_func)GetProcAddress( hp->library, #name ); \ if( !ignore_fail && !hp->func.name ) \ goto fail; \ } hp->library = LoadLibrary( "avisynth" ); if( !hp->library ) return -1; LOAD_AVS_FUNC( avs_clip_get_error, 0 ); LOAD_AVS_FUNC( avs_create_script_environment, 0 ); LOAD_AVS_FUNC( avs_delete_script_environment, 1 ); LOAD_AVS_FUNC( avs_get_error, 1 ); LOAD_AVS_FUNC( avs_get_frame, 0 ); LOAD_AVS_FUNC( avs_get_audio, 0 ); LOAD_AVS_FUNC( avs_get_video_info, 0 ); LOAD_AVS_FUNC( avs_invoke, 0 ); LOAD_AVS_FUNC( avs_bit_blt, 0 ); LOAD_AVS_FUNC( avs_release_clip, 0 ); LOAD_AVS_FUNC( avs_release_value, 0 ); LOAD_AVS_FUNC( avs_release_video_frame, 0 ); LOAD_AVS_FUNC( avs_take_clip, 0 ); return 0; fail: FreeLibrary( hp->library ); return -1; #undef LOAD_AVS_FUNC }
static av_cold int avisynth_load_library(void) { avs_library = av_mallocz(sizeof(AviSynthLibrary)); if (!avs_library) return AVERROR_UNKNOWN; avs_library->library = LoadLibrary(AVISYNTH_LIB); if (!avs_library->library) goto init_fail; #define LOAD_AVS_FUNC(name, continue_on_fail) \ { \ avs_library->name = (void*)GetProcAddress(avs_library->library, #name); \ if(!continue_on_fail && !avs_library->name) \ goto fail; \ } LOAD_AVS_FUNC(avs_bit_blt, 0); LOAD_AVS_FUNC(avs_clip_get_error, 0); LOAD_AVS_FUNC(avs_create_script_environment, 0); LOAD_AVS_FUNC(avs_delete_script_environment, 0); LOAD_AVS_FUNC(avs_get_audio, 0); LOAD_AVS_FUNC(avs_get_error, 1); // New to AviSynth 2.6 LOAD_AVS_FUNC(avs_get_frame, 0); LOAD_AVS_FUNC(avs_get_version, 0); LOAD_AVS_FUNC(avs_get_video_info, 0); LOAD_AVS_FUNC(avs_invoke, 0); LOAD_AVS_FUNC(avs_release_clip, 0); LOAD_AVS_FUNC(avs_release_value, 0); LOAD_AVS_FUNC(avs_release_video_frame, 0); LOAD_AVS_FUNC(avs_take_clip, 0); #undef LOAD_AVS_FUNC atexit(avisynth_atexit_handler); return 0; fail: FreeLibrary(avs_library->library); init_fail: av_freep(&avs_library); return AVERROR_UNKNOWN; }
/* load the library and functions we require from it */ static int internal_avs_load_library( avs_hnd_t *h ) { h->library = LoadLibrary( "avisynth" ); if( !h->library ) return -1; LOAD_AVS_FUNC( avs_clip_get_error, 0 ); LOAD_AVS_FUNC( avs_create_script_environment, 0 ); LOAD_AVS_FUNC( avs_delete_script_environment, 1 ); LOAD_AVS_FUNC( avs_get_error, 1 ); LOAD_AVS_FUNC( avs_get_frame, 0 ); LOAD_AVS_FUNC( avs_get_video_info, 0 ); LOAD_AVS_FUNC( avs_function_exists, 0 ); LOAD_AVS_FUNC( avs_invoke, 0 ); LOAD_AVS_FUNC( avs_release_clip, 0 ); LOAD_AVS_FUNC( avs_release_value, 0 ); LOAD_AVS_FUNC( avs_release_video_frame, 0 ); LOAD_AVS_FUNC( avs_take_clip, 0 ); return 0; fail: FreeLibrary( h->library ); return -1; }
/* load the library and functions we require from it */ static int custom_avs_load_library( avs_hnd_t *h ) { h->library = avs_open(); if( !h->library ) return -1; LOAD_AVS_FUNC( avs_clip_get_error, 0 ); LOAD_AVS_FUNC( avs_create_script_environment, 0 ); LOAD_AVS_FUNC( avs_delete_script_environment, 1 ); LOAD_AVS_FUNC( avs_get_error, 1 ); LOAD_AVS_FUNC( avs_get_frame, 0 ); LOAD_AVS_FUNC( avs_get_video_info, 0 ); LOAD_AVS_FUNC( avs_function_exists, 0 ); LOAD_AVS_FUNC( avs_invoke, 0 ); LOAD_AVS_FUNC( avs_release_clip, 0 ); LOAD_AVS_FUNC( avs_release_value, 0 ); LOAD_AVS_FUNC( avs_release_video_frame, 0 ); LOAD_AVS_FUNC( avs_take_clip, 0 ); #if !USE_AVXSYNTH // AviSynth+ extension LOAD_AVS_FUNC( avs_is_rgb48, 1 ); LOAD_AVS_FUNC_ALIAS( avs_is_rgb48, "_avs_is_rgb48@4", 1 ); LOAD_AVS_FUNC( avs_is_rgb64, 1 ); LOAD_AVS_FUNC_ALIAS( avs_is_rgb64, "_avs_is_rgb64@4", 1 ); LOAD_AVS_FUNC( avs_is_yuv444p16, 1 ); LOAD_AVS_FUNC( avs_is_yuv422p16, 1 ); LOAD_AVS_FUNC( avs_is_yuv420p16, 1 ); LOAD_AVS_FUNC( avs_is_y16, 1 ); LOAD_AVS_FUNC( avs_is_yuv444ps, 1 ); LOAD_AVS_FUNC( avs_is_yuv422ps, 1 ); LOAD_AVS_FUNC( avs_is_yuv420ps, 1 ); LOAD_AVS_FUNC( avs_is_y32, 1 ); LOAD_AVS_FUNC( avs_is_444, 1 ); LOAD_AVS_FUNC( avs_is_422, 1 ); LOAD_AVS_FUNC( avs_is_420, 1 ); LOAD_AVS_FUNC( avs_is_y, 1 ); LOAD_AVS_FUNC( avs_is_yuva, 1 ); LOAD_AVS_FUNC( avs_is_planar_rgb, 1 ); LOAD_AVS_FUNC( avs_is_planar_rgba, 1 ); LOAD_AVS_FUNC( avs_num_components, 1 ); LOAD_AVS_FUNC( avs_component_size, 1 ); LOAD_AVS_FUNC( avs_bits_per_component, 1 ); #endif return 0; fail: avs_close( h->library ); h->library = NULL; return -1; }
static int load_avisynth_dll(avs_hnd_t *ah) { ah->library = LoadLibrary("avisynth"); if(!ah->library) return -1; LOAD_AVS_FUNC(avs_clip_get_error, 0 ); LOAD_AVS_FUNC(avs_create_script_environment, 0); LOAD_AVS_FUNC(avs_delete_script_environment, 1); LOAD_AVS_FUNC(avs_get_error, 1); LOAD_AVS_FUNC(avs_get_frame, 0); LOAD_AVS_FUNC(avs_get_audio, 0); LOAD_AVS_FUNC(avs_get_version, 0); LOAD_AVS_FUNC(avs_get_video_info, 0); LOAD_AVS_FUNC(avs_function_exists, 0); LOAD_AVS_FUNC(avs_invoke, 0); LOAD_AVS_FUNC(avs_bit_blt, 0); LOAD_AVS_FUNC(avs_release_clip, 0); LOAD_AVS_FUNC(avs_release_value, 0); LOAD_AVS_FUNC(avs_release_video_frame, 0); LOAD_AVS_FUNC(avs_take_clip, 0); return 0; fail: FreeLibrary(ah->library); return -1; }