From ef172a04c6b6284a83276523532081efae5cd480 Mon Sep 17 00:00:00 2001 From: Denny Date: Fri, 3 Mar 2017 10:04:21 -0500 Subject: [PATCH] Cleanup - removed synchronized blocks since the buffer processor thread is the only thread managing recorders. --- src/record/RecorderManager.java | 82 +++++++++++++++------------------ 1 file changed, 38 insertions(+), 44 deletions(-) diff --git a/src/record/RecorderManager.java b/src/record/RecorderManager.java index cb30aa08..4d9789e0 100644 --- a/src/record/RecorderManager.java +++ b/src/record/RecorderManager.java @@ -60,9 +60,6 @@ public class RecorderManager implements Listener */ public RecorderManager() { - mBufferProcessorFuture = ThreadPool.SCHEDULED.scheduleAtFixedRate(new BufferProcessor(), 0, - 1, TimeUnit.SECONDS); - mAudioPacketQueue.setOverflowListener(new IOverflowListener() { @Override @@ -78,6 +75,9 @@ public class RecorderManager implements Listener } } }); + + mBufferProcessorFuture = ThreadPool.SCHEDULED.scheduleAtFixedRate(new BufferProcessor(), 0, + 1, TimeUnit.SECONDS); } /** @@ -119,50 +119,47 @@ public class RecorderManager implements Listener { String identifier = audioPacket.getMetadata().getUniqueIdentifier(); - synchronized(mRecorders) + if(mRecorders.containsKey(identifier)) { - if(mRecorders.containsKey(identifier)) - { - RealBufferWaveRecorder recorder = mRecorders.get(identifier); + RealBufferWaveRecorder recorder = mRecorders.get(identifier); - if(audioPacket.getType() == AudioPacket.Type.AUDIO) - { - recorder.receive(audioPacket.getAudioBuffer()); - } - else if(audioPacket.getType() == AudioPacket.Type.END) - { - RealBufferWaveRecorder finished = mRecorders.remove(identifier); - finished.stop(); - } + if(audioPacket.getType() == AudioPacket.Type.AUDIO) + { + recorder.receive(audioPacket.getAudioBuffer()); } - else if(audioPacket.getType() == AudioPacket.Type.AUDIO) + else if(audioPacket.getType() == AudioPacket.Type.END) { - if(mCanStartNewRecorders) + RealBufferWaveRecorder finished = mRecorders.remove(identifier); + finished.stop(); + } + } + else if(audioPacket.getType() == AudioPacket.Type.AUDIO) + { + if(mCanStartNewRecorders) + { + String filePrefix = getFilePrefix(audioPacket); + + RealBufferWaveRecorder recorder = null; + + try { - String filePrefix = getFilePrefix(audioPacket); + recorder = new RealBufferWaveRecorder(AUDIO_SAMPLE_RATE, filePrefix); - RealBufferWaveRecorder recorder = null; + recorder.start(ThreadPool.SCHEDULED); - try + recorder.receive(audioPacket.getAudioBuffer()); + mRecorders.put(identifier, recorder); + } + catch(Exception ioe) + { + mCanStartNewRecorders = false; + + mLog.error("Error attempting to start new audio wave recorder. All (future) audio recording " + + "is disabled", ioe); + + if(recorder != null) { - recorder = new RealBufferWaveRecorder(AUDIO_SAMPLE_RATE, filePrefix); - - recorder.start(ThreadPool.SCHEDULED); - - recorder.receive(audioPacket.getAudioBuffer()); - mRecorders.put(identifier, recorder); - } - catch(Exception ioe) - { - mCanStartNewRecorders = false; - - mLog.error("Error attempting to start new audio wave recorder. All (future) audio recording " + - "is disabled", ioe); - - if(recorder != null) - { - recorder.stop(); - } + recorder.stop(); } } } @@ -245,11 +242,8 @@ public class RecorderManager implements Listener @Override public void run() { - synchronized(mRecorders) - { - processBuffers(); - removeIdleRecorders(); - } + processBuffers(); + removeIdleRecorders(); } } }