mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-14 10:37:38 -04:00
FS#10526: mpegplayer audio out of sync, reverts r22280
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22321 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
ac77c08f11
commit
0fe4417da8
1 changed files with 3 additions and 12 deletions
|
@ -643,8 +643,8 @@ static void audio_thread(void)
|
||||||
struct pcm_frame_header *dst_hdr = pcm_output_get_buffer();
|
struct pcm_frame_header *dst_hdr = pcm_output_get_buffer();
|
||||||
const char *src[2] =
|
const char *src[2] =
|
||||||
{ (char *)synth.pcm.samples[0], (char *)synth.pcm.samples[1] };
|
{ (char *)synth.pcm.samples[0], (char *)synth.pcm.samples[1] };
|
||||||
int out_count = rb->dsp_output_count(td.dsp, (synth.pcm.length *
|
int out_count = (synth.pcm.length * CLOCK_RATE
|
||||||
CLOCK_RATE + (td.samplerate - 1)) / td.samplerate);
|
+ (td.samplerate - 1)) / td.samplerate;
|
||||||
ssize_t size = sizeof(*dst_hdr) + out_count*4;
|
ssize_t size = sizeof(*dst_hdr) + out_count*4;
|
||||||
|
|
||||||
/* Wait for required amount of free buffer space */
|
/* Wait for required amount of free buffer space */
|
||||||
|
@ -657,17 +657,8 @@ static void audio_thread(void)
|
||||||
goto message_process;
|
goto message_process;
|
||||||
}
|
}
|
||||||
|
|
||||||
int inp_count = rb->dsp_input_count(td.dsp, out_count);
|
|
||||||
|
|
||||||
if (inp_count <= 0)
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* Input size has grown, no error, just don't write more than length */
|
|
||||||
if (inp_count > synth.pcm.length)
|
|
||||||
inp_count = synth.pcm.length;
|
|
||||||
|
|
||||||
out_count = rb->dsp_process(td.dsp, dst_hdr->data, src,
|
out_count = rb->dsp_process(td.dsp, dst_hdr->data, src,
|
||||||
inp_count);
|
synth.pcm.length);
|
||||||
|
|
||||||
if (out_count <= 0)
|
if (out_count <= 0)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue