DSheirer / jmbe

Java AMBE/IMBE audio decoder
GNU General Public License v3.0
81 stars 29 forks source link

ToneGenerator NPE #40

Closed DSheirer closed 2 years ago

DSheirer commented 4 years ago

Encountered an NPE while developing DMR decoder.

07:51:01.901 ERROR i.g.d.m.d.d.m.v.DMRAudioModule - Error synthesizing AMBE audio - continuing [null] [262MB/704MB 37%] java.lang.NullPointerException: null at jmbe.codec.ambe.ToneGenerator.generate(ToneGenerator.java:66) at jmbe.codec.ambe.AMBESynthesizer.getTone(AMBESynthesizer.java:84) at jmbe.codec.ambe.AMBESynthesizer.getAudio(AMBESynthesizer.java:102) at jmbe.codec.ambe.AMBEAudioCodec.getAudio(AMBEAudioCodec.java:58) at jmbe.codec.ambe.AMBEAudioCodec.getAudio(AMBEAudioCodec.java:50) at jmbe.codec.ambe.AMBEAudioCodec.getAudioWithMetadata(AMBEAudioCodec.java:72) at io.github.dsheirer.module.decode.dmr.message.voice.DMRAudioModule.produceAudio(DMRAudioModule.java:197) at io.github.dsheirer.module.decode.dmr.message.voice.DMRAudioModule.processAudio(DMRAudioModule.java:185) at io.github.dsheirer.module.decode.dmr.message.voice.DMRAudioModule.receive(DMRAudioModule.java:127) at io.github.dsheirer.module.decode.dmr.message.voice.DMRAudioModule.receive(DMRAudioModule.java:57) at io.github.dsheirer.sample.Broadcaster.broadcast(Broadcaster.java:152) at io.github.dsheirer.sample.Broadcaster.receive(Broadcaster.java:59) at io.github.dsheirer.module.decode.Decoder$MessageDistributor.receive(Decoder.java:103) at io.github.dsheirer.module.decode.Decoder$MessageDistributor.receive(Decoder.java:96) at io.github.dsheirer.module.decode.dmr.DMRMessageProcessor.dispatch(DMRMessageProcessor.java:207) at io.github.dsheirer.module.decode.dmr.DMRMessageProcessor.receive(DMRMessageProcessor.java:197) at io.github.dsheirer.module.decode.dmr.DMRMessageProcessor.receive(DMRMessageProcessor.java:57) at io.github.dsheirer.module.decode.dmr.DMRMessageFramer.burstDetected(DMRMessageFramer.java:205) at io.github.dsheirer.module.decode.dmr.DMRBurstFramer.dispatch(DMRBurstFramer.java:253) at io.github.dsheirer.module.decode.dmr.DMRBurstFramer.receive(DMRBurstFramer.java:152) at io.github.dsheirer.module.decode.dmr.DMRMessageFramer.receive(DMRMessageFramer.java:156) at io.github.dsheirer.module.decode.dmr.DMRMessageFramer.receive(DMRMessageFramer.java:49) at io.github.dsheirer.sample.Broadcaster.broadcast(Broadcaster.java:152) at io.github.dsheirer.sample.Broadcaster.receive(Broadcaster.java:59) at io.github.dsheirer.dsp.psk.PSKDemodulator.broadcast(PSKDemodulator.java:58) at io.github.dsheirer.dsp.psk.DQPSKDecisionDirectedDemodulator.calculateSymbol(DQPSKDecisionDirectedDemodulator.java:88) at io.github.dsheirer.dsp.psk.PSKDemodulator.receive(PSKDemodulator.java:115) at io.github.dsheirer.dsp.psk.PSKDemodulator.receive(PSKDemodulator.java:89) at io.github.dsheirer.module.decode.dmr.DMRStandardDecoder.receive(DMRStandardDecoder.java:109) at io.github.dsheirer.module.decode.dmr.DMRStandardDecoder.receive(DMRStandardDecoder.java:44) at io.github.dsheirer.sample.buffer.ReusableBufferBroadcaster.broadcast(ReusableBufferBroadcaster.java:42) at io.github.dsheirer.sample.buffer.ReusableBufferBroadcaster.broadcast(ReusableBufferBroadcaster.java:23) at io.github.dsheirer.sample.Broadcaster.receive(Broadcaster.java:59) at io.github.dsheirer.sample.buffer.ReusableComplexBufferAssembler.flush(ReusableComplexBufferAssembler.java:158) at io.github.dsheirer.sample.buffer.ReusableComplexBufferAssembler.receive(ReusableComplexBufferAssembler.java:132) at io.github.dsheirer.sample.buffer.ReusableComplexBufferAssembler.receive(ReusableComplexBufferAssembler.java:144) at io.github.dsheirer.dsp.filter.channelizer.output.TwoChannelOutputProcessor.process(TwoChannelOutputProcessor.java:117) at io.github.dsheirer.dsp.filter.channelizer.output.ChannelOutputProcessor.processChannelResults(ChannelOutputProcessor.java:124) at io.github.dsheirer.dsp.filter.channelizer.PolyphaseChannelSource.processSamples(PolyphaseChannelSource.java:248) at io.github.dsheirer.source.tuner.channel.TunerChannelSource$ScheduledIntervalProcessor.run(TunerChannelSource.java:321) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:832)