| 113 | } |
| 114 | } |
| 115 | int A_AACEncoder::Encode(const void* audioSamples, const size_t nSamples, const size_t nBytesPerSample, |
| 116 | const size_t nChannels, const uint32_t samplesPerSec, const uint32_t totalDelayMS) |
| 117 | { |
| 118 | int status = 0; |
| 119 | if(encoder_) |
| 120 | { |
| 121 | unsigned int outlen = 0; |
| 122 | uint32_t curtime = rtc::Time(); |
| 123 | uint8_t encoded[1024]; |
| 124 | if(muted_) |
| 125 | {// mute audio |
| 126 | memset((uint8_t*)audioSamples, 0, nSamples*nBytesPerSample*nChannels); |
| 127 | } |
| 128 | status = aac_encoder_encode_frame(encoder_, (uint8_t*)audioSamples, nSamples*nBytesPerSample*nChannels, encoded, &outlen); |
| 129 | if(outlen > 0) |
| 130 | { |
| 131 | //ALOGE("Encode aac len:%d", outlen); |
| 132 | callback_.OnEncodeDataCallback(true, encoded, outlen, curtime); |
| 133 | } |
| 134 | } |
| 135 | |
| 136 | return status; |
| 137 | } |
| 138 | |
| 139 | void A_AACEncoder::OnData(const Data& audio) |
| 140 | { |
no test coverage detected