diff --git a/apps/codec_thread.c b/apps/codec_thread.c index 4eb85c8d71..807c0b6e8e 100644 --- a/apps/codec_thread.c +++ b/apps/codec_thread.c @@ -92,7 +92,8 @@ static struct event_queue codec_queue SHAREDBSS_ATTR; static struct queue_sender_list codec_queue_sender_list SHAREDBSS_ATTR; /* Workaround stack overflow in opus codec on highmem devices (see FS#13060). */ -#if !defined(CPU_COLDFIRE) && (MEMORYSIZE >= 8) && defined(IRAMSIZE) && IRAMSIZE > (32 * 1024) +/* Fixed 2019-8-14 (see FS#13131) */ +#if 0 /*!defined(CPU_COLDFIRE) && (MEMORYSIZE >= 8) && defined(IRAMSIZE) && IRAMSIZE > (32 * 1024)*/ #define WORKAROUND_FS13060 0x800 #else #define WORKAROUND_FS13060 0 diff --git a/lib/rbcodec/codecs/opus.c b/lib/rbcodec/codecs/opus.c index f0ad5e8ba4..c34c0b885b 100644 --- a/lib/rbcodec/codecs/opus.c +++ b/lib/rbcodec/codecs/opus.c @@ -413,6 +413,9 @@ enum codec_status codec_run(void) LOGF("Opus seek page:%lld,%lld,%ld\n", seek_target, page_granule, (long)param); opus_seek_page_granule(seek_target, page_granule, &oy, &os); + /* reset the state to help ensure that subsequent packets won't + use state set by unrelated packets processed before seek */ + opus_decoder_ctl(st, OPUS_RESET_STATE); } ci->set_elapsed(param);