Ignore:
Timestamp:
Mar 24, 2006 8:41:20 PM (18 years ago)
Author:
bennylp
Message:

Added WAVE writer and resample port, and also found out why audio quality is poor with DirectSound?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/pasound.c

    r352 r358  
    132132    } 
    133133 
    134     if (statusFlags & paInputUnderflow) 
     134    if (statusFlags & paOutputUnderflow) 
    135135        ++stream->underflow; 
    136     if (statusFlags & paInputOverflow) 
     136    if (statusFlags & paOutputOverflow) 
    137137        ++stream->overflow; 
    138138 
     
    240240    int sampleFormat; 
    241241    const PaDeviceInfo *paDevInfo = NULL; 
     242    const PaHostApiInfo *paHostApiInfo = NULL; 
    242243    unsigned paFrames; 
    243244    PaError err; 
     
    292293    inputParam.suggestedLatency = paDevInfo->defaultLowInputLatency; 
    293294 
     295    paHostApiInfo = Pa_GetHostApiInfo(paDevInfo->hostApi); 
     296 
    294297    /* Frames in PortAudio is number of samples in a single channel */ 
    295298    paFrames = samples_per_frame / channel_count; 
     
    303306    } 
    304307 
    305     PJ_LOG(5,(THIS_FILE, "%s opening device %s for recording, sample rate=%d, " 
    306                          "channel count=%d, " 
    307                          "%d bits per sample, %d samples per buffer", 
     308    PJ_LOG(5,(THIS_FILE, "%s opening device %s (%s) for recording, sample " 
     309                         "rate=%d, ch=%d, " 
     310                         "bits=%d, %d samples per frame", 
    308311                         (err==0 ? "Success" : "Error"), 
    309                          paDevInfo->name, clock_rate, channel_count, 
     312                         paDevInfo->name, paHostApiInfo->name, 
     313                         clock_rate, channel_count, 
    310314                         bits_per_sample, samples_per_frame)); 
    311315 
     
    329333    int sampleFormat; 
    330334    const PaDeviceInfo *paDevInfo = NULL; 
     335    const PaHostApiInfo *paHostApiInfo = NULL; 
    331336    unsigned paFrames; 
    332337    PaError err; 
     
    381386    outputParam.suggestedLatency = paDevInfo->defaultLowInputLatency; 
    382387 
     388    paHostApiInfo = Pa_GetHostApiInfo(paDevInfo->hostApi); 
     389 
    383390    /* Frames in PortAudio is number of samples in a single channel */ 
    384391    paFrames = samples_per_frame / channel_count; 
     
    392399    } 
    393400 
    394     PJ_LOG(5,(THIS_FILE, "%s opening device %s for playing, sample rate=%d, " 
    395                          "channel count=%d, " 
    396                          "%d bits per sample, %d samples per frame", 
     401    PJ_LOG(5,(THIS_FILE, "%s opening device %s(%s) for playing, sample rate=%d" 
     402                         ", ch=%d, " 
     403                         "bits=%d, %d samples per frame", 
    397404                         (err==0 ? "Success" : "Error"), 
    398                          paDevInfo->name, clock_rate, channel_count, 
     405                         paDevInfo->name, paHostApiInfo->name,  
     406                         clock_rate, channel_count, 
    399407                         bits_per_sample, samples_per_frame)); 
    400408 
     
    426434    const PaDeviceInfo *paRecDevInfo = NULL; 
    427435    const PaDeviceInfo *paPlayDevInfo = NULL; 
     436    const PaHostApiInfo *paRecHostApiInfo = NULL; 
     437    const PaHostApiInfo *paPlayHostApiInfo = NULL; 
    428438    unsigned paFrames; 
    429439    PaError err; 
     
    498508    inputParam.suggestedLatency = paRecDevInfo->defaultLowInputLatency; 
    499509 
     510    paRecHostApiInfo = Pa_GetHostApiInfo(paRecDevInfo->hostApi); 
     511 
    500512    pj_memset(&outputParam, 0, sizeof(outputParam)); 
    501513    outputParam.device = play_id; 
     
    503515    outputParam.hostApiSpecificStreamInfo = NULL; 
    504516    outputParam.sampleFormat = sampleFormat; 
    505     outputParam.suggestedLatency = paPlayDevInfo->defaultLowInputLatency; 
     517    outputParam.suggestedLatency = paPlayDevInfo->defaultLowOutputLatency; 
     518 
     519    paPlayHostApiInfo = Pa_GetHostApiInfo(paPlayDevInfo->hostApi); 
    506520 
    507521    /* Frames in PortAudio is number of samples in a single channel */ 
     
    516530    } 
    517531 
    518     PJ_LOG(5,(THIS_FILE, "%s opening device %s/%s for recording and playback, " 
    519                          "sample rate=%d, channel count=%d, " 
    520                          "%d bits per sample, %d samples per buffer", 
     532    PJ_LOG(5,(THIS_FILE, "%s opening device %s(%s)/%s(%s) for recording and " 
     533                         "playback, sample rate=%d, ch=%d, " 
     534                         "bits=%d, %d samples per frame", 
    521535                         (err==0 ? "Success" : "Error"), 
    522                          paRecDevInfo->name, paPlayDevInfo->name, 
     536                         paRecDevInfo->name, paRecHostApiInfo->name, 
     537                         paPlayDevInfo->name, paPlayHostApiInfo->name, 
    523538                         clock_rate, channel_count, 
    524539                         bits_per_sample, samples_per_frame)); 
Note: See TracChangeset for help on using the changeset viewer.