| /* |
| * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| #ifndef MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_UTIL_UTILITY_H_ |
| #define MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_UTIL_UTILITY_H_ |
| |
| #include <stdlib.h> |
| #include <stdio.h> |
| |
| #if defined(__cplusplus) |
| extern "C" { |
| #endif |
| |
| #define OPEN_FILE_WB(filePtr, fullPath) \ |
| do \ |
| { \ |
| if(fullPath != NULL) \ |
| { \ |
| filePtr = fopen(fullPath, "wb"); \ |
| if(filePtr == NULL) \ |
| { \ |
| printf("could not open %s to write to.", fullPath); \ |
| return -1; \ |
| } \ |
| } \ |
| else \ |
| { \ |
| filePtr = NULL; \ |
| } \ |
| }while(0) |
| |
| #define OPEN_FILE_AB(filePtr, fullPath) \ |
| do \ |
| { \ |
| if(fullPath != NULL) \ |
| { \ |
| filePtr = fopen(fullPath, "ab"); \ |
| if(filePtr == NULL) \ |
| { \ |
| printf("could not open %s to write to.", fullPath); \ |
| return -1; \ |
| } \ |
| } \ |
| else \ |
| { \ |
| filePtr = NULL; \ |
| } \ |
| }while(0) |
| |
| #define OPEN_FILE_RB(filePtr, fullPath) \ |
| do \ |
| { \ |
| if(fullPath != NULL) \ |
| { \ |
| filePtr = fopen(fullPath, "rb"); \ |
| if(filePtr == NULL) \ |
| { \ |
| printf("could not open %s to read from.", fullPath); \ |
| return -1; \ |
| } \ |
| } \ |
| else \ |
| { \ |
| filePtr = NULL; \ |
| } \ |
| }while(0) |
| |
| #define WRITE_FILE_D(bufferPtr, len, filePtr) \ |
| do \ |
| { \ |
| if(filePtr != NULL) \ |
| { \ |
| double dummy[1000]; \ |
| int cntr; \ |
| for(cntr = 0; cntr < (len); cntr++) \ |
| { \ |
| dummy[cntr] = (double)bufferPtr[cntr]; \ |
| } \ |
| fwrite(dummy, sizeof(double), len, filePtr); \ |
| fflush(filePtr); \ |
| } \ |
| } while(0) |
| |
| typedef struct { |
| unsigned int whenPackGeneratedMs; |
| unsigned int whenPrevPackLeftMs; |
| unsigned int sendTimeMs ; /* milisecond */ |
| unsigned int arrival_time; /* samples */ |
| unsigned int sample_count; /* samples, also used as "send time stamp" */ |
| unsigned int rtp_number; |
| } BottleNeckModel; |
| |
| void get_arrival_time( |
| int current_framesamples, /* samples */ |
| size_t packet_size, /* bytes */ |
| int bottleneck, /* excluding headers; bits/s */ |
| BottleNeckModel* BN_data, |
| short senderSampFreqHz, |
| short receiverSampFreqHz); |
| |
| /* function for reading audio data from PCM file */ |
| int readframe( |
| short* data, |
| FILE* inp, |
| int length); |
| |
| short readSwitch( |
| int argc, |
| char* argv[], |
| char* strID); |
| |
| double readParamDouble( |
| int argc, |
| char* argv[], |
| char* strID, |
| double defaultVal); |
| |
| int readParamInt( |
| int argc, |
| char* argv[], |
| char* strID, |
| int defaultVal); |
| |
| int readParamString( |
| int argc, |
| char* argv[], |
| char* strID, |
| char* stringParam, |
| int maxSize); |
| |
| #if defined(__cplusplus) |
| } |
| #endif |
| |
| |
| |
| #endif |