mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-06-02 04:36:57 -06:00
cellMusicDecode: Fix read position on prev/next track
This commit is contained in:
parent
1b5a895346
commit
883a6889e0
@ -90,6 +90,7 @@ struct music_decode
|
||||
case CELL_MUSIC_DECODE_CMD_PREV:
|
||||
{
|
||||
decoder.stop();
|
||||
read_pos = 0;
|
||||
|
||||
if (decoder.set_next_index(command == CELL_MUSIC_DECODE_CMD_NEXT) == umax)
|
||||
{
|
||||
@ -195,9 +196,10 @@ error_code cell_music_decode_read(vm::ptr<void> buf, vm::ptr<u32> startTime, u64
|
||||
|
||||
if (dec.decoder.m_size == 0)
|
||||
{
|
||||
return CELL_MUSIC_DECODE_ERROR_NO_LPCM_DATA;
|
||||
return { CELL_MUSIC_DECODE_ERROR_NO_LPCM_DATA, "m_size == 0" };
|
||||
}
|
||||
|
||||
ensure(dec.decoder.m_size >= dec.read_pos);
|
||||
const u64 size_left = dec.decoder.m_size - dec.read_pos;
|
||||
|
||||
if (dec.read_pos == 0)
|
||||
@ -229,10 +231,10 @@ error_code cell_music_decode_read(vm::ptr<void> buf, vm::ptr<u32> startTime, u64
|
||||
|
||||
if (size_to_read == 0)
|
||||
{
|
||||
return CELL_MUSIC_DECODE_ERROR_NO_LPCM_DATA; // TODO: speculative
|
||||
return { CELL_MUSIC_DECODE_ERROR_NO_LPCM_DATA, "size_to_read == 0" }; // TODO: speculative
|
||||
}
|
||||
|
||||
std::memcpy(buf.get_ptr(), &dec.decoder.data[dec.read_pos], size_to_read);
|
||||
std::memcpy(buf.get_ptr(), &::at32(dec.decoder.data, dec.read_pos), size_to_read);
|
||||
|
||||
if (size_to_read < reqSize)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user