private boolean passToMutable(AudioFrame frame, MutableAudioFrame targetFrame) { if (targetFrame != null) { if (frame.isTerminator()) { targetFrame.setTerminator(true); } else { targetFrame.setTimecode(frame.getTimecode()); targetFrame.setVolume(frame.getVolume()); targetFrame.store(frame.getData(), 0, frame.getDataLength()); targetFrame.setTerminator(false); } return true; } return false; }
private void popFrame(MutableAudioFrame targetFrame) { ReferenceMutableAudioFrame frame = frames[firstFrame]; if (frame.getVolume() == 0) { silentFrame.setTimecode(frame.getTimecode()); frame = silentFrame; } targetFrame.setTimecode(frame.getTimecode()); targetFrame.setVolume(frame.getVolume()); targetFrame.setTerminator(false); targetFrame.store(frame.getFrameBuffer(), frame.getFrameOffset(), frame.getDataLength()); firstFrame = wrappedFrameIndex(firstFrame + 1); frameCount--; }