179. Rendering
public void startAudioDecoding(int sampleRate, int channels) {
AudioTrack
int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
int channelConfig = (channels 1) ?
AudioFormat.CHANNEL_OUT_STEREO : AudioFormat.CHANNEL_OUT_MONO;
int bufferSize = AudioTrack.getMinBufferSize(sampleRate, channelConfig, audioFormat);
mAudioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRate, channelConfig, audioFormat, bufferSize,
AudioTrack.MODE_STREAM);
mBuffer = new byte[bufferSize];
mAudioThread = new Thread() {
@Override
public void run() {
nativeDecodeAudioStream();
Log.i(TAG, [startAudioDecoding] done);
}
};
mAudioThread.start();
}
12년 5월 26일 토요일
185. Rendering
public void addAudioData(byte[] buffer) {
AudioTrack
mAudioTrack.write(mBuffer, 0, buffer.length);
if (mAudioTrack.getPlayState() != AudioTrack.PLAYSTATE_PLAYING) {
mAudioTrack.play();
}
}
12년 5월 26일 토요일
303. 맞다!
varying highp vec2 _texcoord;n
void main()n
{n
highp float y = texture2D(sampler0, _texcoord).r;n
highp float u = texture2D(sampler1, _texcoord).r;n
highp float v = texture2D(sampler2, _texcoord).r;n
n
y = 1.1643 * (y - 0.0625);n
u = u - 0.5;n
v = v - 0.5;n
n
highp float r = y + 1.5958 * v;n
highp float g = y - 0.39173 * u - 0.81290 * v;n
highp float b = y + 2.017 * u;n
n
gl_FragColor = vec4(r, g, b, 1.0);n
}n;
12년 5월 26일 토요일