[vlc-commits] FluidSynth: handle discontinuities
Rémi Denis-Courmont
git at videolan.org
Fri Jul 11 09:44:57 CEST 2014
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Jul 10 20:34:53 2014 +0300| [aa23dc4bc5f2c7b9516874eb8d20e3763442b28a] | committer: Jean-Baptiste Kempf
FluidSynth: handle discontinuities
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=aa23dc4bc5f2c7b9516874eb8d20e3763442b28a
---
modules/codec/fluidsynth.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/modules/codec/fluidsynth.c b/modules/codec/fluidsynth.c
index fe065d6..43a91f2 100644
--- a/modules/codec/fluidsynth.c
+++ b/modules/codec/fluidsynth.c
@@ -206,6 +206,16 @@ static block_t *DecodeBlock (decoder_t *p_dec, block_t **pp_block)
return NULL;
*pp_block = NULL;
+ if (p_block->i_flags & (BLOCK_FLAG_DISCONTINUITY|BLOCK_FLAG_CORRUPTED))
+ {
+ date_Set (&p_sys->end_date, 0);
+ //fluid_synth_system_reset (p_sys->synth);
+ fluid_synth_program_reset (p_sys->synth);
+ for (unsigned channel = 0; channel < 16; channel++)
+ for (unsigned note = 0; note < 128; note++)
+ fluid_synth_noteoff (p_sys->synth, channel, note);
+ }
+
if (p_block->i_pts > VLC_TS_INVALID && !date_Get (&p_sys->end_date))
date_Set (&p_sys->end_date, p_block->i_pts);
else
More information about the vlc-commits
mailing list