vlc | branch: master | Thomas Guillem <[email protected]> | Thu May 9 15:25:23 2019 +0200| [7bcd34ff1ffdb6e2600071f86e07a0bf73709de5] | committer: Thomas Guillem
resource: move input_resource_PutVout up And add its locked version: into input_resource_PutVoutLocked. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7bcd34ff1ffdb6e2600071f86e07a0bf73709de5 --- src/input/resource.c | 50 ++++++++++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/src/input/resource.c b/src/input/resource.c index 80d27f462c..45fd4eec54 100644 --- a/src/input/resource.c +++ b/src/input/resource.c @@ -325,6 +325,34 @@ void input_resource_SetInput( input_resource_t *p_resource, input_thread_t *p_in vlc_mutex_unlock( &p_resource->lock ); } +static void input_resource_PutVoutLocked(input_resource_t *p_resource, + vout_thread_t *vout) +{ + assert(vout != NULL); + + vlc_mutex_lock(&p_resource->lock_hold); + TAB_REMOVE(p_resource->i_vout, p_resource->pp_vout, vout); + + const int active_vouts = p_resource->i_vout; + vlc_mutex_unlock(&p_resource->lock_hold); + + if (p_resource->p_vout_free != NULL || active_vouts > 0) { + msg_Dbg(p_resource->p_parent, "destroying vout (already one saved or active)"); + vout_Close(vout); + } else { + msg_Dbg(p_resource->p_parent, "saving a free vout"); + p_resource->p_vout_free = vout; + } +} + +void input_resource_PutVout(input_resource_t *p_resource, + vout_thread_t *vout) +{ + vlc_mutex_lock( &p_resource->lock ); + input_resource_PutVoutLocked( p_resource, vout ); + vlc_mutex_unlock( &p_resource->lock ); +} + vout_thread_t *input_resource_GetVout(input_resource_t *p_resource, const vout_configuration_t *cfg) { @@ -381,28 +409,6 @@ out: return vout; } -void input_resource_PutVout(input_resource_t *p_resource, - vout_thread_t *vout) -{ - assert(vout != NULL); - vlc_mutex_lock( &p_resource->lock ); - - vlc_mutex_lock(&p_resource->lock_hold); - TAB_REMOVE(p_resource->i_vout, p_resource->pp_vout, vout); - - const int active_vouts = p_resource->i_vout; - vlc_mutex_unlock(&p_resource->lock_hold); - - if (p_resource->p_vout_free != NULL || active_vouts > 0) { - msg_Dbg(p_resource->p_parent, "destroying vout (already one saved or active)"); - vout_Close(vout); - } else { - msg_Dbg(p_resource->p_parent, "saving a free vout"); - p_resource->p_vout_free = vout; - } - vlc_mutex_unlock( &p_resource->lock ); -} - vout_thread_t *input_resource_HoldVout( input_resource_t *p_resource ) { /* TODO FIXME: p_resource->pp_vout order is NOT stable */ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
