diff options
-rw-r--r-- | apps/codec_thread.c | 3 | ||||
-rw-r--r-- | lib/rbcodec/codecs/opus.c | 3 |
2 files changed, 5 insertions, 1 deletions
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; | |||
92 | static struct queue_sender_list codec_queue_sender_list SHAREDBSS_ATTR; | 92 | static struct queue_sender_list codec_queue_sender_list SHAREDBSS_ATTR; |
93 | 93 | ||
94 | /* Workaround stack overflow in opus codec on highmem devices (see FS#13060). */ | 94 | /* Workaround stack overflow in opus codec on highmem devices (see FS#13060). */ |
95 | #if !defined(CPU_COLDFIRE) && (MEMORYSIZE >= 8) && defined(IRAMSIZE) && IRAMSIZE > (32 * 1024) | 95 | /* Fixed 2019-8-14 (see FS#13131) */ |
96 | #if 0 /*!defined(CPU_COLDFIRE) && (MEMORYSIZE >= 8) && defined(IRAMSIZE) && IRAMSIZE > (32 * 1024)*/ | ||
96 | #define WORKAROUND_FS13060 0x800 | 97 | #define WORKAROUND_FS13060 0x800 |
97 | #else | 98 | #else |
98 | #define WORKAROUND_FS13060 0 | 99 | #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) | |||
413 | LOGF("Opus seek page:%lld,%lld,%ld\n", | 413 | LOGF("Opus seek page:%lld,%lld,%ld\n", |
414 | seek_target, page_granule, (long)param); | 414 | seek_target, page_granule, (long)param); |
415 | opus_seek_page_granule(seek_target, page_granule, &oy, &os); | 415 | opus_seek_page_granule(seek_target, page_granule, &oy, &os); |
416 | /* reset the state to help ensure that subsequent packets won't | ||
417 | use state set by unrelated packets processed before seek */ | ||
418 | opus_decoder_ctl(st, OPUS_RESET_STATE); | ||
416 | } | 419 | } |
417 | 420 | ||
418 | ci->set_elapsed(param); | 421 | ci->set_elapsed(param); |