]> git.sesse.net Git - vlc/commitdiff
resource: add input_resource_ResetAout()
authorRémi Denis-Courmont <remi@remlab.net>
Mon, 10 Mar 2014 17:18:18 +0000 (19:18 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Mon, 10 Mar 2014 17:19:04 +0000 (19:19 +0200)
include/vlc_input.h
src/input/resource.c
src/libvlccore.sym

index 176bf51ce0b8bb69ba79a0b19a22beb62f6a2790..c1cb17deb181f92e6a45ff222df095aa38718061 100644 (file)
@@ -663,4 +663,9 @@ VLC_API audio_output_t *input_resource_GetAout( input_resource_t * );
  */
 VLC_API void input_resource_PutAout( input_resource_t *, audio_output_t * );
 
+/**
+ * Prevents the existing audio output (if any) from being recycled.
+ */
+VLC_API void input_resource_ResetAout( input_resource_t * );
+
 #endif
index aee2f6862f900eba522d83a67372ac3fd03e55ab..779c921a2c69a87cfee59de2071dcd49c4dba96e 100644 (file)
@@ -392,12 +392,14 @@ audio_output_t *input_resource_HoldAout( input_resource_t *p_resource )
     return p_aout;
 }
 
-static void input_resource_TerminateAout( input_resource_t *p_resource )
+void input_resource_ResetAout( input_resource_t *p_resource )
 {
-    audio_output_t *p_aout;
+    audio_output_t *p_aout = NULL;
 
     vlc_mutex_lock( &p_resource->lock_hold );
-    p_aout = p_resource->p_aout;
+    if( !p_resource->b_aout_busy )
+        p_aout = p_resource->p_aout;
+
     p_resource->p_aout = NULL;
     p_resource->b_aout_busy = false;
     vlc_mutex_unlock( &p_resource->lock_hold );
@@ -507,7 +509,7 @@ void input_resource_TerminateSout( input_resource_t *p_resource )
 void input_resource_Terminate( input_resource_t *p_resource )
 {
     input_resource_TerminateSout( p_resource );
-    input_resource_TerminateAout( p_resource );
+    input_resource_ResetAout( p_resource );
     input_resource_TerminateVout( p_resource );
 }
 
index e2c20087317366e4272308a5be373bbe9e0124ec..af5e7bf733e5041fac5b6202ae523714fd7d22a4 100644 (file)
@@ -220,6 +220,7 @@ input_resource_Terminate
 input_resource_GetAout
 input_resource_HoldAout
 input_resource_PutAout
+input_resource_ResetAout
 input_Start
 input_Stop
 input_vaControl