// inspired by: https://github.com/Kickflip/kickflip-android-sdk/blob/e35e0a5bb7161ccffebd564ec1a76a0e2c053fc8/sdk/src/main/java/io/kickflip/sdk/av/AudioEncoderConfig.java
package io.cine.android.streaming;
import android.media.AudioFormat;
import android.util.Log;
/**
* @hide
*/
public class AudioEncoderConfig {
private static final String TAG = "AudioEncoderConfig";
protected final int mNumChannels;
protected final int mSampleRate;
protected final int mBitrate;
public AudioEncoderConfig(int channels, int sampleRate, int bitRate) {
mNumChannels = channels;
mBitrate = bitRate;
mSampleRate = sampleRate;
}
public static AudioEncoderConfig createDefaultProfile() {
return new AudioEncoderConfig(1, 44100, 128000);
}
public int getNumChannels() {
return mNumChannels;
}
public int getSampleRate() {
return mSampleRate;
}
public int getBitrate() {
return mBitrate;
}
public int getChannelConfig() {
switch (mNumChannels) {
case 1:
Log.d(TAG, "SETTING CHANNEL MONO");
return AudioFormat.CHANNEL_IN_MONO;
case 2:
Log.d(TAG, "SETTING CHANNEL STEREO");
return AudioFormat.CHANNEL_IN_STEREO;
default:
throw new IllegalArgumentException("Invalid channel count. Must be 1 or 2");
}
}
@Override
public String toString() {
return "AudioEncoderConfig: " + mNumChannels + " channels totaling " + mBitrate + " bps @" + mSampleRate + " Hz";
}
}