[vlc-devel] [RFC PATCH] lib/media_player: don't terminate resources from stop
Rémi Denis-Courmont
remi at remlab.net
Wed Mar 8 12:24:50 CET 2017
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