vlc | branch: master | Rafaël Carré <[email protected]> | Thu Feb 9 18:47:43 2012 -0500| [928c9fa7b5b9d6ad0d258922c6b45cfdc635c1a6] | committer: Rafaël Carré
ts mux ActiveKeyCallback: reduce critical section > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=928c9fa7b5b9d6ad0d258922c6b45cfdc635c1a6 --- modules/mux/mpeg/ts.c | 23 ++++++++++++++++------- 1 files changed, 16 insertions(+), 7 deletions(-) diff --git a/modules/mux/mpeg/ts.c b/modules/mux/mpeg/ts.c index 54fe84a..98d5f24 100644 --- a/modules/mux/mpeg/ts.c +++ b/modules/mux/mpeg/ts.c @@ -899,17 +899,26 @@ static int ActiveKeyCallback( vlc_object_t *p_this, char const *psz_cmd, VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); VLC_UNUSED(p_data); sout_mux_t *p_mux = (sout_mux_t*)p_this; sout_mux_sys_t *p_sys = p_mux->p_sys; - int i_res = VLC_EBADVAR; + int i_res, use_odd = -1; - vlc_mutex_lock( &p_sys->csa_lock ); - if( !strcmp(newval.psz_string, "odd" ) || !strcmp(newval.psz_string, "first" ) || !strcmp(newval.psz_string, "1" ) ) + if( !strcmp(newval.psz_string, "odd" ) || + !strcmp(newval.psz_string, "first" ) || + !strcmp(newval.psz_string, "1" ) ) { - i_res = csa_UseKey( (vlc_object_t*)p_mux, p_sys->csa, 1 ); + use_odd = 1; } - else if( !strcmp(newval.psz_string, "even" ) || !strcmp(newval.psz_string, "second" ) || !strcmp(newval.psz_string, "2" ) ) + else if( !strcmp(newval.psz_string, "even" ) || + !strcmp(newval.psz_string, "second" ) || + !strcmp(newval.psz_string, "2" ) ) { - i_res = csa_UseKey( (vlc_object_t*)p_mux, p_sys->csa, 0 ); + use_odd = 0; } + + if (use_odd < 0) + return VLC_EBADVAR; + + vlc_mutex_lock( &p_sys->csa_lock ); + i_res = csa_UseKey( p_this, p_sys->csa, use_odd ); vlc_mutex_unlock( &p_sys->csa_lock ); return i_res; @@ -1159,7 +1168,7 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input ) p_stream->lang[i*3+0] = pl->psz_iso639_2T[0]; p_stream->lang[i*3+1] = pl->psz_iso639_2T[1]; p_stream->lang[i*3+2] = pl->psz_iso639_2T[2]; - + msg_Dbg( p_mux, " - lang=%c%c%c", p_stream->lang[i*3+0], p_stream->lang[i*3+1], p_stream->lang[i*3+2] ); _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
