vlc | branch: master | Thomas Guillem <tho...@gllm.fr> | Tue Feb 21 18:51:49 2017 +0100| [b952131d4640f343c77c555caee14de1fb1a07d0] | committer: Thomas Guillem
mpg123: fix glitch on flush This is a fixup of 48a6428. Also destroy the mpg123_handle with mpg123_delete() when flushing. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b952131d4640f343c77c555caee14de1fb1a07d0 --- modules/codec/mpg123.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/codec/mpg123.c b/modules/codec/mpg123.c index 07b5e31..dcddafa 100644 --- a/modules/codec/mpg123.c +++ b/modules/codec/mpg123.c @@ -77,10 +77,18 @@ static int MPG123Open( decoder_t *p_dec ) { decoder_sys_t *p_sys = p_dec->p_sys; + /* Create our mpg123 handle */ + if( ( p_sys->p_handle = mpg123_new( NULL, NULL ) ) == NULL ) + { + msg_Err( p_dec, "mpg123 error: can't create handle" ); + return VLC_EGENERIC; + } + /* Open a new bitstream */ if( mpg123_open_feed( p_sys->p_handle ) != MPG123_OK ) { msg_Err( p_dec, "mpg123 error: can't open feed" ); + mpg123_delete( p_sys->p_handle ); return VLC_EGENERIC; } @@ -118,6 +126,7 @@ static int MPG123Open( decoder_t *p_dec ) msg_Err( p_dec, "mpg123 error: %s", mpg123_strerror( p_sys->p_handle ) ); mpg123_close( p_sys->p_handle ); + mpg123_delete( p_sys->p_handle ); return VLC_EGENERIC; } @@ -135,6 +144,7 @@ static void Flush( decoder_t *p_dec ) date_Set( &p_sys->end_date, 0 ); mpg123_close( p_sys->p_handle ); + mpg123_delete( p_sys->p_handle ); p_sys->b_opened = false; MPG123Open( p_dec ); } @@ -377,10 +387,6 @@ static int OpenDecoder( vlc_object_t *p_this ) p_sys->p_out = NULL; date_Set( &p_sys->end_date, VLC_TS_INVALID ); - /* Create our mpg123 handle */ - if( ( p_sys->p_handle = mpg123_new( NULL, NULL ) ) == NULL ) - goto error; - if( MPG123Open( p_dec ) ) goto error; @@ -396,7 +402,6 @@ static int OpenDecoder( vlc_object_t *p_this ) return VLC_SUCCESS; error: - mpg123_delete( p_sys->p_handle ); ExitMPG123(); free( p_sys ); return VLC_EGENERIC; _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits