[vlc-devel] [RFC PATCH] lib/media_player: don't terminate resources from stop

Thomas Guillem thomas at gllm.fr
Wed Mar 8 12:43:26 CET 2017


OK, thanks for the reply.

On Wed, Mar 8, 2017, at 12:24, Rémi Denis-Courmont wrote:
> On March 8, 2017 10:45:00 AM GMT+02:00, Thomas Guillem <thomas at gllm.fr>
> wrote:
> >Terminate the resources only when the media_player is released (like
> >the
> >playlist terminates the resources when it's deactivated). This allows
> >to keep
> >the same aout module during one mediaplayer lifetime.
> >
> >Prior to this change, libvlc users had to re-set the prefered audio
> >device
> >after each call of stop because the aout module was destroyed.
> >---
> > lib/media_player.c                | 1 -
> > modules/audio_output/audiotrack.c | 8 +++++++-
> > modules/audio_output/pulse.c      | 1 +
> > 3 files changed, 8 insertions(+), 2 deletions(-)
> >
> >diff --git a/lib/media_player.c b/lib/media_player.c
> >index 1ed1d84c15..901d82292e 100644
> >--- a/lib/media_player.c
> >+++ b/lib/media_player.c
> >@@ -1054,7 +1054,6 @@ void libvlc_media_player_stop(
> >libvlc_media_player_t *p_mi )
> >         libvlc_event_send( p_mi->p_event_manager, &event );
> >     }
> > 
> >-    input_resource_Terminate( p_mi->input.p_resource );
> >     unlock_input(p_mi);
> > }
> > 
> >diff --git a/modules/audio_output/audiotrack.c
> >b/modules/audio_output/audiotrack.c
> >index 24cb527e43..a0d3443209 100644
> >--- a/modules/audio_output/audiotrack.c
> >+++ b/modules/audio_output/audiotrack.c
> >@@ -952,9 +952,13 @@ StartPassthrough( JNIEnv *env, audio_output_t
> >*p_aout )
> >         switch( p_sys->fmt.i_format )
> >         {
> >             case VLC_CODEC_DTS:
> >-                if( b_dtshd )
> >+                if( b_dtshd && p_sys->fmt.i_rate >= 48000 )
> >                 {
> >+                    p_sys->fmt.i_rate = 192000;
> >+                    p_sys->fmt.i_bytes_per_frame = 16;
> >                 }
> >+                else
> >+                    p_sys->fmt.i_bytes_per_frame = 4;
> >                 break;
> >             case VLC_CODEC_EAC3:
> >                 p_sys->fmt.i_rate = 192000;
> >@@ -1002,6 +1006,7 @@ StartPassthrough( JNIEnv *env, audio_output_t
> >*p_aout )
> >     else
> >         p_sys->b_passthrough = true;
> > 
> >+    p_sys->fmt.i_rate = 768000;
> >     return i_ret;
> > }
> > 
> >@@ -1943,6 +1948,7 @@ Open( vlc_object_t *obj )
> > static void
> > Close( vlc_object_t *obj )
> > {
> >+fprintf(stderr, "Close ? whyme?\n");
> >     audio_output_t *p_aout = (audio_output_t *) obj;
> >     aout_sys_t *p_sys = p_aout->sys;
> > 
> >diff --git a/modules/audio_output/pulse.c
> >b/modules/audio_output/pulse.c
> >index 38a0d6624e..83e9834f39 100644
> >--- a/modules/audio_output/pulse.c
> >+++ b/modules/audio_output/pulse.c
> >@@ -1038,6 +1038,7 @@ static int Open(vlc_object_t *obj)
> > 
> > static void Close(vlc_object_t *obj)
> > {
> >+fprintf(stderr, "Close ? whyme?\n");
> >     audio_output_t *aout = (audio_output_t *)obj;
> >     aout_sys_t *sys = aout->sys;
> >     pa_context *ctx = sys->context;
> >-- 
> >2.11.0
> >
> >_______________________________________________
> >vlc-devel mailing list
> >To unsubscribe or modify your subscription options:
> >https://mailman.videolan.org/listinfo/vlc-devel
> 
> Nack. We have promised that it is safe to change callbacks after stop
> completes. We can't go back on that, or it is a silent compatibility
> break.
> -- 
> Rémi Denis-Courmont


More information about the vlc-devel mailing list