Mercurial > mplayer.hg
comparison libmpcodecs/dec_audio.c @ 14818:663c1ea5f595
finally remove the refences to bps outside libaf. also simplification of some messages and removed redundants
author | alex |
---|---|
date | Fri, 25 Feb 2005 11:11:07 +0000 |
parents | 56fb33e23ad4 |
children | 601e2c8a2922 |
comparison
equal
deleted
inserted
replaced
14817:878745349274 | 14818:663c1ea5f595 |
---|---|
263 sh_audio->a_in_buffer=NULL; | 263 sh_audio->a_in_buffer=NULL; |
264 } | 264 } |
265 | 265 |
266 /* Init audio filters */ | 266 /* Init audio filters */ |
267 int preinit_audio_filters(sh_audio_t *sh_audio, | 267 int preinit_audio_filters(sh_audio_t *sh_audio, |
268 int in_samplerate, int in_channels, int in_format, int in_bps, | 268 int in_samplerate, int in_channels, int in_format, |
269 int* out_samplerate, int* out_channels, int* out_format, int out_bps){ | 269 int* out_samplerate, int* out_channels, int* out_format){ |
270 char strbuf[200]; | |
271 af_stream_t* afs=malloc(sizeof(af_stream_t)); | 270 af_stream_t* afs=malloc(sizeof(af_stream_t)); |
272 memset(afs,0,sizeof(af_stream_t)); | 271 memset(afs,0,sizeof(af_stream_t)); |
273 | 272 |
274 // input format: same as codec's output format: | 273 // input format: same as codec's output format: |
275 afs->input.rate = in_samplerate; | 274 afs->input.rate = in_samplerate; |
276 afs->input.nch = in_channels; | 275 afs->input.nch = in_channels; |
277 // afs->input.format = af_format_decode(in_format); | |
278 afs->input.format = in_format; | 276 afs->input.format = in_format; |
279 afs->input.bps = in_bps; | 277 af_fix_parameters(&(afs->input)); |
280 | 278 |
281 // output format: same as ao driver's input format (if missing, fallback to input) | 279 // output format: same as ao driver's input format (if missing, fallback to input) |
282 afs->output.rate = *out_samplerate ? *out_samplerate : afs->input.rate; | 280 afs->output.rate = *out_samplerate ? *out_samplerate : afs->input.rate; |
283 afs->output.nch = *out_channels ? *out_channels : afs->input.nch; | 281 afs->output.nch = *out_channels ? *out_channels : afs->input.nch; |
284 // afs->output.format = *out_format ? af_format_decode(*out_format) : afs->input.format; | |
285 afs->output.format = *out_format ? *out_format : afs->input.format; | 282 afs->output.format = *out_format ? *out_format : afs->input.format; |
286 afs->output.bps = out_bps ? out_bps : afs->input.bps; | 283 af_fix_parameters(&(afs->output)); |
287 | 284 |
288 // filter config: | 285 // filter config: |
289 memcpy(&afs->cfg,&af_cfg,sizeof(af_cfg_t)); | 286 memcpy(&afs->cfg,&af_cfg,sizeof(af_cfg_t)); |
290 | 287 |
291 mp_msg(MSGT_DECAUDIO, MSGL_INFO, "Checking audio filter chain for %dHz/%dch/%dbit -> %dHz/%dch/%dbit...\n", | 288 mp_msg(MSGT_DECAUDIO, MSGL_INFO, "Checking audio filter chain for %dHz/%dch/%s -> %dHz/%dch/%s...\n", |
292 afs->input.rate,afs->input.nch,afs->input.bps*8, | 289 afs->input.rate,afs->input.nch,af_fmt2str_short(afs->input.format), |
293 afs->output.rate,afs->output.nch,afs->output.bps*8); | 290 afs->output.rate,afs->output.nch,af_fmt2str_short(afs->output.format)); |
294 | 291 |
295 // let's autoprobe it! | 292 // let's autoprobe it! |
296 if(0 != af_init(afs,0)){ | 293 if(0 != af_init(afs,0)){ |
297 free(afs); | 294 free(afs); |
298 return 0; // failed :( | 295 return 0; // failed :( |
299 } | 296 } |
300 | 297 |
301 *out_samplerate=afs->output.rate; | 298 *out_samplerate=afs->output.rate; |
302 *out_channels=afs->output.nch; | 299 *out_channels=afs->output.nch; |
303 // *out_format=af_format_encode((void*)(&afs->output)); | |
304 *out_format=afs->output.format; | 300 *out_format=afs->output.format; |
305 | 301 |
306 mp_msg(MSGT_DECAUDIO, MSGL_INFO, "AF_pre: af format: %d bps, %d ch, %d hz, %s\n", | 302 mp_msg(MSGT_DECAUDIO, MSGL_INFO, "AF_pre: %dHz/%dch/%s\n", |
307 afs->output.bps, afs->output.nch, afs->output.rate, | 303 afs->output.rate, afs->output.nch, |
308 af_fmt2str(afs->output.format,strbuf,200)); | 304 af_fmt2str_short(afs->output.format)); |
309 | 305 |
310 sh_audio->afilter=(void*)afs; | 306 sh_audio->afilter=(void*)afs; |
311 return 1; | 307 return 1; |
312 } | 308 } |
313 | 309 |
314 /* Init audio filters */ | 310 /* Init audio filters */ |
315 int init_audio_filters(sh_audio_t *sh_audio, | 311 int init_audio_filters(sh_audio_t *sh_audio, |
316 int in_samplerate, int in_channels, int in_format, int in_bps, | 312 int in_samplerate, int in_channels, int in_format, |
317 int out_samplerate, int out_channels, int out_format, int out_bps, | 313 int out_samplerate, int out_channels, int out_format, |
318 int out_minsize, int out_maxsize){ | 314 int out_minsize, int out_maxsize){ |
319 af_stream_t* afs=sh_audio->afilter; | 315 af_stream_t* afs=sh_audio->afilter; |
320 if(!afs){ | 316 if(!afs){ |
321 afs = (af_stream_t*)malloc(sizeof(af_stream_t)); | 317 afs = (af_stream_t*)malloc(sizeof(af_stream_t)); |
322 memset(afs,0,sizeof(af_stream_t)); | 318 memset(afs,0,sizeof(af_stream_t)); |
323 } | 319 } |
324 | 320 |
325 // input format: same as codec's output format: | 321 // input format: same as codec's output format: |
326 afs->input.rate = in_samplerate; | 322 afs->input.rate = in_samplerate; |
327 afs->input.nch = in_channels; | 323 afs->input.nch = in_channels; |
328 // afs->input.format = af_format_decode(in_format); | |
329 afs->input.format = in_format; | 324 afs->input.format = in_format; |
330 afs->input.bps = in_bps; | 325 af_fix_parameters(&(afs->input)); |
331 | 326 |
332 // output format: same as ao driver's input format (if missing, fallback to input) | 327 // output format: same as ao driver's input format (if missing, fallback to input) |
333 afs->output.rate = out_samplerate ? out_samplerate : afs->input.rate; | 328 afs->output.rate = out_samplerate ? out_samplerate : afs->input.rate; |
334 afs->output.nch = out_channels ? out_channels : afs->input.nch; | 329 afs->output.nch = out_channels ? out_channels : afs->input.nch; |
335 // afs->output.format = af_format_decode(out_format ? out_format : afs->input.format); | |
336 afs->output.format = out_format ? out_format : afs->input.format; | 330 afs->output.format = out_format ? out_format : afs->input.format; |
337 afs->output.bps = out_bps ? out_bps : afs->input.bps; | 331 af_fix_parameters(&(afs->output)); |
338 | 332 |
339 // filter config: | 333 // filter config: |
340 memcpy(&afs->cfg,&af_cfg,sizeof(af_cfg_t)); | 334 memcpy(&afs->cfg,&af_cfg,sizeof(af_cfg_t)); |
341 | 335 |
342 mp_msg(MSGT_DECAUDIO, MSGL_INFO, "Building audio filter chain for %dHz/%dch/%dbit -> %dHz/%dch/%dbit...\n", | 336 mp_msg(MSGT_DECAUDIO, MSGL_INFO, "Building audio filter chain for %dHz/%dch/%s -> %dHz/%dch/%s...\n", |
343 afs->input.rate,afs->input.nch,afs->input.bps*8, | 337 afs->input.rate,afs->input.nch,af_fmt2str_short(afs->input.format), |
344 afs->output.rate,afs->output.nch,afs->output.bps*8); | 338 afs->output.rate,afs->output.nch,af_fmt2str_short(afs->output.format)); |
345 | 339 |
346 // let's autoprobe it! | 340 // let's autoprobe it! |
347 if(0 != af_init(afs,1)){ | 341 if(0 != af_init(afs,1)){ |
348 sh_audio->afilter=NULL; | 342 sh_audio->afilter=NULL; |
349 free(afs); | 343 free(afs); |
414 // run the filters: | 408 // run the filters: |
415 afd.audio=sh_audio->a_buffer; | 409 afd.audio=sh_audio->a_buffer; |
416 afd.len=declen; | 410 afd.len=declen; |
417 afd.rate=sh_audio->samplerate; | 411 afd.rate=sh_audio->samplerate; |
418 afd.nch=sh_audio->channels; | 412 afd.nch=sh_audio->channels; |
419 // afd.format=af_format_decode(sh_audio->sample_format); | |
420 afd.format=sh_audio->sample_format; | 413 afd.format=sh_audio->sample_format; |
421 afd.bps=sh_audio->samplesize; | 414 af_fix_parameters(&afd); |
422 //pafd=&afd; | 415 //pafd=&afd; |
423 // printf("\nAF: %d --> ",declen); | 416 // printf("\nAF: %d --> ",declen); |
424 pafd=af_play(sh_audio->afilter,&afd); | 417 pafd=af_play(sh_audio->afilter,&afd); |
425 // printf("%d \n",pafd->len); | 418 // printf("%d \n",pafd->len); |
426 | 419 |
458 if(!sh_audio->inited) return; | 451 if(!sh_audio->inited) return; |
459 if(mpadec->control(sh_audio,ADCTRL_SKIP_FRAME,NULL)==CONTROL_TRUE) return; | 452 if(mpadec->control(sh_audio,ADCTRL_SKIP_FRAME,NULL)==CONTROL_TRUE) return; |
460 // default skip code: | 453 // default skip code: |
461 ds_fill_buffer(sh_audio->ds); // skip block | 454 ds_fill_buffer(sh_audio->ds); // skip block |
462 } | 455 } |
456 | |
457 void adjust_volume() | |
458 { | |
459 } |