Show
Ignore:
Timestamp:
09/04/06 20:29:59 (6 years ago)
Author:
ath
Message:

Use some decent float-integer converstion routines, and make FmPipeline more useful.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • fm_server/trunk/src/fm_output_alsa.c

    r111 r112  
    77#include <alsa/asoundlib.h> 
    88 
     9#include "src_type_conv.h" 
    910#include "fm_buffer.h" 
    1011#include "fm_element.h" 
     
    1415 
    1516#define ALSA_DEFAULT_DEVICE "default" 
     17#define ALSA_DEFAULT_SAMPLE_RATE 44100 
    1618#define ALSA_DEFAULT_BUFFER_TIME 22000 
    1719#define ALSA_DEFAULT_PERIOD_TIME 10000 
     
    407409                fm_element_get_buffer_from_src(element, output_alsa->main_buffer); 
    408410         
    409                 guint i; 
    410                 gint16 *ptr = output_alsa->buffer_int; 
    411                 for (i = 0; i < output_alsa->buffer_size_samples; i++) { 
    412                         *(ptr++) = FLOAT_TO_INT (output_alsa->main_buffer->channel_data[0][i]); 
    413                         *(ptr++) = FLOAT_TO_INT (output_alsa->main_buffer->channel_data[1][i]); 
    414                 } 
    415          
     411                src_float_to_short_array_stereo (output_alsa->main_buffer->channel_data[0], 
     412                                                 output_alsa->main_buffer->channel_data[1], 
     413                                                 output_alsa->buffer_int, output_alsa->buffer_size_samples); 
     414 
    416415                gint err = 0; 
    417416