Changeset 2084:3efbf2e6e779 in roaraudio


Ignore:
Timestamp:
07/20/09 15:27:36 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support for new ROAR_STREAM_CTL_TYPE_* and for ROAR_CODECFILTER_CTL_SET_Q

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/codecfilter_vorbis.c

    r1493 r2084  
    434434int cf_vorbis_ctl(CODECFILTER_USERDATA_T   inst, int cmd, void * data) { 
    435435 struct codecfilter_vorbis_inst * self = (struct codecfilter_vorbis_inst *) inst; 
     436 int_least32_t type = cmd & ROAR_STREAM_CTL_TYPEMASK; 
     437 
     438 cmd -= type; 
    436439 
    437440 switch (cmd) { 
    438441  case ROAR_CODECFILTER_CTL2CMD(ROAR_CODECFILTER_CTL_META_UPDATE): 
     442    if ( type != ROAR_STREAM_CTL_TYPE_VOID ) 
     443     return -1; 
     444 
    439445    ROAR_DBG("cf_vorbis_ctl(*): stoping stream..."); 
    440446    if ( cf_vorbis_encode_end(self) == -1 ) 
     
    446452    return 0; 
    447453   break; 
     454  case ROAR_CODECFILTER_CTL2CMD(ROAR_CODECFILTER_CTL_SET_Q): 
     455    if ( type != ROAR_STREAM_CTL_TYPE_FLOAT ) 
     456     return -1; 
     457 
     458    self->encoder.v_base_quality = *(float*)data; 
     459 
     460    if ( self->encoding ) { 
     461     ROAR_DBG("cf_vorbis_ctl(*): we are allready encoding, restart..."); 
     462     ROAR_DBG("cf_vorbis_ctl(*): stoping stream..."); 
     463     if ( cf_vorbis_encode_end(self) == -1 ) 
     464      return -1; 
     465     ROAR_DBG("cf_vorbis_ctl(*): restarting stream..."); 
     466     if ( cf_vorbis_encode_start(self) == -1 ) 
     467      return -1; 
     468    } 
     469 
     470    return 0; 
     471   break; 
    448472  default: 
    449473    return -1; 
Note: See TracChangeset for help on using the changeset viewer.