/*****************************************************************************
* Preamble
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
- set_description( _("Headphone virtual spatialization effect") );
- set_shortname( _("Headphone effect") );
+ set_description( N_("Headphone virtual spatialization effect") );
+ set_shortname( N_("Headphone effect") );
set_help( MODULE_DESCRIPTION );
set_category( CAT_AUDIO );
set_subcategory( SUBCAT_AUDIO_AFILTER );
add_integer( "headphone-dim", 10, NULL, HEADPHONE_DIM_TEXT,
set_help( MODULE_DESCRIPTION );
set_category( CAT_AUDIO );
set_subcategory( SUBCAT_AUDIO_AFILTER );
add_integer( "headphone-dim", 10, NULL, HEADPHONE_DIM_TEXT,
add_bool( "headphone-compensate", 0, NULL, HEADPHONE_COMPENSATE_TEXT,
add_bool( "headphone-compensate", 0, NULL, HEADPHONE_COMPENSATE_TEXT,
add_bool( "headphone-dolby", 0, NULL, HEADPHONE_DOLBY_TEXT,
add_bool( "headphone-dolby", 0, NULL, HEADPHONE_DOLBY_TEXT,
set_capability( "audio filter", 0 );
set_callbacks( Create, Destroy );
set_capability( "audio filter", 0 );
set_callbacks( Create, Destroy );
set_capability( "audio filter2", 0 );
set_callbacks( OpenFilter, CloseFilter );
vlc_module_end();
set_capability( "audio filter2", 0 );
set_callbacks( OpenFilter, CloseFilter );
vlc_module_end();
p_data->p_atomic_operations = malloc( sizeof(struct atomic_operation_t)
* p_data->i_nb_atomic_operations );
if( p_data->p_atomic_operations == NULL )
p_data->p_atomic_operations = malloc( sizeof(struct atomic_operation_t)
* p_data->i_nb_atomic_operations );
if( p_data->p_atomic_operations == NULL )
}
p_data->p_overflow_buffer = malloc( p_data->i_overflow_buffer_size );
if( p_data->p_atomic_operations == NULL )
}
p_data->p_overflow_buffer = malloc( p_data->i_overflow_buffer_size );
if( p_data->p_atomic_operations == NULL )
p_filter->input.i_original_channels =
p_filter->output.i_original_channels;
}
if( p_filter->input.i_format != VLC_FOURCC('f','l','3','2')
|| p_filter->output.i_format != VLC_FOURCC('f','l','3','2') )
{
p_filter->input.i_original_channels =
p_filter->output.i_original_channels;
}
if( p_filter->input.i_format != VLC_FOURCC('f','l','3','2')
|| p_filter->output.i_format != VLC_FOURCC('f','l','3','2') )
{
p_filter->input.i_format = VLC_FOURCC('f','l','3','2');
p_filter->output.i_format = VLC_FOURCC('f','l','3','2');
}
if( p_filter->input.i_rate != p_filter->output.i_rate )
{
p_filter->input.i_format = VLC_FOURCC('f','l','3','2');
p_filter->output.i_format = VLC_FOURCC('f','l','3','2');
}
if( p_filter->input.i_rate != p_filter->output.i_rate )
{
p_filter->input.i_rate = p_filter->output.i_rate;
}
if( p_filter->input.i_physical_channels == (AOUT_CHAN_LEFT|AOUT_CHAN_RIGHT)
&& ( p_filter->input.i_original_channels & AOUT_CHAN_DOLBYSTEREO )
&& ! config_GetInt ( p_filter , "headphone-dolby" ) )
{
p_filter->input.i_rate = p_filter->output.i_rate;
}
if( p_filter->input.i_physical_channels == (AOUT_CHAN_LEFT|AOUT_CHAN_RIGHT)
&& ( p_filter->input.i_original_channels & AOUT_CHAN_DOLBYSTEREO )
&& ! config_GetInt ( p_filter , "headphone-dolby" ) )
{
/* Allocate the memory needed to store the module's structure */
p_filter->p_sys = malloc( sizeof(struct aout_filter_sys_t) );
if( p_filter->p_sys == NULL )
/* Allocate the memory needed to store the module's structure */
p_filter->p_sys = malloc( sizeof(struct aout_filter_sys_t) );
if( p_filter->p_sys == NULL )
p_filter->p_sys->i_overflow_buffer_size = 0;
p_filter->p_sys->p_overflow_buffer = NULL;
p_filter->p_sys->i_nb_atomic_operations = 0;
p_filter->p_sys->i_overflow_buffer_size = 0;
p_filter->p_sys->p_overflow_buffer = NULL;
p_filter->p_sys->i_nb_atomic_operations = 0;
static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
{
static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
{
int i_input_nb = aout_FormatNbChannels( &p_filter->input );
int i_output_nb = aout_FormatNbChannels( &p_filter->output );
float * p_in = (float*) p_in_buf->p_buffer;
int i_input_nb = aout_FormatNbChannels( &p_filter->input );
int i_output_nb = aout_FormatNbChannels( &p_filter->output );
float * p_in = (float*) p_in_buf->p_buffer;
p_filter->fmt_in.audio.i_original_channels =
p_filter->fmt_out.audio.i_original_channels;
}
if( p_filter->fmt_in.audio.i_format != VLC_FOURCC('f','l','3','2')
|| p_filter->fmt_out.audio.i_format != VLC_FOURCC('f','l','3','2') )
{
p_filter->fmt_in.audio.i_original_channels =
p_filter->fmt_out.audio.i_original_channels;
}
if( p_filter->fmt_in.audio.i_format != VLC_FOURCC('f','l','3','2')
|| p_filter->fmt_out.audio.i_format != VLC_FOURCC('f','l','3','2') )
{
p_filter->fmt_in.audio.i_format = VLC_FOURCC('f','l','3','2');
p_filter->fmt_out.audio.i_format = VLC_FOURCC('f','l','3','2');
}
if( p_filter->fmt_in.audio.i_rate != p_filter->fmt_out.audio.i_rate )
{
p_filter->fmt_in.audio.i_format = VLC_FOURCC('f','l','3','2');
p_filter->fmt_out.audio.i_format = VLC_FOURCC('f','l','3','2');
}
if( p_filter->fmt_in.audio.i_rate != p_filter->fmt_out.audio.i_rate )
{
p_filter->fmt_in.audio.i_rate = p_filter->fmt_out.audio.i_rate;
}
if( p_filter->fmt_in.audio.i_physical_channels == (AOUT_CHAN_LEFT|AOUT_CHAN_RIGHT)
&& ( p_filter->fmt_in.audio.i_original_channels & AOUT_CHAN_DOLBYSTEREO )
&& !config_GetInt( p_filter, "headphone-dolby" ) )
{
p_filter->fmt_in.audio.i_rate = p_filter->fmt_out.audio.i_rate;
}
if( p_filter->fmt_in.audio.i_physical_channels == (AOUT_CHAN_LEFT|AOUT_CHAN_RIGHT)
&& ( p_filter->fmt_in.audio.i_original_channels & AOUT_CHAN_DOLBYSTEREO )
&& !config_GetInt( p_filter, "headphone-dolby" ) )
{
/* Allocate the memory needed to store the module's structure */
p_filter->p_sys = malloc( sizeof(struct filter_sys_t) );
if( p_filter->p_sys == NULL )
/* Allocate the memory needed to store the module's structure */
p_filter->p_sys = malloc( sizeof(struct filter_sys_t) );
if( p_filter->p_sys == NULL )
p_filter->p_sys->i_overflow_buffer_size = 0;
p_filter->p_sys->p_overflow_buffer = NULL;
p_filter->p_sys->i_nb_atomic_operations = 0;
p_filter->p_sys->i_overflow_buffer_size = 0;
p_filter->p_sys->p_overflow_buffer = NULL;
p_filter->p_sys->i_nb_atomic_operations = 0;