vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Mar 6 20:03:08 2019 +0200| [a990818d1a62995f8d300ac7942a1d8d62628e15] | committer: Rémi Denis-Courmont
vout: introduce vout_Hold() and vout_Release() Type-safe replacements for vlc_object_hold() and vlc_object_release() (as discussed during the last workshop). > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a990818d1a62995f8d300ac7942a1d8d62628e15 --- include/vlc_input.h | 10 ++++----- include/vlc_objects.h | 12 ++++++++++ include/vlc_player.h | 5 ++--- lib/media_player.c | 2 +- lib/video.c | 26 +++++++++++----------- modules/control/dbus/dbus_root.c | 2 +- modules/control/gestures.c | 4 ++-- modules/control/hotkeys.c | 8 +++---- modules/control/oldrc.c | 8 +++---- .../macosx/coreinteraction/VLCCoreInteraction.m | 14 ++++++------ .../macosx/coreinteraction/VLCVideoFilterHelper.m | 4 ++-- modules/gui/macosx/menus/VLCMainMenu.m | 8 +++---- modules/gui/macosx/os-integration/applescript.m | 6 ++--- .../VLCTrackSynchronizationWindowController.m | 2 +- .../panels/VLCVideoEffectsWindowController.m | 4 ++-- .../macosx/windows/video/VLCVideoWindowCommon.m | 4 ++-- modules/gui/macosx/windows/video/VLCVoutView.m | 8 +++---- modules/gui/ncurses.c | 2 +- modules/gui/qt/actions_manager.cpp | 4 ++-- modules/gui/qt/components/controller.cpp | 4 ++-- modules/gui/qt/components/controller_widget.cpp | 4 ++-- modules/gui/qt/components/extended_panels.cpp | 8 +++---- modules/gui/qt/input_manager.cpp | 2 +- modules/gui/qt/menus.cpp | 6 ++--- modules/gui/skins2/commands/cmd_fullscreen.cpp | 2 +- modules/gui/skins2/commands/cmd_quit.cpp | 2 +- modules/gui/skins2/commands/cmd_snapshot.cpp | 2 +- modules/gui/skins2/src/vlcproc.cpp | 6 ++--- modules/lua/libs/objects.c | 12 ++++++++-- modules/lua/libs/osd.c | 10 ++++----- modules/lua/libs/video.c | 2 +- src/input/control.c | 2 +- src/input/decoder.c | 10 ++++----- src/input/decoder.h | 2 +- src/input/input.c | 4 ++-- src/input/player.c | 6 ++--- src/input/resource.c | 4 ++-- src/input/resource.h | 4 ++-- test/src/input/player.c | 4 ++-- 39 files changed, 124 insertions(+), 105 deletions(-) diff --git a/include/vlc_input.h b/include/vlc_input.h index 289b1e7b55..6b2c513d27 100644 --- a/include/vlc_input.h +++ b/include/vlc_input.h @@ -577,7 +577,7 @@ enum input_query_e INPUT_SET_INITIAL_VIEWPOINT, /* arg1=(const vlc_viewpoint_t*) */ /* Input ressources - * XXX You must call vlc_object_release as soon as possible */ + * XXX You must release as soon as possible */ INPUT_GET_AOUT, /* arg1=audio_output_t ** res=can fail */ INPUT_GET_VOUTS, /* arg1=vout_thread_t ***, size_t * res=can fail */ INPUT_GET_ES_OBJECTS, /* arg1=int id, vlc_object_t **dec, vout_thread_t **, audio_output_t ** */ @@ -657,7 +657,7 @@ VLC_API input_item_t* input_GetItem( input_thread_t * ) VLC_USED; * INPUT_GET_VOUTS directly and process _all_ video outputs instead. * @param p_input an input thread from which to get a video output * @return NULL on error, or a video output thread pointer (which needs to be - * released with vlc_object_release()). + * released with vout_Release()). */ static inline vout_thread_t *input_GetVout( input_thread_t *p_input ) { @@ -668,7 +668,7 @@ static inline vout_thread_t *input_GetVout( input_thread_t *p_input ) return NULL; for( size_t i = 1; i < i_vout; i++ ) - vlc_object_release( (vlc_object_t *)(pp_vout[i]) ); + vout_Release(pp_vout[i]); p_vout = (i_vout >= 1) ? pp_vout[0] : NULL; free( pp_vout ); @@ -716,8 +716,8 @@ static inline audio_output_t *input_GetAout( input_thread_t *p_input ) /** * Returns the objects associated to an ES. * - * You must release all non NULL object using vlc_object_release. - * You may set pointer of pointer to NULL to avoid retreiving it. + * You must release all non-NULL objects. + * You may set pointer of pointer to NULL to avoid retrieving it. */ static inline int input_GetEsObjects( input_thread_t *p_input, int i_id, vlc_object_t **pp_decoder, diff --git a/include/vlc_objects.h b/include/vlc_objects.h index de251735cf..720c86639b 100644 --- a/include/vlc_objects.h +++ b/include/vlc_objects.h @@ -185,6 +185,18 @@ static inline void input_Release(input_thread_t *input) vlc_object_release((vlc_object_t *)input); } +/* Here for backward compatibility. TODO: Move to <vlc_vout.h>! */ +static inline vout_thread_t *vout_Hold(vout_thread_t *vout) +{ + vlc_object_hold((vlc_object_t *)vout); + return vout; +} + +static inline void vout_Release(vout_thread_t *vout) +{ + vlc_object_release((vlc_object_t *)vout); +} + /** * @defgroup objres Object resources * diff --git a/include/vlc_player.h b/include/vlc_player.h index 78d78d29d3..739953ca70 100644 --- a/include/vlc_player.h +++ b/include/vlc_player.h @@ -2592,8 +2592,7 @@ vlc_player_aout_EnableFilter(vlc_player_t *player, const char *name, bool add); /** * Get and hold the main video output * - * @warning the returned vout_thread_t * must be released with - * vlc_object_release(). + * @warning the returned vout_thread_t * must be released with vout_Release(). * @see vlc_players_cbs.on_vout_list_changed * * @param player player instance @@ -2606,7 +2605,7 @@ vlc_player_vout_Hold(vlc_player_t *player); * Get and hold the list of video output * * @warning All vout_thread_t * element of the array must be released with - * vlc_object_release(). The returned array must be freed. + * vout_Release(). The returned array must be freed. * * @see vlc_players_cbs.on_vout_list_changed * diff --git a/lib/media_player.c b/lib/media_player.c index 3ffceacf52..468c144da1 100644 --- a/lib/media_player.c +++ b/lib/media_player.c @@ -390,7 +390,7 @@ input_event_changed( vlc_object_t * p_this, char const * psz_cmd, else { for( size_t i = 0; i < i_vout; i++ ) - vlc_object_release( pp_vout[i] ); + vout_Release(pp_vout[i]); free( pp_vout ); } diff --git a/lib/video.c b/lib/video.c index e5c2d72406..6c35d78507 100644 --- a/lib/video.c +++ b/lib/video.c @@ -80,7 +80,7 @@ static vout_thread_t *GetVout (libvlc_media_player_t *mp, size_t num) for (size_t i = 0; i < n; i++) if (i != num) - vlc_object_release (pp_vouts[i]); + vout_Release(pp_vouts[i]); free (pp_vouts); if (p_vout == NULL) @@ -104,7 +104,7 @@ void libvlc_set_fullscreen( libvlc_media_player_t *p_mi, int b_fullscreen ) for (size_t i = 0; i < n; i++) { var_SetBool (pp_vouts[i], "fullscreen", b_fullscreen); - vlc_object_release (pp_vouts[i]); + vout_Release(pp_vouts[i]); } free (pp_vouts); } @@ -126,7 +126,7 @@ void libvlc_toggle_fullscreen( libvlc_media_player_t *p_mi ) vout_thread_t *p_vout = pp_vouts[i]; var_SetBool (p_vout, "fullscreen", b_fullscreen); - vlc_object_release (p_vout); + vout_Release(p_vout); } free (pp_vouts); } @@ -165,7 +165,7 @@ libvlc_video_take_snapshot( libvlc_media_player_t *p_mi, unsigned num, var_Create( p_vout, "snapshot-format", VLC_VAR_STRING ); var_SetString( p_vout, "snapshot-format", "png" ); var_TriggerCallback( p_vout, "video-snapshot" ); - vlc_object_release( p_vout ); + vout_Release(p_vout); return 0; } @@ -199,7 +199,7 @@ int libvlc_video_get_cursor( libvlc_media_player_t *mp, unsigned num, return -1; var_GetCoords (p_vout, "mouse-moved", px, py); - vlc_object_release (p_vout); + vout_Release(p_vout); return 0; } @@ -208,7 +208,7 @@ unsigned libvlc_media_player_has_vout( libvlc_media_player_t *p_mi ) size_t n; vout_thread_t **pp_vouts = GetVouts (p_mi, &n); for (size_t i = 0; i < n; i++) - vlc_object_release (pp_vouts[i]); + vout_Release(pp_vouts[i]); free (pp_vouts); return n; } @@ -237,7 +237,7 @@ void libvlc_video_set_scale( libvlc_media_player_t *p_mp, float f_scale ) if (isfinite(f_scale) && f_scale != 0.f) var_SetFloat (p_vout, "zoom", f_scale); var_SetBool (p_vout, "autoscale", f_scale == 0.f); - vlc_object_release (p_vout); + vout_Release(p_vout); } free (pp_vouts); } @@ -261,7 +261,7 @@ void libvlc_video_set_aspect_ratio( libvlc_media_player_t *p_mi, vout_thread_t *p_vout = pp_vouts[i]; var_SetString (p_vout, "aspect-ratio", psz_aspect); - vlc_object_release (p_vout); + vout_Release(p_vout); } free (pp_vouts); } @@ -437,7 +437,7 @@ void libvlc_video_set_crop_geometry( libvlc_media_player_t *p_mi, vout_thread_t *p_vout = pp_vouts[i]; var_SetString (p_vout, "crop", psz_geometry); - vlc_object_release (p_vout); + vout_Release(p_vout); } free (pp_vouts); } @@ -628,7 +628,7 @@ void libvlc_video_set_deinterlace( libvlc_media_player_t *p_mi, int deinterlace, var_SetString (p_vout, "deinterlace-mode", psz_mode); var_SetInteger (p_vout, "deinterlace", deinterlace); - vlc_object_release (p_vout); + vout_Release(p_vout); } free (pp_vouts); } @@ -729,14 +729,14 @@ static bool find_sub_source_by_name( libvlc_media_player_t *p_mi, const char *re if( !psz_sources ) { libvlc_printerr( "%s not enabled", name ); - vlc_object_release( vout ); + vout_Release(vout); return false; } /* Find 'name' */ char *p = strstr( psz_sources, name ); free( psz_sources ); - vlc_object_release( vout ); + vout_Release(vout); return (p != NULL); } @@ -792,7 +792,7 @@ set_value( libvlc_media_player_t *p_mi, const char *restrict name, var_SetChecked( pp_vouts[i], psz_opt_name, i_type, new_val ); if( b_sub_source ) var_TriggerCallback( pp_vouts[i], "sub-source" ); - vlc_object_release( pp_vouts[i] ); + vout_Release(pp_vouts[i]); } if( opt->type == 0 ) diff --git a/modules/control/dbus/dbus_root.c b/modules/control/dbus/dbus_root.c index 5781278384..854d656912 100644 --- a/modules/control/dbus/dbus_root.c +++ b/modules/control/dbus/dbus_root.c @@ -97,7 +97,7 @@ MarshalCanSetFullscreen( intf_thread_t *p_intf, DBusMessageIter *container ) if ( p_vout ) { b_ret = TRUE; - vlc_object_release( p_vout ); + vout_Release(p_vout); } } diff --git a/modules/control/gestures.c b/modules/control/gestures.c index 758cbdf39f..ff103f2f66 100644 --- a/modules/control/gestures.c +++ b/modules/control/gestures.c @@ -171,7 +171,7 @@ static void Close ( vlc_object_t *p_this ) var_DelCallback( p_sys->p_vout, "mouse-moved", MovedEvent, p_intf ); var_DelCallback( p_sys->p_vout, "mouse-button-down", ButtonEvent, p_intf ); - vlc_object_release( p_sys->p_vout ); + vout_Release(p_sys->p_vout); } /* Destroy structure */ @@ -483,7 +483,7 @@ static int InputEvent( vlc_object_t *p_this, char const *psz_var, p_intf ); var_DelCallback( p_sys->p_vout, "mouse-button-down", ButtonEvent, p_intf ); - vlc_object_release( p_sys->p_vout ); + vout_Release(p_sys->p_vout); } p_sys->p_vout = input_GetVout( p_input ); diff --git a/modules/control/hotkeys.c b/modules/control/hotkeys.c index 46be8124f6..0793d2ad9f 100644 --- a/modules/control/hotkeys.c +++ b/modules/control/hotkeys.c @@ -241,7 +241,7 @@ static void ChangeVout( intf_thread_t *p_intf, vout_thread_t *p_vout ) var_DelCallback( p_old_vout, "mouse-button-down", ButtonEvent, p_intf ); var_DelCallback( p_old_vout, "mouse-moved", MovedEvent, p_intf ); - vlc_object_release( p_old_vout ); + vout_Release(p_old_vout); } if( p_vout != NULL ) @@ -308,7 +308,7 @@ static void ChangeInput( intf_thread_t *p_intf, input_thread_t *p_input ) if( p_old_input != NULL ) { if( p_old_vout != NULL ) - vlc_object_release( p_old_vout ); + vout_Release(p_old_vout); input_Release(p_old_input); } @@ -1446,7 +1446,7 @@ static int ActionEvent( vlc_object_t *libvlc, char const *psz_var, vlc_mutex_lock( &p_intf->p_sys->lock ); input_thread_t *p_input = p_sys->p_input ? input_Hold(p_sys->p_input) : NULL; - vout_thread_t *p_vout = p_sys->p_vout ? vlc_object_hold( p_sys->p_vout ) + vout_thread_t *p_vout = p_sys->p_vout ? vout_Hold(p_sys->p_vout) : NULL; int slider_chan = p_sys->slider_chan; bool b_vrnav = p_sys->vrnav.b_can_change; @@ -1458,7 +1458,7 @@ static int ActionEvent( vlc_object_t *libvlc, char const *psz_var, if( p_input != NULL ) input_Release(p_input); if( p_vout != NULL ) - vlc_object_release( p_vout ); + vout_Release(p_vout); return i_ret; } diff --git a/modules/control/oldrc.c b/modules/control/oldrc.c index 97d41795bb..86d43203f1 100644 --- a/modules/control/oldrc.c +++ b/modules/control/oldrc.c @@ -765,7 +765,7 @@ static void *Run( void *data ) if( p_vout ) { var_SetBool( p_vout, "fullscreen", fs ); - vlc_object_release( p_vout ); + vout_Release(p_vout); } } break; @@ -1556,7 +1556,7 @@ static int VideoConfig( vlc_object_t *p_this, char const *psz_cmd, psz_value = var_GetString( p_vout, psz_variable ); if( psz_value == NULL ) { - vlc_object_release( p_vout ); + vout_Release(p_vout); return VLC_EGENERIC; } } @@ -1564,7 +1564,7 @@ static int VideoConfig( vlc_object_t *p_this, char const *psz_cmd, if ( var_Change( p_vout, psz_variable, VLC_VAR_GETCHOICES, &count, &val, &text ) < 0 ) { - vlc_object_release( p_vout ); + vout_Release(p_vout); free( psz_value ); return VLC_EGENERIC; } @@ -1601,7 +1601,7 @@ static int VideoConfig( vlc_object_t *p_this, char const *psz_cmd, free( name ); } - vlc_object_release( p_vout ); + vout_Release(p_vout); return i_error; } diff --git a/modules/gui/macosx/coreinteraction/VLCCoreInteraction.m b/modules/gui/macosx/coreinteraction/VLCCoreInteraction.m index e2be092a19..05e0f3e918 100644 --- a/modules/gui/macosx/coreinteraction/VLCCoreInteraction.m +++ b/modules/gui/macosx/coreinteraction/VLCCoreInteraction.m @@ -390,7 +390,7 @@ static int BossCallback(vlc_object_t *p_this, const char *psz_var, vout_OSDMessage(p_vout, VOUT_SPU_CHANNEL_OSD, "%s", _("Random Off")); } - vlc_object_release(p_vout); + vout_Release(p_vout); } - (void)repeatAll @@ -400,7 +400,7 @@ static int BossCallback(vlc_object_t *p_this, const char *psz_var, vout_thread_t *p_vout = getVout(); if (p_vout) { vout_OSDMessage(p_vout, VOUT_SPU_CHANNEL_OSD, "%s", _("Repeat All")); - vlc_object_release(p_vout); + vout_Release(p_vout); } } @@ -411,7 +411,7 @@ static int BossCallback(vlc_object_t *p_this, const char *psz_var, vout_thread_t *p_vout = getVout(); if (p_vout) { vout_OSDMessage(p_vout, VOUT_SPU_CHANNEL_OSD, "%s", _("Repeat One")); - vlc_object_release(p_vout); + vout_Release(p_vout); } } @@ -422,7 +422,7 @@ static int BossCallback(vlc_object_t *p_this, const char *psz_var, vout_thread_t *p_vout = getVout(); if (p_vout) { vout_OSDMessage(p_vout, VOUT_SPU_CHANNEL_OSD, "%s", _("Repeat Off")); - vlc_object_release(p_vout); + vout_Release(p_vout); } } @@ -578,7 +578,7 @@ static int BossCallback(vlc_object_t *p_this, const char *psz_var, vout_thread_t *p_vout = input_GetVout(p_input); if (p_vout != NULL) { var_SetInteger(vlc_object_instance(getIntf()), "key-action", ACTIONID_POSITION); - vlc_object_release(p_vout); + vout_Release(p_vout); } input_Release(p_input); } @@ -606,7 +606,7 @@ static int BossCallback(vlc_object_t *p_this, const char *psz_var, if (p_vout) { BOOL b_fs = var_ToggleBool(p_vout, "fullscreen"); var_SetBool(pl_Get(p_intf), "fullscreen", b_fs); - vlc_object_release(p_vout); + vout_Release(p_vout); } else { // e.g. lion fullscreen toggle BOOL b_fs = var_ToggleBool(pl_Get(p_intf), "fullscreen"); [[[VLCMain sharedInstance] voutProvider] setFullscreen:b_fs forWindow:nil withAnimation:YES]; @@ -693,7 +693,7 @@ static int BossCallback(vlc_object_t *p_this, const char *psz_var, eventHandled = YES; } } - vlc_object_release(p_vout); + vout_Release(p_vout); } input_Release(p_input); } diff --git a/modules/gui/macosx/coreinteraction/VLCVideoFilterHelper.m b/modules/gui/macosx/coreinteraction/VLCVideoFilterHelper.m index 182f6b7ad2..f33b496514 100644 --- a/modules/gui/macosx/coreinteraction/VLCVideoFilterHelper.m +++ b/modules/gui/macosx/coreinteraction/VLCVideoFilterHelper.m @@ -106,7 +106,7 @@ for (NSValue * val in vouts) { vout_thread_t *p_vout = [val pointerValue]; var_SetString(p_vout, psz_filter_type, psz_string); - vlc_object_release(p_vout); + vout_Release(p_vout); } } @@ -172,7 +172,7 @@ if (vouts) for (NSValue *ptr in vouts) - vlc_object_release((vout_thread_t *)[ptr pointerValue]); + vout_Release((vout_thread_t *)[ptr pointerValue]); } diff --git a/modules/gui/macosx/menus/VLCMainMenu.m b/modules/gui/macosx/menus/VLCMainMenu.m index e5321af3fc..e5d32b94cc 100644 --- a/modules/gui/macosx/menus/VLCMainMenu.m +++ b/modules/gui/macosx/menus/VLCMainMenu.m @@ -597,7 +597,7 @@ [self setupVarMenuItem:_deinterlace_mode target: (vlc_object_t *)p_vout var:"deinterlace-mode" selector: @selector(toggleVar:)]; - vlc_object_release(p_vout); + vout_Release(p_vout); [self refreshVoutDeviceMenu:nil]; } @@ -949,7 +949,7 @@ { [[NSApp keyWindow] performZoom:sender]; } - vlc_object_release(p_vout); + vout_Release(p_vout); } } @@ -963,7 +963,7 @@ BOOL b_fs = var_ToggleBool(p_vout, "video-on-top"); var_SetBool(pl_Get(getIntf()), "video-on-top", b_fs); - vlc_object_release(p_vout); + vout_Release(p_vout); } input_Release(p_input); } @@ -1636,7 +1636,7 @@ [mi setState: _playerController.fullscreen]; enabled = YES; - vlc_object_release(p_vout); + vout_Release(p_vout); } [self setupMenus]; /* Make sure video menu is up to date */ diff --git a/modules/gui/macosx/os-integration/applescript.m b/modules/gui/macosx/os-integration/applescript.m index 0c92cb3f74..ff4745f59f 100644 --- a/modules/gui/macosx/os-integration/applescript.m +++ b/modules/gui/macosx/os-integration/applescript.m @@ -159,7 +159,7 @@ if (!p_vout) return NO; BOOL b_value = var_GetBool(p_vout, "fullscreen"); - vlc_object_release(p_vout); + vout_Release(p_vout); return b_value; } @@ -168,10 +168,10 @@ if (!p_vout) return; if (var_GetBool(p_vout, "fullscreen") == mode) { - vlc_object_release(p_vout); + vout_Release(p_vout); return; } - vlc_object_release(p_vout); + vout_Release(p_vout); [[VLCCoreInteraction sharedInstance] toggleFullscreen]; } diff --git a/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.m b/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.m index c426b67ed5..c64216bd6d 100644 --- a/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.m +++ b/modules/gui/macosx/panels/VLCTrackSynchronizationWindowController.m @@ -205,7 +205,7 @@ vout_thread_t *p_vout = [ptr pointerValue]; var_SetFloat(p_vout, SUBSDELAY_CFG_FACTOR, f_factor); - vlc_object_release(p_vout); + vout_Release(p_vout); } [VLCVideoFilterHelper setVideoFilter: "subsdelay" on: f_factor > 0]; diff --git a/modules/gui/macosx/panels/VLCVideoEffectsWindowController.m b/modules/gui/macosx/panels/VLCVideoEffectsWindowController.m index 0a9bfe8ef0..8c1b880f0f 100644 --- a/modules/gui/macosx/panels/VLCVideoEffectsWindowController.m +++ b/modules/gui/macosx/panels/VLCVideoEffectsWindowController.m @@ -125,7 +125,7 @@ for (NSValue *ptr in vouts) { vout_thread_t *p_vout = [ptr pointerValue]; var_SetString(p_vout, "sub-source", [tempString UTF8String]); - vlc_object_release(p_vout); + vout_Release(p_vout); } tempString = B64DecNSStr([items objectAtIndex:2]); @@ -1023,7 +1023,7 @@ var_SetInteger(p_vout, "crop-bottom", [_cropBottomTextField intValue]); var_SetInteger(p_vout, "crop-left", [_cropLeftTextField intValue]); var_SetInteger(p_vout, "crop-right", [_cropRightTextField intValue]); - vlc_object_release(p_vout); + vout_Release(p_vout); } } diff --git a/modules/gui/macosx/windows/video/VLCVideoWindowCommon.m b/modules/gui/macosx/windows/video/VLCVideoWindowCommon.m index 7b0d6b785a..8380be27bc 100644 --- a/modules/gui/macosx/windows/video/VLCVideoWindowCommon.m +++ b/modules/gui/macosx/windows/video/VLCVideoWindowCommon.m @@ -452,7 +452,7 @@ vout_thread_t *p_vout = getVoutForActiveWindow(); if (p_vout) { var_SetBool(p_vout, "fullscreen", true); - vlc_object_release(p_vout); + vout_Release(p_vout); } } @@ -498,7 +498,7 @@ vout_thread_t *p_vout = getVoutForActiveWindow(); if (p_vout) { var_SetBool(p_vout, "fullscreen", false); - vlc_object_release(p_vout); + vout_Release(p_vout); } } diff --git a/modules/gui/macosx/windows/video/VLCVoutView.m b/modules/gui/macosx/windows/video/VLCVoutView.m index e53d11cbf0..78b5d41bde 100644 --- a/modules/gui/macosx/windows/video/VLCVoutView.m +++ b/modules/gui/macosx/windows/video/VLCVoutView.m @@ -68,7 +68,7 @@ - (void)dealloc { if (p_vout) - vlc_object_release(p_vout); + vout_Release(p_vout); [self unregisterDraggedTypes]; } @@ -316,13 +316,13 @@ { assert(p_vout == NULL); p_vout = p_vout_thread; - vlc_object_hold(p_vout); + vout_Hold(p_vout); } - (vout_thread_t *)voutThread { if (p_vout) { - vlc_object_hold(p_vout); + vout_Hold(p_vout); return p_vout; } @@ -332,7 +332,7 @@ - (void)releaseVoutThread { if (p_vout) { - vlc_object_release(p_vout); + vout_Release(p_vout); p_vout = NULL; } } diff --git a/modules/gui/ncurses.c b/modules/gui/ncurses.c index 746ca2c69f..d827844614 100644 --- a/modules/gui/ncurses.c +++ b/modules/gui/ncurses.c @@ -1574,7 +1574,7 @@ static void HandleCommonKey(intf_thread_t *intf, input_thread_t *input, if (p_vout) { bool fs = var_ToggleBool(p_playlist, "fullscreen"); var_SetBool(p_vout, "fullscreen", fs); - vlc_object_release(p_vout); + vout_Release(p_vout); } } return; diff --git a/modules/gui/qt/actions_manager.cpp b/modules/gui/qt/actions_manager.cpp index 31e583e06c..aec1207a31 100644 --- a/modules/gui/qt/actions_manager.cpp +++ b/modules/gui/qt/actions_manager.cpp @@ -127,7 +127,7 @@ void ActionsManager::fullscreen() if( p_vout) { var_SetBool( p_vout, "fullscreen", fs ); - vlc_object_release( p_vout ); + vout_Release(p_vout); } } @@ -137,7 +137,7 @@ void ActionsManager::snapshot() if( p_vout ) { var_TriggerCallback( p_vout, "video-snapshot" ); - vlc_object_release( p_vout ); + vout_Release(p_vout); } } diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp index c26d7a3680..7a624234f5 100644 --- a/modules/gui/qt/components/controller.cpp +++ b/modules/gui/qt/components/controller.cpp @@ -1188,7 +1188,7 @@ void FullscreenControllerWidget::setVoutList( vout_thread_t **pp_vout, int i_vou vout.removeAll( p_vout ); vlc_mutex_unlock( &lock ); - vlc_object_release( VLC_OBJECT(p_vout) ); + vout_Release(p_vout); } /* Vout to track */ @@ -1202,7 +1202,7 @@ void FullscreenControllerWidget::setVoutList( vout_thread_t **pp_vout, int i_vou foreach( vout_thread_t *p_vout, add ) { - vlc_object_hold( VLC_OBJECT(p_vout) ); + vout_Hold(p_vout); vlc_mutex_lock( &lock ); vout.append( p_vout ); diff --git a/modules/gui/qt/components/controller_widget.cpp b/modules/gui/qt/components/controller_widget.cpp index 647c035d35..5136a3eed7 100644 --- a/modules/gui/qt/components/controller_widget.cpp +++ b/modules/gui/qt/components/controller_widget.cpp @@ -293,7 +293,7 @@ void AspectRatioComboBox::updateRatios() setEnabled( true ); free(text_list); free(val_list); - vlc_object_release( p_vout ); + vout_Release(p_vout); } void AspectRatioComboBox::updateAspectRatio( int x ) @@ -304,6 +304,6 @@ void AspectRatioComboBox::updateAspectRatio( int x ) var_SetString( p_vout, "aspect-ratio", qtu( itemData(x).toString() ) ); } if( p_vout ) - vlc_object_release( p_vout ); + vout_Release(p_vout); } diff --git a/modules/gui/qt/components/extended_panels.cpp b/modules/gui/qt/components/extended_panels.cpp index f170357687..4b09b432a4 100644 --- a/modules/gui/qt/components/extended_panels.cpp +++ b/modules/gui/qt/components/extended_panels.cpp @@ -277,7 +277,7 @@ void ExtVideo::cropChange() var_SetInteger( p_vout, "crop-bottom", ui.cropBotPx->value() ); var_SetInteger( p_vout, "crop-left", ui.cropLeftPx->value() ); var_SetInteger( p_vout, "crop-right", ui.cropRightPx->value() ); - vlc_object_release( p_vout ); + vout_Release(p_vout); } } @@ -318,7 +318,7 @@ static void UpdateVFiltersString( struct intf_thread_t *p_intf, foreach( vout_thread_t *p_vout, p_vouts ) { var_SetString( p_vout, psz_filter_type, value ); - vlc_object_release( p_vout ); + vout_Release(p_vout); } } } @@ -565,7 +565,7 @@ void ExtVideo::setFilterOption( const char *psz_module, const char *psz_option, } foreach( vout_thread_t *p_vout, p_vouts ) - vlc_object_release( p_vout ); + vout_Release(p_vout); } void ExtVideo::updateFilterOptions() @@ -1574,7 +1574,7 @@ void SyncControls::subsdelaySetFactor( double f_factor ) foreach( vout_thread_t *p_vout, p_vouts ) { var_SetFloat( p_vout, SUBSDELAY_CFG_FACTOR, f_factor ); - vlc_object_release( p_vout ); + vout_Release(p_vout); } } diff --git a/modules/gui/qt/input_manager.cpp b/modules/gui/qt/input_manager.cpp index ade9e328f4..9ce7a9ee1d 100644 --- a/modules/gui/qt/input_manager.cpp +++ b/modules/gui/qt/input_manager.cpp @@ -645,7 +645,7 @@ void InputManager::UpdateVout() /* Release the vout list */ for( size_t i = 0; i < i_vout; i++ ) - vlc_object_release( (vlc_object_t*)pp_vout[i] ); + vout_Release(pp_vout[i]); free( pp_vout ); } diff --git a/modules/gui/qt/menus.cpp b/modules/gui/qt/menus.cpp index 0ebfa136b0..438745b188 100644 --- a/modules/gui/qt/menus.cpp +++ b/modules/gui/qt/menus.cpp @@ -244,7 +244,7 @@ static int VideoAutoMenuBuilder( playlist_t *pl, input_thread_t *p_input, PUSH_VAR( "deinterlace-mode" ); if( p_object ) - vlc_object_release( p_object ); + vout_Release( p_object ); return VLC_SUCCESS; } @@ -1036,7 +1036,7 @@ QMenu* VLCMenuBar::PopupMenu( intf_thread_t *p_intf, bool show ) qtr( "Leave Fullscreen" ),"" , ITEM_NORMAL, VLC_OBJECT(THEPL), val, VLC_VAR_BOOL, b_isFullscreen ); } - vlc_object_release( p_vout ); + vout_Release(p_vout); menu->addSeparator(); } @@ -1535,7 +1535,7 @@ void VLCMenuBar::DoAction( QObject *data ) if( vout != NULL ) { var_Set( vout, var, val ); /* never void class */ - vlc_object_release( vout ); + vout_Release(vout); } } } diff --git a/modules/gui/skins2/commands/cmd_fullscreen.cpp b/modules/gui/skins2/commands/cmd_fullscreen.cpp index 40cc40c3d6..459ce10ff9 100644 --- a/modules/gui/skins2/commands/cmd_fullscreen.cpp +++ b/modules/gui/skins2/commands/cmd_fullscreen.cpp @@ -38,7 +38,7 @@ void CmdFullscreen::execute() { // Toggle fullscreen fs = var_ToggleBool( pVout, "fullscreen" ); - vlc_object_release( pVout ); + vout_Release(pVout); hasVout = true; } } diff --git a/modules/gui/skins2/commands/cmd_quit.cpp b/modules/gui/skins2/commands/cmd_quit.cpp index 96e5e412ba..85ba6d655c 100644 --- a/modules/gui/skins2/commands/cmd_quit.cpp +++ b/modules/gui/skins2/commands/cmd_quit.cpp @@ -42,7 +42,7 @@ void CmdQuit::execute() if( pVout ) { vout_OSDMessage( pVout, VOUT_SPU_CHANNEL_OSD, "%s", _( "Quit" ) ); - vlc_object_release( pVout ); + vout_Release(pVout); } } diff --git a/modules/gui/skins2/commands/cmd_snapshot.cpp b/modules/gui/skins2/commands/cmd_snapshot.cpp index 99a0f4814e..0ca276f43f 100644 --- a/modules/gui/skins2/commands/cmd_snapshot.cpp +++ b/modules/gui/skins2/commands/cmd_snapshot.cpp @@ -34,7 +34,7 @@ void CmdSnapshot::execute() { // Take a snapshot var_TriggerCallback( pVout, "video-snapshot" ); - vlc_object_release( pVout ); + vout_Release(pVout); } } diff --git a/modules/gui/skins2/src/vlcproc.cpp b/modules/gui/skins2/src/vlcproc.cpp index 86deb91c1a..25803a1872 100644 --- a/modules/gui/skins2/src/vlcproc.cpp +++ b/modules/gui/skins2/src/vlcproc.cpp @@ -186,7 +186,7 @@ VlcProc::~VlcProc() { if( m_pVout ) { - vlc_object_release( m_pVout ); + vout_Release(m_pVout); m_pVout = NULL; } @@ -495,7 +495,7 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal ) { // end of input or vout reuse (nothing to do) if( pVout ) - vlc_object_release( pVout ); + vout_Release(pVout); break; } if( m_pVout ) @@ -503,7 +503,7 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal ) // remove previous Vout callbacks var_DelCallback( m_pVout, "mouse-moved", onGenericCallback, this ); - vlc_object_release( m_pVout ); + vout_Release(m_pVout); m_pVout = NULL; } diff --git a/modules/lua/libs/objects.c b/modules/lua/libs/objects.c index b93a3a0c4e..18ac94aa14 100644 --- a/modules/lua/libs/objects.c +++ b/modules/lua/libs/objects.c @@ -115,6 +115,15 @@ static int vlclua_get_input( lua_State *L ) return 1; } +static int vlclua_vout_release(lua_State *L) +{ + vlc_object_t **pp = luaL_checkudata(L, 1, "vlc_object"); + + lua_pop(L, 1); + vout_Release((vout_thread_t *)*pp); + return 0; +} + static int vlclua_get_vout( lua_State *L ) { input_thread_t *p_input = vlclua_get_input_internal( L ); @@ -124,8 +133,7 @@ static int vlclua_get_vout( lua_State *L ) input_Release(p_input); if(p_vout) { - vlclua_push_vlc_object(L, VLC_OBJECT(p_vout), - vlclua_object_release); + vlclua_push_vlc_object(L, VLC_OBJECT(p_vout), vlclua_vout_release); return 1; } } diff --git a/modules/lua/libs/osd.c b/modules/lua/libs/osd.c index 3757431638..c71d784b9f 100644 --- a/modules/lua/libs/osd.c +++ b/modules/lua/libs/osd.c @@ -77,7 +77,7 @@ static int vlclua_osd_icon( lua_State *L ) if( p_vout ) { vout_OSDIcon( p_vout, i_chan, i_icon ); - vlc_object_release( p_vout ); + vout_Release(p_vout); } input_Release(p_input); } @@ -125,7 +125,7 @@ static int vlclua_osd_message( lua_State *L ) { vout_OSDText( p_vout, i_chan, vlc_osd_position_from_string( psz_position ), duration, psz_message ); - vlc_object_release( p_vout ); + vout_Release(p_vout); } input_Release(p_input); } @@ -168,7 +168,7 @@ static int vlclua_osd_slider( lua_State *L ) if( p_vout ) { vout_OSDSlider( p_vout, i_chan, i_position, i_type ); - vlc_object_release( p_vout ); + vout_Release(p_vout); } input_Release(p_input); } @@ -189,7 +189,7 @@ static int vlclua_spu_channel_register( lua_State *L ) } int i_chan = vout_RegisterSubpictureChannel( p_vout ); - vlc_object_release( p_vout ); + vout_Release( p_vout ); lua_pushinteger( L, i_chan ); return 1; } @@ -208,7 +208,7 @@ static int vlclua_spu_channel_clear( lua_State *L ) } vout_FlushSubpictureChannel( p_vout, i_chan ); - vlc_object_release( p_vout ); + vout_Release(p_vout); return 0; } diff --git a/modules/lua/libs/video.c b/modules/lua/libs/video.c index 110f56a68f..f38258ded2 100644 --- a/modules/lua/libs/video.c +++ b/modules/lua/libs/video.c @@ -58,7 +58,7 @@ static int vlclua_fullscreen( lua_State *L ) i_ret = vlclua_var_toggle_or_set( L, p_vout, "fullscreen" ); - vlc_object_release( p_vout ); + vout_Release(p_vout); return i_ret; } diff --git a/src/input/control.c b/src/input/control.c index 2aa79e67b3..ae30ee1395 100644 --- a/src/input/control.c +++ b/src/input/control.c @@ -264,7 +264,7 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) vlc_gettext("Subtitle track added")); break; } - vlc_object_release( (vlc_object_t *)p_vout ); + vout_Release(p_vout); } } return VLC_SUCCESS; diff --git a/src/input/decoder.c b/src/input/decoder.c index 93d49a9289..d6ca661f86 100644 --- a/src/input/decoder.c +++ b/src/input/decoder.c @@ -607,7 +607,7 @@ static subpicture_t *spu_new_buffer( decoder_t *p_dec, if( p_owner->p_vout ) { vlc_mutex_lock( &p_owner->lock ); - vlc_object_release( p_owner->p_vout ); + vout_Release(p_owner->p_vout); p_owner->p_vout = NULL; vlc_mutex_unlock( &p_owner->lock ); } @@ -621,12 +621,12 @@ static subpicture_t *spu_new_buffer( decoder_t *p_dec, vlc_mutex_lock( &p_owner->lock ); if( p_owner->p_vout ) - vlc_object_release( p_owner->p_vout ); + vout_Release(p_owner->p_vout); p_owner->p_vout = p_vout; vlc_mutex_unlock( &p_owner->lock ); } else - vlc_object_release( p_vout ); + vout_Release(p_vout); p_subpic = subpicture_New( p_updater ); if( p_subpic ) @@ -1994,7 +1994,7 @@ static void DeleteDecoder( decoder_t * p_dec ) { vout_FlushSubpictureChannel( p_owner->p_vout, p_owner->i_spu_channel ); - vlc_object_release( p_owner->p_vout ); + vout_Release(p_owner->p_vout); } break; } @@ -2548,7 +2548,7 @@ void input_DecoderGetObjects( decoder_t *p_dec, vlc_mutex_lock( &p_owner->lock ); if( pp_vout ) *pp_vout = p_dec->fmt_in.i_cat == VIDEO_ES && p_owner->p_vout ? - vlc_object_hold( p_owner->p_vout ) : NULL; + vout_Hold(p_owner->p_vout) : NULL; if( pp_aout ) *pp_aout = p_dec->fmt_in.i_cat == AUDIO_ES && p_owner->p_aout ? vlc_object_hold( p_owner->p_aout ) : NULL; diff --git a/src/input/decoder.h b/src/input/decoder.h index dfb06f3bc4..db491ac44e 100644 --- a/src/input/decoder.h +++ b/src/input/decoder.h @@ -112,7 +112,7 @@ size_t input_DecoderGetFifoSize( decoder_t *p_dec ); /** * This function returns the objects associated to a decoder * - * They must be released using vlc_object_release(). + * They must be released. */ void input_DecoderGetObjects( decoder_t *, vout_thread_t **, audio_output_t ** ); diff --git a/src/input/input.c b/src/input/input.c index eae7b6a139..83800dca1d 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -1750,7 +1750,7 @@ static void ViewpointApply( input_thread_t *p_input ) /* This variable can only be read from callbacks */ var_Change( pp_vout[i], "viewpoint", VLC_VAR_SETVALUE, (vlc_value_t) { .p_address = NULL } ); - vlc_object_release( pp_vout[i] ); + vout_Release(pp_vout[i]); } free( pp_vout ); @@ -1814,7 +1814,7 @@ static void ControlNav( input_thread_t *p_input, int i_type ) if( !b_viewpoint_ch && var_GetBool( pp_vout[i], "viewpoint-changeable" ) ) b_viewpoint_ch = true; - vlc_object_release( pp_vout[i] ); + vout_Release(pp_vout[i]); } free( pp_vout ); diff --git a/src/input/player.c b/src/input/player.c index 5f70c85f5e..9b720e403b 100644 --- a/src/input/player.c +++ b/src/input/player.c @@ -279,7 +279,7 @@ vlc_player_vout_OSDReleaseAll(vlc_player_t *player, vout_thread_t **vouts, size_t count) { for (size_t i = 0; i < count; ++i) - vlc_object_release(vouts[i]); + vout_Release(vouts[i]); free(vouts); (void) player; } @@ -3333,7 +3333,7 @@ vlc_player_vout_SetVar(vlc_player_t *player, const char *name, int type, for (size_t i = 0; i < count; i++) { var_SetChecked(vouts[i], name, type, val); - vlc_object_release(vouts[i]); + vout_Release(vouts[i]); } free(vouts); } @@ -3347,7 +3347,7 @@ vlc_player_vout_TriggerOption(vlc_player_t *player, const char *option) for (size_t i = 0; i < count; ++i) { var_TriggerCallback(vouts[i], option); - vlc_object_release(vouts[i]); + vout_Release(vouts[i]); } free(vouts); } diff --git a/src/input/resource.c b/src/input/resource.c index 49abb683c4..22719cf14a 100644 --- a/src/input/resource.c +++ b/src/input/resource.c @@ -201,7 +201,7 @@ static vout_thread_t *HoldVout( input_resource_t *p_resource ) vout_thread_t *p_vout = p_resource->i_vout > 0 ? p_resource->pp_vout[0] : NULL; if( p_vout ) - vlc_object_hold( p_vout ); + vout_Hold(p_vout); vlc_mutex_unlock( &p_resource->lock_hold ); @@ -231,7 +231,7 @@ static void HoldVouts( input_resource_t *p_resource, vout_thread_t ***ppp_vout, for( int i = 0; i < p_resource->i_vout; i++ ) { pp_vout[i] = p_resource->pp_vout[i]; - vlc_object_hold( pp_vout[i] ); + vout_Hold(pp_vout[i]); } exit: diff --git a/src/input/resource.h b/src/input/resource.h index 0bcd7160fb..123018064c 100644 --- a/src/input/resource.h +++ b/src/input/resource.h @@ -44,14 +44,14 @@ void input_resource_PutVout(input_resource_t *, vout_thread_t *); /** * This function returns one of the current vout if any. * - * You must call vlc_object_release on the value returned (if non NULL). + * You must call vout_Release() on the value returned (if non NULL). */ vout_thread_t *input_resource_HoldVout( input_resource_t * ); /** * This function returns all current vouts if any. * - * You must call vlc_object_release on all values returned (if non NULL). + * You must call vout_Release() on all values returned (if non NULL). */ void input_resource_HoldVouts( input_resource_t *, vout_thread_t ***, size_t * ); diff --git a/test/src/input/player.c b/test/src/input/player.c index d477629607..669a6c5013 100644 --- a/test/src/input/player.c +++ b/test/src/input/player.c @@ -437,7 +437,7 @@ player_on_vout_list_changed(vlc_player_t *player, .action = action, .vout = vout, }; - vlc_object_hold(vout); + vout_Hold(vout); VEC_PUSH(on_vout_list_changed, report); } @@ -566,7 +566,7 @@ ctx_reset(struct ctx *ctx) { struct report_vout_list report; FOREACH_VEC(report, on_vout_list_changed) - vlc_object_release(report.vout); + vout_Release(report.vout); } { _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
