Changeset 491:9f0ecaa578d4 in roaraudio


Ignore:
Timestamp:
08/14/08 05:06:07 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Tags:
current-working
Message:

undone changes to rev 1.25, added some debug macros and clarified some casts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/streams.c

    r389 r491  
    6666 
    6767   g_streams[i] = (struct roar_stream_server*)n; 
     68   ROAR_DBG("streams_new(void): n->id=%i", n->id); 
    6869   ROAR_DBG("streams_new(void) = %i", i); 
    6970   return i; 
     
    7980 
    8081 ROAR_DBG("streams_delete(id=%i) = ?", id); 
     82 ROAR_DBG("streams_delete(id=%i): g_streams[id]->id=%i", id, ROAR_STREAM(g_streams[id])->id); 
    8183 
    8284 if ( g_streams[id]->codecfilter != -1 ) { 
     
    112114  return -1; 
    113115 
     116 ROAR_DBG("streams_set_client(id=%i): g_streams[id]->id=%i", id, ROAR_STREAM(g_streams[id])->id); 
    114117 g_streams[id]->client = client; 
    115118 
     
    123126  return -1; 
    124127 
     128 ROAR_DBG("streams_set_fh(id=%i): g_streams[id]->id=%i", id, ROAR_STREAM(g_streams[id])->id); 
     129 
    125130 ((struct roar_stream *)g_streams[id])->fh = fh; 
    126131 
    127132 codecfilter_open(&(g_streams[id]->codecfilter_inst), &(g_streams[id]->codecfilter), NULL, 
    128                   ((struct roar_stream *)g_streams[id])->info.codec, g_streams[id]); 
    129  
    130  dir = ((struct roar_stream *)g_streams[id])->dir; 
     133                  ROAR_STREAM(g_streams[id])->info.codec, g_streams[id]); 
     134 
     135 dir = ROAR_STREAM(g_streams[id])->dir; 
    131136 
    132137 if ( dir == ROAR_DIR_MONITOR || dir == ROAR_DIR_RECORD ) { 
     
    204209 size_t todo_in; 
    205210 size_t len, outlen; 
     211 size_t mul = 1, div = 1; 
    206212 void * rest = NULL; 
    207213 void * in   = NULL; 
     
    226232 
    227233 // calc todo_in 
    228  todo_in = (todo*stream_info->rate)/info->rate; 
    229 // todo_in = ROAR_OUTPUT_CALC_OUTBUFSIZE(stream_info); 
     234 todo_in = ROAR_OUTPUT_CALC_OUTBUFSIZE(stream_info); 
     235 
     236 // calc mul and div: 
     237 mul = todo    / todo_in; 
     238 div = todo_in / todo; 
     239 
     240 if ( mul == 0 ) { 
     241  mul = 1; 
     242 } else { 
     243  div = 1; 
     244 } 
     245 
     246 ROAR_DBG("streams_fill_mixbuffer(*): mul=%i, div=%i", mul, div); 
    230247 
    231248 ROAR_DBG("streams_fill_mixbuffer(*): rest=%p, todo=%i->%i (in->out)", rest, todo_in, todo); 
     
    303320 
    304321  // calc how much outlen this has... 
    305   outlen = (len * info->rate)/stream_info->rate; 
     322  outlen = (len * mul) / div; 
    306323 
    307324  ROAR_DBG("streams_fill_mixbuffer(*): outlen = %i, buf = %p, len = %i", outlen, in, len); 
     
    349366  // hey! we have roar_conv() :) 
    350367 
    351    if ( roar_conv(rest, in, 8*len / stream_info->bits, stream_info, info) == -1 ) { 
    352     ROAR_WARN("streams_fill_mixbuffer(*): can not convert input!"); 
    353     return -1; 
    354    } 
    355  
    356    if ( change_vol(rest, info->bits, rest, 8*outlen / info->bits, info->channels, &(((struct roar_stream_server*)g_streams[id])->mixer)) == -1 ) { 
    357     ROAR_WARN("streams_fill_mixbuffer(*): can not change volume"); 
    358     return -1; 
    359    } 
     368  if ( roar_conv(rest, in, 8*len / stream_info->bits, stream_info, info) == -1 ) 
     369   return -1; 
     370  } 
     371 
     372  if ( change_vol(rest, info->bits, rest, 8*outlen / info->bits, info->channels, &(((struct roar_stream_server*)g_streams[id])->mixer)) == -1 ) 
     373   return -1; 
    360374 
    361375  // we habe outlen bytes more... 
    362    todo    -= outlen; 
    363    rest    += outlen; 
    364    todo_in -= len; 
    365  
    366    roar_buffer_get_len(buf, &len); 
    367    ROAR_DBG("streams_fill_mixbuffer(*): New length of buffer %p is %i", buf, len); 
    368    if ( len == 0 ) { 
    369     roar_buffer_delete(buf, NULL); 
    370    } else { 
    371     stream_unshift_buffer(id, buf); 
    372    } 
     376  todo    -= outlen; 
     377  rest    += outlen; 
     378  todo_in -= len; 
     379 
     380  roar_buffer_get_len(buf, &len); 
     381  ROAR_DBG("streams_fill_mixbuffer(*): New length of buffer %p is %i", buf, len); 
     382  if ( len == 0 ) { 
     383   roar_buffer_delete(buf, NULL); 
     384  } else { 
     385   stream_unshift_buffer(id, buf); 
    373386  } 
    374387 } 
     
    404417 return 0; 
    405418} 
     419 
    406420 
    407421int streams_get_mixbuffers (void *** bufferlist, struct roar_audio_info * info, unsigned int pos) { 
Note: See TracChangeset for help on using the changeset viewer.