Changeset 2096:40ce6a9c8492 in roaraudio


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

started with roar_conv2(), still need to add support to convert codec and rate

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroardsp/convert.c

    r2094 r2096  
    738738 size_t samples; 
    739739 size_t needed_buffer; 
     740 void   * cin = in; 
     741 struct roar_audio_info cinfo; 
     742 
     743 memcpy(&cinfo, from, sizeof(cinfo)); 
    740744 
    741745 // calcumate number of input samples: 
     
    754758  return -1; 
    755759 
    756  return -1; 
     760 if ( ROAR_CODEC_BYTE_ORDER(from->codec) != ROAR_CODEC_NATIVE_ENDIAN ) { 
     761  ROAR_DBG("roar_conv(*): doing bo input conv"); 
     762  if ( roar_conv_endian(out, cin, samples, 
     763       ROAR_CODEC_BYTE_ORDER(from->codec), ROAR_CODEC_NATIVE_ENDIAN, from->bits) == -1 ) { 
     764   return -1; 
     765  } 
     766  cin = out; 
     767 } 
     768 
     769 if ( to->bits > from->bits ) { 
     770  if ( roar_conv_bits(out, cin, samples, from->bits, to->bits) == -1 ) 
     771   return -1; 
     772 
     773  cin        = out; 
     774  cinfo.bits = to->bits; 
     775 } 
     776 
     777 if ( to->channels > from->channels ) { 
     778  if ( roar_conv_chans(out, cin, samples, from->channels, to->channels, cinfo.bits) == -1 ) 
     779   return -1; 
     780 
     781  cin            = out; 
     782  cinfo.channels = to->channels; 
     783 } 
     784 
     785//--// 
     786 
     787 if ( cinfo.channels != to->channels ) { 
     788  if ( roar_conv_chans(out, cin, samples, cinfo.channels, to->channels, cinfo.bits) == -1 ) 
     789   return -1; 
     790 
     791  cin            = out; 
     792  cinfo.channels = to->channels; 
     793 } 
     794 
     795 if ( cinfo.bits != to->bits ) { 
     796  if ( roar_conv_bits(out, cin, samples, cinfo.bits, to->bits) == -1 ) 
     797   return -1; 
     798 
     799  cin        = out; 
     800  cinfo.bits = to->bits; 
     801 } 
     802 
     803 if ( ROAR_CODEC_BYTE_ORDER(to->codec) != ROAR_CODEC_NATIVE_ENDIAN ) { 
     804  ROAR_DBG("roar_conv(*): doing bo output conv"); 
     805  if ( roar_conv_endian(out, cin, samples, 
     806       ROAR_CODEC_NATIVE_ENDIAN, ROAR_CODEC_BYTE_ORDER(to->codec), to->bits) == -1 ) { 
     807   return -1; 
     808  } 
     809  cin = out; 
     810 } 
     811 
     812 return 0; 
    757813} 
    758814 
Note: See TracChangeset for help on using the changeset viewer.