@ -102,14 +102,23 @@ static int filter_frame(AVFilterLink *link, AVFrame *frame)
static int parse_maps ( AVFilterContext * ctx )
static int parse_maps ( AVFilterContext * ctx )
{
{
JoinContext * s = ctx - > priv ;
JoinContext * s = ctx - > priv ;
char separator = ' | ' ;
char * cur = s - > map ;
char * cur = s - > map ;
# if FF_API_OLD_FILTER_OPTS
if ( cur & & strchr ( cur , ' , ' ) ) {
av_log ( ctx , AV_LOG_WARNING , " This syntax is deprecated, use '|' to "
" separate the mappings. \n " ) ;
separator = ' , ' ;
}
# endif
while ( cur & & * cur ) {
while ( cur & & * cur ) {
char * sep , * next , * p ;
char * sep , * next , * p ;
uint64_t in_channel = 0 , out_channel = 0 ;
uint64_t in_channel = 0 , out_channel = 0 ;
int input_idx , out_ch_idx , in_ch_idx ;
int input_idx , out_ch_idx , in_ch_idx ;
next = strchr ( cur , ' , ' ) ;
next = strchr ( cur , separator ) ;
if ( next )
if ( next )
* next + + = 0 ;
* next + + = 0 ;
@ -182,13 +191,6 @@ static int join_init(AVFilterContext *ctx, const char *args)
JoinContext * s = ctx - > priv ;
JoinContext * s = ctx - > priv ;
int ret , i ;
int ret , i ;
s - > class = & join_class ;
av_opt_set_defaults ( s ) ;
if ( ( ret = av_set_options_string ( s , args , " = " , " : " ) ) < 0 ) {
av_log ( ctx , AV_LOG_ERROR , " Error parsing options string '%s'. \n " , args ) ;
return ret ;
}
if ( ! ( s - > channel_layout = av_get_channel_layout ( s - > channel_layout_str ) ) ) {
if ( ! ( s - > channel_layout = av_get_channel_layout ( s - > channel_layout_str ) ) ) {
av_log ( ctx , AV_LOG_ERROR , " Error parsing channel layout '%s'. \n " ,
av_log ( ctx , AV_LOG_ERROR , " Error parsing channel layout '%s'. \n " ,
s - > channel_layout_str ) ;
s - > channel_layout_str ) ;
@ -512,6 +514,7 @@ AVFilter avfilter_af_join = {
. description = NULL_IF_CONFIG_SMALL ( " Join multiple audio streams into "
. description = NULL_IF_CONFIG_SMALL ( " Join multiple audio streams into "
" multi-channel output " ) ,
" multi-channel output " ) ,
. priv_size = sizeof ( JoinContext ) ,
. priv_size = sizeof ( JoinContext ) ,
. priv_class = & join_class ,
. init = join_init ,
. init = join_init ,
. uninit = join_uninit ,
. uninit = join_uninit ,