void EncoderAudioSource::doGetNextFrame() { // Copy an encoded audio frame into buffer `fTo' // Read a new frame into fBuffer, YUV420 format is assumed unsigned char frame[100]; int size = fFrameLength; int audioType; Debug(ckite_log_message, "EncoderAudioSource::doGetNextFrame.\n"); computeAudioPresentationTime(); if (strcmp(mediaType, "store") == 0) { // getFileAudioFrame( fp, 0, (unsigned char*)fBuffer, &size, &audioType); } else { audioGetFrameInfo(fp, mediaType,(char *)fBuffer, &size, &audioType); } if (size <= 0) return ; // Encode the frame int ret = 0; if(audioType == AUDIO_AMRNB || audioType == AUDIO_AMRWB) { fFrameSize = size; } else if(audioType == AUDIO_RAW) { if (fAudioCodec != NULL) { #ifndef __WIN32__ ret = Encoder_Interface_Encode(fAudioCodec, MR122, (const short int*)fBuffer, frame, 0); #endif } if (ret > 0) { fLastFrameHeader = frame[0]; fFrameSize = ret-1; memcpy(fTo, frame+1, ret-1); } } afterGetting(this); }
void EncoderAudioSource::doGetNextFrame() { // Copy an encoded audio frame into buffer `fTo' // Read a new frame into fBuffer, YUV420 format is assumed unsigned char frame[100]; int size = fFrameLength; int audioType; Debug(ckite_log_message, "EncoderAudioSource::doGetNextFrame.\n"); computeAudioPresentationTime(); if (strcmp(mediaType, "store") == 0) { getStoreAudioFrame( fp, 0, (unsigned char*)fBuffer, &size, &audioType); } else { getRealAudioFrame(fp, mediaType,(char *)fBuffer, &size, &audioType); } if (size <= 0) size = 0; // Encode the frame #ifdef ENC_SOURCE int ret = 0; if (fAudioCodec != NULL) { ret = Encoder_Interface_Encode(fAudioCodec, MR122, (const short int*)fBuffer, frame, 0); } if (ret > 0) { fLastFrameHeader = frame[0]; fFrameSize = ret-1; memcpy(fTo, frame+1, ret-1); } #else if (size != 0) memcpy(fTo, fBuffer, size); fFrameSize = size; #endif afterGetting(this); }