[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