[vlc-commits] es_out: remove helpless decoder hold
Rémi Denis-Courmont
git at videolan.org
Sun Mar 17 02:39:06 CET 2019
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Fri Mar 15 05:52:34 2019 +0200| [aa3819b55d602d80dc48c3565e0901e917e751b9] | committer: Rémi Denis-Courmont
es_out: remove helpless decoder hold
If the decoder is valid for holding, then it is also valid for setting
a VLC object variable or adding a VLC object variable callback.
Otherwise, loading the decoder pointer or accessing the decoder is
undefined.
Either way, holding then releasing serves no purpose.
Note: input_GetEsObjects() should probably be removed in favor of the
new VBI input controls; but those are not currently exposed to input
managers.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=aa3819b55d602d80dc48c3565e0901e917e751b9
---
include/vlc_input.h | 1 -
lib/video.c | 1 -
modules/gui/qt/input_manager.cpp | 3 ---
src/input/es_out.c | 6 +-----
4 files changed, 1 insertion(+), 10 deletions(-)
diff --git a/include/vlc_input.h b/include/vlc_input.h
index 47e8ff5766..51bad61e0b 100644
--- a/include/vlc_input.h
+++ b/include/vlc_input.h
@@ -716,7 +716,6 @@ 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 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,
diff --git a/lib/video.c b/lib/video.c
index eadcbbabf4..7f7ff279a2 100644
--- a/lib/video.c
+++ b/lib/video.c
@@ -520,7 +520,6 @@ void libvlc_video_set_teletext( libvlc_media_player_t *p_mi, int i_page )
== VLC_SUCCESS )
{
var_SetInteger( p_zvbi, "vbi-page", i_page );
- vlc_object_release( p_zvbi );
}
}
else if (!b_key)
diff --git a/modules/gui/qt/input_manager.cpp b/modules/gui/qt/input_manager.cpp
index 4ce26ac38d..d62635f609 100644
--- a/modules/gui/qt/input_manager.cpp
+++ b/modules/gui/qt/input_manager.cpp
@@ -578,7 +578,6 @@ void InputManager::UpdateTeletext()
{
i_page = var_GetInteger( p_input_vbi, "vbi-page" );
b_transparent = !var_GetBool( p_input_vbi, "vbi-opaque" );
- vlc_object_release( p_input_vbi );
}
emit newTelexPageSet( i_page );
emit teletextTransparencyActivated( b_transparent );
@@ -814,7 +813,6 @@ void InputManager::telexSetPage( int page )
return;
var_SetInteger(input_vbi, "vbi-page", page);
- vlc_object_release(input_vbi);
emit newTelexPageSet(page);
}
}
@@ -835,7 +833,6 @@ void InputManager::telexSetTransparency( bool b_transparentTelextext )
return;
var_SetBool(input_vbi, "vbi-opaque", !b_transparentTelextext);
- vlc_object_release(input_vbi);
emit teletextTransparencyActivated( b_transparentTelextext );
}
}
diff --git a/src/input/es_out.c b/src/input/es_out.c
index 3b82ee2b5d..2630b011cf 100644
--- a/src/input/es_out.c
+++ b/src/input/es_out.c
@@ -2940,11 +2940,7 @@ static int EsOutVaControlLocked( es_out_t *out, int i_query, va_list args )
if( !p_es )
return VLC_EGENERIC;
- vlc_object_t **pp_decoder = va_arg( args, vlc_object_t ** );
- if( p_es->p_dec )
- *pp_decoder = vlc_object_hold( p_es->p_dec );
- else
- *pp_decoder = NULL;
+ *va_arg( args, vlc_object_t ** ) = VLC_OBJECT(p_es->p_dec);
return VLC_SUCCESS;
}
More information about the vlc-commits
mailing list