1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-20 06:46:55 +00:00

finally remove the refences to bps outside libaf. also simplification of some messages and removed redundants

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14819 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
alex 2005-02-25 11:11:07 +00:00
parent fb3854d760
commit 6dbf6b4df1
5 changed files with 41 additions and 49 deletions

View File

@ -265,8 +265,7 @@ int af_reinit(af_stream_t* s, af_instance_t* af)
return rv; return rv;
} }
// Insert format filter // Insert format filter
if(((af->prev?af->prev->data->format:s->input.format) != in.format) || if((af->prev?af->prev->data->format:s->input.format) != in.format){
((af->prev?af->prev->data->bps:s->input.bps) != in.bps)){
// Create format filter // Create format filter
if(NULL == (new = af_prepend(s,af,"format"))) if(NULL == (new = af_prepend(s,af,"format")))
return AF_ERROR; return AF_ERROR;
@ -438,8 +437,7 @@ int af_init(af_stream_t* s, int force_output)
} }
// Check output format fix if not OK // Check output format fix if not OK
if((s->last->data->format != s->output.format) || if(s->last->data->format != s->output.format){
(s->last->data->bps != s->output.bps)){
if(strcmp(s->last->info->name,"format")) if(strcmp(s->last->info->name,"format"))
af = af_append(s,s->last,"format"); af = af_append(s,s->last,"format");
else else
@ -457,7 +455,6 @@ int af_init(af_stream_t* s, int force_output)
return -1; return -1;
if((s->last->data->format != s->output.format) || if((s->last->data->format != s->output.format) ||
(s->last->data->bps != s->output.bps) ||
(s->last->data->nch != s->output.nch) || (s->last->data->nch != s->output.nch) ||
(s->last->data->rate != s->output.rate)) { (s->last->data->rate != s->output.rate)) {
// Something is stuffed audio out will not work // Something is stuffed audio out will not work
@ -698,3 +695,7 @@ void af_help (void) {
} }
} }
void af_fix_parameters(af_data_t *data)
{
data->bps = af_fmt2bits(data->format)/8;
}

View File

@ -214,6 +214,10 @@ float af_softclip(float a);
/** Print a list of all available audio filters */ /** Print a list of all available audio filters */
void af_help(void); void af_help(void);
/* Fill the missing parameters in the af_data_t structure.
Used for stuffing bps with a value based on format. */
void af_fix_paramaters(af_data_t *data);
/* Memory reallocation macro: if a local buffer is used (i.e. if the /* Memory reallocation macro: if a local buffer is used (i.e. if the
filter doesn't operate on the incoming buffer this macro must be filter doesn't operate on the incoming buffer this macro must be
called to ensure the buffer is big enough. */ called to ensure the buffer is big enough. */
@ -269,5 +273,3 @@ extern af_msg_cfg_t af_msg_cfg; // Message
#endif #endif
#endif /* __aop_h__ */ #endif /* __aop_h__ */

View File

@ -265,32 +265,29 @@ void uninit_audio(sh_audio_t *sh_audio)
/* Init audio filters */ /* Init audio filters */
int preinit_audio_filters(sh_audio_t *sh_audio, int preinit_audio_filters(sh_audio_t *sh_audio,
int in_samplerate, int in_channels, int in_format, int in_bps, int in_samplerate, int in_channels, int in_format,
int* out_samplerate, int* out_channels, int* out_format, int out_bps){ int* out_samplerate, int* out_channels, int* out_format){
char strbuf[200];
af_stream_t* afs=malloc(sizeof(af_stream_t)); af_stream_t* afs=malloc(sizeof(af_stream_t));
memset(afs,0,sizeof(af_stream_t)); memset(afs,0,sizeof(af_stream_t));
// input format: same as codec's output format: // input format: same as codec's output format:
afs->input.rate = in_samplerate; afs->input.rate = in_samplerate;
afs->input.nch = in_channels; afs->input.nch = in_channels;
// afs->input.format = af_format_decode(in_format);
afs->input.format = in_format; afs->input.format = in_format;
afs->input.bps = in_bps; af_fix_parameters(&(afs->input));
// output format: same as ao driver's input format (if missing, fallback to input) // output format: same as ao driver's input format (if missing, fallback to input)
afs->output.rate = *out_samplerate ? *out_samplerate : afs->input.rate; afs->output.rate = *out_samplerate ? *out_samplerate : afs->input.rate;
afs->output.nch = *out_channels ? *out_channels : afs->input.nch; afs->output.nch = *out_channels ? *out_channels : afs->input.nch;
// afs->output.format = *out_format ? af_format_decode(*out_format) : afs->input.format;
afs->output.format = *out_format ? *out_format : afs->input.format; afs->output.format = *out_format ? *out_format : afs->input.format;
afs->output.bps = out_bps ? out_bps : afs->input.bps; af_fix_parameters(&(afs->output));
// filter config: // filter config:
memcpy(&afs->cfg,&af_cfg,sizeof(af_cfg_t)); memcpy(&afs->cfg,&af_cfg,sizeof(af_cfg_t));
mp_msg(MSGT_DECAUDIO, MSGL_INFO, "Checking audio filter chain for %dHz/%dch/%dbit -> %dHz/%dch/%dbit...\n", mp_msg(MSGT_DECAUDIO, MSGL_INFO, "Checking audio filter chain for %dHz/%dch/%s -> %dHz/%dch/%s...\n",
afs->input.rate,afs->input.nch,afs->input.bps*8, afs->input.rate,afs->input.nch,af_fmt2str_short(afs->input.format),
afs->output.rate,afs->output.nch,afs->output.bps*8); afs->output.rate,afs->output.nch,af_fmt2str_short(afs->output.format));
// let's autoprobe it! // let's autoprobe it!
if(0 != af_init(afs,0)){ if(0 != af_init(afs,0)){
@ -300,12 +297,11 @@ int preinit_audio_filters(sh_audio_t *sh_audio,
*out_samplerate=afs->output.rate; *out_samplerate=afs->output.rate;
*out_channels=afs->output.nch; *out_channels=afs->output.nch;
// *out_format=af_format_encode((void*)(&afs->output));
*out_format=afs->output.format; *out_format=afs->output.format;
mp_msg(MSGT_DECAUDIO, MSGL_INFO, "AF_pre: af format: %d bps, %d ch, %d hz, %s\n", mp_msg(MSGT_DECAUDIO, MSGL_INFO, "AF_pre: %dHz/%dch/%s\n",
afs->output.bps, afs->output.nch, afs->output.rate, afs->output.rate, afs->output.nch,
af_fmt2str(afs->output.format,strbuf,200)); af_fmt2str_short(afs->output.format));
sh_audio->afilter=(void*)afs; sh_audio->afilter=(void*)afs;
return 1; return 1;
@ -313,8 +309,8 @@ int preinit_audio_filters(sh_audio_t *sh_audio,
/* Init audio filters */ /* Init audio filters */
int init_audio_filters(sh_audio_t *sh_audio, int init_audio_filters(sh_audio_t *sh_audio,
int in_samplerate, int in_channels, int in_format, int in_bps, int in_samplerate, int in_channels, int in_format,
int out_samplerate, int out_channels, int out_format, int out_bps, int out_samplerate, int out_channels, int out_format,
int out_minsize, int out_maxsize){ int out_minsize, int out_maxsize){
af_stream_t* afs=sh_audio->afilter; af_stream_t* afs=sh_audio->afilter;
if(!afs){ if(!afs){
@ -325,23 +321,21 @@ int init_audio_filters(sh_audio_t *sh_audio,
// input format: same as codec's output format: // input format: same as codec's output format:
afs->input.rate = in_samplerate; afs->input.rate = in_samplerate;
afs->input.nch = in_channels; afs->input.nch = in_channels;
// afs->input.format = af_format_decode(in_format);
afs->input.format = in_format; afs->input.format = in_format;
afs->input.bps = in_bps; af_fix_parameters(&(afs->input));
// output format: same as ao driver's input format (if missing, fallback to input) // output format: same as ao driver's input format (if missing, fallback to input)
afs->output.rate = out_samplerate ? out_samplerate : afs->input.rate; afs->output.rate = out_samplerate ? out_samplerate : afs->input.rate;
afs->output.nch = out_channels ? out_channels : afs->input.nch; afs->output.nch = out_channels ? out_channels : afs->input.nch;
// afs->output.format = af_format_decode(out_format ? out_format : afs->input.format);
afs->output.format = out_format ? out_format : afs->input.format; afs->output.format = out_format ? out_format : afs->input.format;
afs->output.bps = out_bps ? out_bps : afs->input.bps; af_fix_parameters(&(afs->output));
// filter config: // filter config:
memcpy(&afs->cfg,&af_cfg,sizeof(af_cfg_t)); memcpy(&afs->cfg,&af_cfg,sizeof(af_cfg_t));
mp_msg(MSGT_DECAUDIO, MSGL_INFO, "Building audio filter chain for %dHz/%dch/%dbit -> %dHz/%dch/%dbit...\n", mp_msg(MSGT_DECAUDIO, MSGL_INFO, "Building audio filter chain for %dHz/%dch/%s -> %dHz/%dch/%s...\n",
afs->input.rate,afs->input.nch,afs->input.bps*8, afs->input.rate,afs->input.nch,af_fmt2str_short(afs->input.format),
afs->output.rate,afs->output.nch,afs->output.bps*8); afs->output.rate,afs->output.nch,af_fmt2str_short(afs->output.format));
// let's autoprobe it! // let's autoprobe it!
if(0 != af_init(afs,1)){ if(0 != af_init(afs,1)){
@ -416,9 +410,8 @@ int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen)
afd.len=declen; afd.len=declen;
afd.rate=sh_audio->samplerate; afd.rate=sh_audio->samplerate;
afd.nch=sh_audio->channels; afd.nch=sh_audio->channels;
// afd.format=af_format_decode(sh_audio->sample_format);
afd.format=sh_audio->sample_format; afd.format=sh_audio->sample_format;
afd.bps=sh_audio->samplesize; af_fix_parameters(&afd);
//pafd=&afd; //pafd=&afd;
// printf("\nAF: %d --> ",declen); // printf("\nAF: %d --> ",declen);
pafd=af_play(sh_audio->afilter,&afd); pafd=af_play(sh_audio->afilter,&afd);
@ -460,3 +453,7 @@ void skip_audio_frame(sh_audio_t *sh_audio)
// default skip code: // default skip code:
ds_fill_buffer(sh_audio->ds); // skip block ds_fill_buffer(sh_audio->ds); // skip block
} }
void adjust_volume()
{
}

View File

@ -11,9 +11,9 @@ extern void skip_audio_frame(sh_audio_t *sh_audio);
extern void uninit_audio(sh_audio_t *sh_audio); extern void uninit_audio(sh_audio_t *sh_audio);
extern int init_audio_filters(sh_audio_t *sh_audio, extern int init_audio_filters(sh_audio_t *sh_audio,
int in_samplerate, int in_channels, int in_format, int in_bps, int in_samplerate, int in_channels, int in_format,
int out_samplerate, int out_channels, int out_format, int out_bps, int out_samplerate, int out_channels, int out_format,
int out_minsize, int out_maxsize); int out_minsize, int out_maxsize);
extern int preinit_audio_filters(sh_audio_t *sh_audio, extern int preinit_audio_filters(sh_audio_t *sh_audio,
int in_samplerate, int in_channels, int in_format, int in_bps, int in_samplerate, int in_channels, int in_format,
int* out_samplerate, int* out_channels, int* out_format, int out_bps); int* out_samplerate, int* out_channels, int* out_format);

View File

@ -950,9 +950,8 @@ static int build_afilter_chain(sh_audio_t *sh_audio, ao_data_t *ao_data)
playback_speed = (float)new_srate / (float)sh_audio->samplerate; playback_speed = (float)new_srate / (float)sh_audio->samplerate;
} }
result = init_audio_filters(sh_audio, new_srate, result = init_audio_filters(sh_audio, new_srate,
sh_audio->channels, sh_audio->sample_format, sh_audio->samplesize, sh_audio->channels, sh_audio->sample_format,
ao_data->samplerate, ao_data->channels, ao_data->format, ao_data->samplerate, ao_data->channels, ao_data->format,
af_fmt2bits(ao_data->format) / 8, /* ao_data.bps, */
ao_data->outburst * 4, ao_data->buffersize); ao_data->outburst * 4, ao_data->buffersize);
mixer.afilter = sh_audio->afilter; mixer.afilter = sh_audio->afilter;
#ifdef HAVE_NEW_GUI #ifdef HAVE_NEW_GUI
@ -2119,16 +2118,10 @@ if(sh_audio){
if(!preinit_audio_filters(sh_audio, if(!preinit_audio_filters(sh_audio,
// input: // input:
(int)(sh_audio->samplerate*playback_speed), (int)(sh_audio->samplerate*playback_speed),
sh_audio->channels, sh_audio->sample_format, sh_audio->samplesize, sh_audio->channels, sh_audio->sample_format,
// output: // output:
&ao_data.samplerate, &ao_data.channels, &ao_data.format, &ao_data.samplerate, &ao_data.channels, &ao_data.format)){
af_fmt2bits(ao_data.format)/8)){
mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_AudioFilterChainPreinitError); mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_AudioFilterChainPreinitError);
} else {
char buf[128];
mp_msg(MSGT_CPLAYER,MSGL_INFO,"AF_pre: %dHz %dch %s\n",
ao_data.samplerate, ao_data.channels,
af_fmt2str(ao_data.format, buf, 128));
} }
#endif #endif
current_module="ao2_init"; current_module="ao2_init";
@ -2143,12 +2136,11 @@ if(sh_audio){
sh_audio=d_audio->sh=NULL; // -> nosound sh_audio=d_audio->sh=NULL; // -> nosound
} else { } else {
// SUCCESS: // SUCCESS:
char buf[128];
inited_flags|=INITED_AO; inited_flags|=INITED_AO;
mp_msg(MSGT_CPLAYER,MSGL_INFO,"AO: [%s] %dHz %dch %s (%d bps)\n", mp_msg(MSGT_CPLAYER,MSGL_INFO,"AO: [%s] %dHz %dch %s (%d bps)\n",
audio_out->info->short_name, audio_out->info->short_name,
ao_data.samplerate, ao_data.channels, ao_data.samplerate, ao_data.channels,
af_fmt2str(ao_data.format, buf, 128), af_fmt2str_short(ao_data.format),
af_fmt2bits(ao_data.format)/8 ); af_fmt2bits(ao_data.format)/8 );
mp_msg(MSGT_CPLAYER,MSGL_V,"AO: Description: %s\nAO: Author: %s\n", mp_msg(MSGT_CPLAYER,MSGL_V,"AO: Description: %s\nAO: Author: %s\n",
audio_out->info->name, audio_out->info->author); audio_out->info->name, audio_out->info->author);