rdpContext* rdpcontext;
BOOL attached;
wStream* data;
- wStream* buffer;
AUDIO_FORMAT* format;
UINT32 FramesPerPacket;
freerdp_dsp_context_free(audin->dsp_context);
Stream_Free(audin->data, TRUE);
- Stream_Free(audin->buffer, TRUE);
free(audin->subsystem);
free(audin->device_name);
free(audin->listener_callback);
audin->log = WLog_Get(TAG);
audin->data = Stream_New(NULL, 4096);
- audin->buffer = Stream_New(NULL, 4096);
- if (!audin->data || !audin->buffer)
+ if (!audin->data)
goto out;
audin->dsp_context = freerdp_dsp_context_new(TRUE);
}
else
{
- int samples, rest;
- rest = samples = context->resampled->nb_samples;
+ int copied = 0;
+ int rest = context->resampled->nb_samples;
do
{
- int restSamples;
- int inSamples = samples;
+ int inSamples = rest;
- if (samples + context->bufferedSamples > context->context->frame_size)
+ if (inSamples + context->bufferedSamples > context->context->frame_size)
inSamples = context->context->frame_size - context->bufferedSamples;
- restSamples = samples - inSamples;
rc = av_samples_copy(context->buffered->extended_data, context->resampled->extended_data,
- context->bufferedSamples, 0, inSamples,
+ context->bufferedSamples, copied, inSamples,
context->context->channels, context->context->sample_fmt);
rest -= inSamples;
+ copied += inSamples;
context->bufferedSamples += inSamples;
if (context->context->frame_size <= context->bufferedSamples)
context->bufferedSamples = 0;
}
-
- if (restSamples > 0)
- {
- rc = av_samples_copy(context->buffered->extended_data, context->resampled->extended_data,
- context->bufferedSamples, inSamples, restSamples,
- context->context->channels, context->context->sample_fmt);
- rest -= restSamples;
- context->bufferedSamples += restSamples;
- }
}
while (rest > 0);