AudioEffector extends MediaCodecPlugin { @Override public Frame getFrame() { Frame frame = null; if (framesOutput.size() > 0) { Iterator<Frame> iterator = framesOutput.iterator(); frame = iterator.next(); framesPool.add(frame); iterator.remove(); } if (framesPool.size() > 0) { feedMeIfNotDraining(); } return frame; } AudioEffector(IMediaCodec mediaCodec); LinkedList<IAudioEffect> getAudioEffects(); @Override void push(Frame frame); @Override void checkIfOutputQueueHasData(); @Override void releaseOutputBuffer(int outputBufferIndex); @Override void pull(Frame frame); @Override Frame findFreeFrame(); @Override Frame getFrame(); @Override void setInputMediaFormat(MediaFormat mediaFormat); @Override boolean isLastFile(); @Override void start(); @Override void stop(); @Override void setMediaFormat(MediaFormat mediaFormat); @Override void configure(); @Override void setOutputSurface(ISurface surface); @Override ISurface getSurface(); @Override void waitForSurface(long pts); @Override void close(); @Override MediaFormat getOutputMediaFormat(); void reInitInputCommandQueue(); @Override void setTrackId(int trackId);  }
@Test public void getFrameReturnsNullUntilFindFreeFrameIsCalled() { assertEquals(null, effector.getFrame()); }