X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fmux%2Fasf.c;h=e6a21a77819e43a611ce62d7f696d1b19d324719;hb=552b5247eea6d1c0c93407c49ce64a39af751e43;hp=3f41328f696f6557edde6cffe21b57a5310f7521;hpb=d1e3b1c2518db752f9e31fba2219010d7188003e;p=vlc diff --git a/modules/mux/asf.c b/modules/mux/asf.c index 3f41328f69..e6a21a7781 100644 --- a/modules/mux/asf.c +++ b/modules/mux/asf.c @@ -87,9 +87,9 @@ vlc_module_begin(); add_string( SOUT_CFG_PREFIX "rating", "", NULL, RATING_TEXT, RATING_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "packet-size", 4096, NULL, PACKETSIZE_TEXT, - PACKETSIZE_LONGTEXT, VLC_TRUE ); + PACKETSIZE_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "bitrate-override", 0, NULL, BITRATE_TEXT, - BITRATE_LONGTEXT, VLC_TRUE ); + BITRATE_LONGTEXT, true ); vlc_module_end(); @@ -222,7 +222,7 @@ static int Open( vlc_object_t *p_this ) p_sys->i_bitrate_override = config_GetInt( p_mux, "sout-asf-bitrate-override" ); msg_Dbg( p_mux, "Packet size %d", p_sys->i_packet_size); if (p_sys->i_bitrate_override) - msg_Dbg( p_mux, "Bitrate override %d", p_sys->i_bitrate_override); + msg_Dbg( p_mux, "Bitrate override %"PRId64, p_sys->i_bitrate_override); p_sys->i_packet_count= 0; /* Generate a random fid */ @@ -597,7 +597,27 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input ) *****************************************************************************/ static int DelStream( sout_mux_t *p_mux, sout_input_t *p_input ) { - VLC_UNUSED(p_input); + /* if bitrate ain't defined in commanline, reduce it when tracks are deleted + */ + sout_mux_sys_t *p_sys = p_mux->p_sys; + asf_track_t *tk = p_input->p_sys; + if(!p_sys->i_bitrate_override) + { + if( tk->i_cat == AUDIO_ES ) + { + if( p_input->p_fmt->i_bitrate > 24000 ) + p_sys->i_bitrate -= p_input->p_fmt->i_bitrate; + else + p_sys->i_bitrate -= 512000; + } + else if(tk->i_cat == VIDEO_ES ) + { + if( p_input->p_fmt->i_bitrate > 50000 ) + p_sys->i_bitrate -= p_input->p_fmt->i_bitrate; + else + p_sys->i_bitrate -= 1000000; + } + } msg_Dbg( p_mux, "removing input" ); return VLC_SUCCESS; }