From: Pierre d'Herbemont Date: Fri, 29 Jan 2010 14:16:22 +0000 (+0100) Subject: macosx/framework: Hack ourselves to get extensions. X-Git-Tag: 1.1.0-ff~702 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=9406b4cc08e9eed9f70c543a940e175a43450a67;p=vlc macosx/framework: Hack ourselves to get extensions. --- diff --git a/projects/macosx/framework/Sources/VLCExtensionsManager.m b/projects/macosx/framework/Sources/VLCExtensionsManager.m index 7f3fd4bcb8..1df889d5f5 100644 --- a/projects/macosx/framework/Sources/VLCExtensionsManager.m +++ b/projects/macosx/framework/Sources/VLCExtensionsManager.m @@ -13,6 +13,31 @@ #import #import +// Here comes the nasty hack. +#import "../../../../src/control/media_player_internal.h" +#import "../../../../src/control/libvlc_internal.h" + +static input_thread_t *libvlc_media_player_get_input_thread(libvlc_media_player_t *player) +{ + vlc_mutex_lock(&player->object_lock); + input_thread_t *input = player->p_input_thread; + if(input) + vlc_object_hold(input); + vlc_mutex_unlock(&player->object_lock); + return input; +} + +static vlc_object_t *libvlc_get_vlc_instance(libvlc_instance_t *instance) +{ + vlc_mutex_lock(&instance->instance_lock); + libvlc_int_t *libvlc = instance->p_libvlc_int; + if(libvlc) + vlc_object_hold(libvlc); + vlc_mutex_unlock(&instance->instance_lock); + return VLC_OBJECT(libvlc); +} + + #define _instance ((extensions_manager_t *)instance) @implementation VLCExtensionsManager @@ -30,8 +55,6 @@ static VLCExtensionsManager *sharedManager = nil; - (void)dealloc { - vlc_object_t *libvlc = libvlc_get_vlc_instance([VLCLibrary sharedInstance]); - vlc_object_release(libvlc); module_unneed(_instance, _instance->p_module); vlc_object_release(_instance);