fix FS#13060 - Seeking in long opus files leads to crash on Sansa Clip+

- increase decoder thread stack size just enough (2KiB) to
  avoid stack overflows when seeking in opus files
- only do so on devices with at least 8MiB of RAM

Change-Id: I7e7182ae866338b4aad6ed7e32391ddd667121bd
This commit is contained in:
Martin Nowak 2018-08-19 10:42:04 +02:00 committed by Solomon Peachy
parent a454b7f9ef
commit e18425197e

View file

@ -90,7 +90,9 @@ extern struct codec_api ci; /* from codecs.c */
static unsigned int codec_thread_id; /* For modifying thread priority later */
static struct event_queue codec_queue SHAREDBSS_ATTR;
static struct queue_sender_list codec_queue_sender_list SHAREDBSS_ATTR;
static long codec_stack[(DEFAULT_STACK_SIZE + 0x2000)/sizeof(long)] IBSS_ATTR;
/* Workaround stack overflow in opus codec on highmem devices (see FS#13060). */
#define WORKAROUND_FS13060 (MEMORYSIZE >= 8 ? 0x800 : 0)
static long codec_stack[(DEFAULT_STACK_SIZE + 0x2000 + WORKAROUND_FS13060)/sizeof(long)] IBSS_ATTR;
static const char codec_thread_name[] = "codec";
static void unload_codec(void);