/* * Audio Packet Removal * * Created on: Nov 8, 2015 * Author: Agustín J. González */ #include #include #include #include #include #include using namespace std; int main (int argc, char * argv[]) { float p; if (argc < 4) exit(-1); if (argc >1) p = atof(argv[1]); srand(time(NULL)); // semilla números aleatorios ifstream audioInFile; audioInFile.open (argv[2], ios::in | ios::binary); ofstream audioOutFile; audioOutFile.open (argv[3], ios::out | ios::trunc | ios::binary); while (!audioInFile.eof()) { short s, zero=0; bool loss =static_cast (rand())/RAND_MAX < p; for (int i=0; i <160; i++) { audioInFile.read((char *)&s, sizeof(s)); if (audioInFile.eof()) break; if (loss) audioOutFile.write((char*)&zero, sizeof(zero)); else audioOutFile.write((char*)&s,sizeof(s)); } } audioInFile.close(); audioOutFile.close(); }