@@ -71,7 +71,7 @@ std::shared_ptr<short> FreeDVTransmitStep::execute(std::shared_ptr<short> inputS
7171 *numOutputSamples = 0 ;
7272
7373 short * inputPtr = inputSamples.get ();
74- while (numInputSamples > 0 )
74+ while (numInputSamples > 0 && inputPtr )
7575 {
7676 codec2_fifo_write (inputSampleFifo_, inputPtr++, 1 );
7777 numInputSamples--;
@@ -116,60 +116,4 @@ std::shared_ptr<short> FreeDVTransmitStep::execute(std::shared_ptr<short> inputS
116116 }
117117
118118 return std::shared_ptr<short >(outputSamples, std::default_delete<short []>());
119- #if 0
120- short* outputSamples = nullptr;
121-
122- int mode = freedv_get_mode(dv_);
123- int samplesUsedForFifo = freedv_get_n_speech_samples(dv_);
124- int numTransmitRuns = (codec2_fifo_used(inputSampleFifo_) + numInputSamples) / samplesUsedForFifo;
125- int nfreedv = freedv_get_n_nom_modem_samples(dv_);
126-
127- if (numTransmitRuns)
128- {
129- *numOutputSamples = freedv_get_n_nom_modem_samples(dv_) * numTransmitRuns;
130- outputSamples = new short[*numOutputSamples];
131- assert(outputSamples != nullptr);
132-
133- short codecInput[samplesUsedForFifo];
134- short* tmpOutput = outputSamples;
135- short* tmpInput = inputSamples.get();
136-
137- while (numInputSamples > 0)
138- {
139- codec2_fifo_write(inputSampleFifo_, tmpInput++, 1);
140- numInputSamples--;
141-
142- if (codec2_fifo_used(inputSampleFifo_) >= samplesUsedForFifo)
143- {
144- codec2_fifo_read(inputSampleFifo_, codecInput, samplesUsedForFifo);
145-
146- if (mode == FREEDV_MODE_800XA)
147- {
148- /* 800XA doesn't support complex output just yet */
149- freedv_tx(dv_, tmpOutput, codecInput);
150- }
151- else
152- {
153- COMP tx_fdm[nfreedv];
154- COMP tx_fdm_offset[nfreedv];
155-
156- freedv_comptx(dv_, tx_fdm, codecInput);
157-
158- freq_shift_coh(tx_fdm_offset, tx_fdm, getFreqOffsetFn_(), getOutputSampleRate(), &txFreqOffsetPhaseRectObj_, nfreedv);
159- for(int i = 0; i<nfreedv; i++)
160- tmpOutput[i] = tx_fdm_offset[i].real;
161- }
162-
163- tmpOutput += samplesUsedForFifo;
164- }
165- }
166- }
167- else
168- {
169- codec2_fifo_write(inputSampleFifo_, inputSamples.get(), numInputSamples);
170- *numOutputSamples = 0;
171- }
172-
173- return std::shared_ptr<short>(outputSamples, std::default_delete<short[]>());
174- #endif
175119}
0 commit comments