@ -1004,6 +1004,39 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
if ( ret < 0 )
return ret ;
# define AUTO_INSERT_FILTER(opt_name, filter_name, arg) do { \
AVFilterContext * filt_ctx ; \
\
av_log ( NULL , AV_LOG_INFO , opt_name " is forwarded to lavfi " \
" similarly to -af " filter_name " =%s. \n " , arg ) ; \
\
ret = avfilter_graph_create_filter ( & filt_ctx , \
avfilter_get_by_name ( filter_name ) , \
filter_name , arg , NULL , fg - > graph ) ; \
if ( ret < 0 ) \
return ret ; \
\
ret = avfilter_link ( last_filter , pad_idx , filt_ctx , 0 ) ; \
if ( ret < 0 ) \
return ret ; \
\
last_filter = filt_ctx ; \
pad_idx = 0 ; \
} while ( 0 )
if ( ost - > audio_channels_mapped ) {
int i ;
AVBPrint pan_buf ;
av_bprint_init ( & pan_buf , 256 , 8192 ) ;
av_bprintf ( & pan_buf , " 0x% " PRIx64 ,
av_get_default_channel_layout ( ost - > audio_channels_mapped ) ) ;
for ( i = 0 ; i < ost - > audio_channels_mapped ; i + + )
if ( ost - > audio_channels_map [ i ] ! = - 1 )
av_bprintf ( & pan_buf , " :c%d=c%d " , i , ost - > audio_channels_map [ i ] ) ;
AUTO_INSERT_FILTER ( " -map_channel " , " pan " , pan_buf . str ) ;
av_bprint_finalize ( & pan_buf , NULL ) ;
}
if ( codec - > channels & & ! codec - > channel_layout )
codec - > channel_layout = av_get_default_channel_layout ( codec - > channels ) ;
@ -1044,26 +1077,6 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
pad_idx = 0 ;
}
# define AUTO_INSERT_FILTER(opt_name, filter_name, arg) do { \
AVFilterContext * filt_ctx ; \
\
av_log ( NULL , AV_LOG_INFO , opt_name " is forwarded to lavfi " \
" similarly to -af " filter_name " =%s. \n " , arg ) ; \
\
ret = avfilter_graph_create_filter ( & filt_ctx , \
avfilter_get_by_name ( filter_name ) , \
filter_name , arg , NULL , fg - > graph ) ; \
if ( ret < 0 ) \
return ret ; \
\
ret = avfilter_link ( last_filter , pad_idx , filt_ctx , 0 ) ; \
if ( ret < 0 ) \
return ret ; \
\
last_filter = filt_ctx ; \
pad_idx = 0 ; \
} while ( 0 )
if ( audio_sync_method > 0 & & 0 ) {
char args [ 256 ] = { 0 } ;
@ -1073,20 +1086,6 @@ static int configure_output_audio_filter(FilterGraph *fg, OutputFilter *ofilter,
AUTO_INSERT_FILTER ( " -async " , " aresample " , args ) ;
}
if ( ost - > audio_channels_mapped ) {
int i ;
AVBPrint pan_buf ;
av_bprint_init ( & pan_buf , 256 , 8192 ) ;
av_bprintf ( & pan_buf , " 0x% " PRIx64 ,
av_get_default_channel_layout ( ost - > audio_channels_mapped ) ) ;
for ( i = 0 ; i < ost - > audio_channels_mapped ; i + + )
if ( ost - > audio_channels_map [ i ] ! = - 1 )
av_bprintf ( & pan_buf , " :c%d=c%d " , i , ost - > audio_channels_map [ i ] ) ;
AUTO_INSERT_FILTER ( " -map_channel " , " pan " , pan_buf . str ) ;
av_bprint_finalize ( & pan_buf , NULL ) ;
}
if ( audio_volume ! = 256 ) {
char args [ 256 ] ;