c++ - Superpowered Android PlayBack & Record Simultaneously -
i developing mixer using superpowered android c++ library, getting issue player while recording, player not playing, recorder recording. below code, can guide me misplacing something
bool processrecording(short int *input, unsigned int numberofsamples) { pthread_mutex_lock(&mutex); if (askrecording) { unsigned int data = 0; superpoweredshortinttofloat(input, stereobufferrecording, numberofsamples); data = recorder->process(stereobufferrecording, null, numberofsamples); playera->process( musicbuffer, false, numberofsamples, 0.5f ); superpoweredshortinttofloat(input, stereobufferrecording, numberofsamples); superpoweredfloattoshortint(musicbuffer, input, numberofsamples); pthread_mutex_unlock(&mutex); return true; } pthread_mutex_unlock(&mutex); return false; } does have idea in right place?
after changes suggested @gabor following code snippet
bool processrecording(short int *input, unsigned int numberofsamples) { pthread_mutex_lock(&mutex); if (askrecording) { unsigned int data = 0; superpoweredshortinttofloat(input, stereobufferrecording, numberofsamples); playera->process( musicbuffer, false, numberofsamples, 1.0f ); //===================================================================================== // ================== mixing 2 buffer ================== mixerinputs[0] = musicbuffer; mixerinputs[1] = stereobufferrecording; mixerinputs[2] = null; mixerinputs[3] = null; mixeroutputs[0] = outputbuffer; mixeroutputs[1] = null; float inputlevels[] = { 0.5f, 0.5f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f }; float outputlevels[] = { 1.0f, 1.0f }; __android_log_print(android_log_info, "nativesuperpoweredrecorder ", " processrecording 2>>"); mixerbackend->process(mixerinputs, mixeroutputs, inputlevels, outputlevels, null, null, numberofsamples); //===================================================================================== data = recorder->process(mixeroutputs[0], null, numberofsamples); superpoweredfloattoshortint(musicbuffer, input, numberofsamples); pthread_mutex_unlock(&mutex); return true; } pthread_mutex_unlock(&mutex); return false; }
this in code:
input->stereobufferrecording->recorder
input->stereobufferrecording->?
player->musicbuffer->input
when askrecording false, player not playing @ all.
i'm guessing "input" same buffer goes "output" well?
Comments
Post a Comment