Guest User

Untitled

a guest
Dec 17th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. private void encode(byte[] data) {
  2. inputBuffers = mMediaCodec.getInputBuffers();
  3. outputBuffers = mMediaCodec.getOutputBuffers();
  4.  
  5. int inputBufferIndex = mMediaCodec.dequeueInputBuffer(-1);
  6. if (inputBufferIndex >= 0) {
  7. ByteBuffer inputBuffer = inputBuffers[inputBufferIndex];
  8. inputBuffer.clear();
  9. inputBuffer.put(data);
  10. mMediaCodec.queueInputBuffer(inputBufferIndex, 0, data.length, 0, 0);
  11. } else {
  12. return;
  13. }
  14.  
  15. MediaCodec.BufferInfo bufferInfo = new MediaCodec.BufferInfo();
  16. int outputBufferIndex = mMediaCodec.dequeueOutputBuffer(bufferInfo, 0);
  17. Log.i(TAG, "outputBufferIndex-->" + outputBufferIndex);
  18. do {
  19. if (outputBufferIndex >= 0) {
  20. ByteBuffer outBuffer = outputBuffers[outputBufferIndex];
  21. System.out.println("buffer info-->" + bufferInfo.offset + "--"
  22. + bufferInfo.size + "--" + bufferInfo.flags + "--"
  23. + bufferInfo.presentationTimeUs);
  24. byte[] outData = new byte[bufferInfo.size];
  25. outBuffer.get(outData);
  26. try {
  27. if (bufferInfo.offset != 0) {
  28. fos.write(outData, bufferInfo.offset, outData.length
  29. - bufferInfo.offset);
  30. } else {
  31. fos.write(outData, 0, outData.length);
  32. }
  33. fos.flush();
  34. Log.i(TAG, "out data -- > " + outData.length);
  35. mMediaCodec.releaseOutputBuffer(outputBufferIndex, false);
  36. outputBufferIndex = mMediaCodec.dequeueOutputBuffer(bufferInfo,
  37. 0);
  38. } catch (IOException e) {
  39. e.printStackTrace();
  40. }
  41. } else if (outputBufferIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) {
  42. outputBuffers = mMediaCodec.getOutputBuffers();
  43. } else if (outputBufferIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) {
  44. MediaFormat format = mMediaCodec.getOutputFormat();
  45. }
  46. } while (outputBufferIndex >= 0);
  47. }
Add Comment
Please, Sign In to add comment