Changeset 2511:e5f52519866f in roaraudio
- Timestamp:
- 09/01/09 14:27:26 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/roard.c
r2504 r2511 299 299 char * to_free = NULL; 300 300 #endif 301 int codec;302 301 int sync = 0, f_mmap = 0; 303 302 int32_t blocks = -1, blocksize = -1; … … 338 337 s = ROAR_STREAM(ss); 339 338 340 mem cpy(&(s->info), g_sa, sizeof(struct roar_audio_info));339 memset(&(s->info), 0xFF, sizeof(struct roar_audio_info)); // set everything to -1 341 340 342 341 s->pos_rel_id = -1; 343 342 // s->info.codec = codec; 344 345 codec = s->info.codec;346 343 347 344 k = strtok(opts, ","); … … 361 358 s->info.bits = atoi(v); 362 359 } else if ( strcmp(k, "codec") == 0 ) { 363 if ( ( codec = roar_str2codec(v)) == -1 ) {360 if ( (s->info.codec = roar_str2codec(v)) == -1 ) { 364 361 ROAR_ERR("add_output(*): unknown codec '%s'", v); 365 362 error++; … … 447 444 } 448 445 446 // set audio info... 447 switch (dir) { 448 case ROAR_DIR_LIGHT_OUT: 449 switch (s->info.codec) { 450 case ROAR_CODEC_DMX512: 451 case -1: 452 if ( s->info.rate == -1 ) 453 s->info.rate = ROAR_OUTPUT_CFREQ; 454 455 s->info.channels = 0; 456 s->info.bits = 8; 457 s->info.codec = ROAR_CODEC_DMX512; // in case codec == -1 458 break; 459 } 460 break; 461 case ROAR_DIR_MIDI_OUT: 462 switch (s->info.codec) { 463 case ROAR_CODEC_MIDI: 464 case -1: 465 if ( s->info.rate == -1 ) 466 s->info.rate = ROAR_MIDI_TICKS_PER_BEAT; 467 468 s->info.channels = ROAR_MIDI_CHANNELS_DEFAULT; 469 s->info.bits = ROAR_MIDI_BITS; 470 s->info.codec = ROAR_CODEC_MIDI; // in case codec == -1 471 break; 472 } 473 break; 474 case ROAR_DIR_RAW_OUT: 475 if ( s->info.rate == -1 ) 476 s->info.rate = 0; 477 if ( s->info.bits == -1 ) 478 s->info.bits = 0; 479 if ( s->info.channels == -1 ) 480 s->info.channels = 0; 481 if ( s->info.codec == -1 ) 482 s->info.codec = 0; 483 break; 484 } 485 486 if ( s->info.rate == -1 ) 487 s->info.rate = g_sa->rate; 488 if ( s->info.bits == -1 ) 489 s->info.bits = g_sa->bits; 490 if ( s->info.channels == -1 ) 491 s->info.channels = g_sa->channels; 492 if ( s->info.codec == -1 ) 493 s->info.codec = g_sa->codec; 494 495 ROAR_DBG("add_output(*): s->info = {.rate=%i, .bits=%i, .channels=%i, .codec=%i}", s->info.rate, s->info.bits, s->info.channels, s->info.codec); 496 449 497 if ( streams_set_dir(stream, dir, 1) == -1 ) { 450 498 streams_delete(stream); … … 457 505 #endif 458 506 459 if ( codec == ROAR_CODEC_ALAW ||codec == ROAR_CODEC_MULAW )507 if ( s->info.codec == ROAR_CODEC_ALAW || s->info.codec == ROAR_CODEC_MULAW ) 460 508 s->info.bits = 8; // needed to open OSS driver, will be overriden by codecfilter 461 509 462 s->info.codec = codec; 463 ROAR_STREAM_SERVER(s)->codec_orgi = codec; 510 ROAR_STREAM_SERVER(s)->codec_orgi = s->info.codec; 464 511 465 512 if ( driver_openvio(&(ss->vio), &(ss->driver_id), drv, dev, &(s->info), -1, ss) == -1 ) { … … 516 563 streams_set_flag(stream, ROAR_FLAG_MMAP); 517 564 565 ROAR_DBG("add_output(*): s->info = {.rate=%i, .bits=%i, .channels=%i, .codec=%i}", s->info.rate, s->info.bits, s->info.channels, s->info.codec); 518 566 return 0; 519 567 }
Note: See TracChangeset
for help on using the changeset viewer.