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 }