Finally fix FS#11476 (data abort when playing some sv8 mpc files on lowmem targets like Clip+/Fuzev1/Fuzev2). This fix disables loading of seek tables from the sv8 bitstream. Those table are located at the end of sv8-files. When playing sv8 files this resulted in seek to filebegin, then fileend, then back to filebegin. Such seeking behaviour results in heavy rebuffering when playing files on targets with low RAM.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28197 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
0a7baec5ef
commit
32838e96d0
1 changed files with 4 additions and 2 deletions
|
@ -239,6 +239,7 @@ static mpc_status mpc_demux_seek_init(mpc_demux * d)
|
||||||
return MPC_STATUS_OK;
|
return MPC_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* rockbox: do not use
|
||||||
static void mpc_demux_ST(mpc_demux * d)
|
static void mpc_demux_ST(mpc_demux * d)
|
||||||
{
|
{
|
||||||
mpc_uint64_t tmp;
|
mpc_uint64_t tmp;
|
||||||
|
@ -300,15 +301,14 @@ static void mpc_demux_SP(mpc_demux * d, int size, int block_size)
|
||||||
mpc_demux_seek(d, (ptr - size) * 8 + cur, 11);
|
mpc_demux_seek(d, (ptr - size) * 8 + cur, 11);
|
||||||
st_head_size = mpc_bits_get_block(&d->bits_reader, &b);
|
st_head_size = mpc_bits_get_block(&d->bits_reader, &b);
|
||||||
if (memcmp(b.key, "ST", 2) == 0) {
|
if (memcmp(b.key, "ST", 2) == 0) {
|
||||||
/* rockbox: not used
|
|
||||||
d->chap_pos = (ptr - size + b.size + st_head_size) * 8 + cur;
|
d->chap_pos = (ptr - size + b.size + st_head_size) * 8 + cur;
|
||||||
d->chap_nb = -1;
|
d->chap_nb = -1;
|
||||||
*/
|
|
||||||
mpc_demux_fill(d, (mpc_uint32_t) b.size, 0);
|
mpc_demux_fill(d, (mpc_uint32_t) b.size, 0);
|
||||||
mpc_demux_ST(d);
|
mpc_demux_ST(d);
|
||||||
}
|
}
|
||||||
mpc_demux_seek(d, cur, 11 + block_size);
|
mpc_demux_seek(d, cur, 11 + block_size);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
/* rockbox: not used
|
/* rockbox: not used
|
||||||
static void mpc_demux_chap_find(mpc_demux * d)
|
static void mpc_demux_chap_find(mpc_demux * d)
|
||||||
{
|
{
|
||||||
|
@ -458,10 +458,12 @@ static mpc_status mpc_demux_header(mpc_demux * d)
|
||||||
streaminfo_gain(&d->si, &d->bits_reader);
|
streaminfo_gain(&d->si, &d->bits_reader);
|
||||||
else if (memcmp(b.key, "EI", 2) == 0)
|
else if (memcmp(b.key, "EI", 2) == 0)
|
||||||
streaminfo_encoder_info(&d->si, &d->bits_reader);
|
streaminfo_encoder_info(&d->si, &d->bits_reader);
|
||||||
|
/* rockbox: do not use
|
||||||
else if (memcmp(b.key, "SO", 2) == 0)
|
else if (memcmp(b.key, "SO", 2) == 0)
|
||||||
mpc_demux_SP(d, size, (mpc_uint32_t) b.size);
|
mpc_demux_SP(d, size, (mpc_uint32_t) b.size);
|
||||||
else if (memcmp(b.key, "ST", 2) == 0)
|
else if (memcmp(b.key, "ST", 2) == 0)
|
||||||
mpc_demux_ST(d);
|
mpc_demux_ST(d);
|
||||||
|
*/
|
||||||
d->bits_reader.buff += b.size;
|
d->bits_reader.buff += b.size;
|
||||||
size = mpc_bits_get_block(&d->bits_reader, &b);
|
size = mpc_bits_get_block(&d->bits_reader, &b);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue