mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-10 08:51:28 +12:00
Audio decoding
This commit is contained in:
parent
c4d9223034
commit
38bfbe2c40
11 changed files with 355 additions and 95 deletions
|
@ -18,9 +18,9 @@ void dmuxQueryEsAttr(u32 info_addr /* may be 0 */, const mem_ptr_t<CellCodecEsFi
|
|||
const u32 esSpecificInfo_addr, mem_ptr_t<CellDmuxEsAttr> attr)
|
||||
{
|
||||
if (esFilterId->filterIdMajor >= 0xe0)
|
||||
attr->memSize = 0x3000000; // 0x45fa49 from ps3
|
||||
attr->memSize = 0x2000000/2; // 0x45fa49 from ps3
|
||||
else
|
||||
attr->memSize = 0x200000; // 0x73d9 from ps3
|
||||
attr->memSize = 0x80000; // 0x73d9 from ps3
|
||||
|
||||
cellDmux.Warning("*** filter(0x%x, 0x%x, 0x%x, 0x%x)", (u32)esFilterId->filterIdMajor, (u32)esFilterId->filterIdMinor,
|
||||
(u32)esFilterId->supplementalInfo1, (u32)esFilterId->supplementalInfo2);
|
||||
|
@ -131,7 +131,7 @@ u32 dmuxOpen(Demuxer* data)
|
|||
}
|
||||
|
||||
// read additional header:
|
||||
stream.peek(ch);
|
||||
stream.peek(ch); // ???
|
||||
//stream.skip(4);
|
||||
//pes.size += 4;
|
||||
|
||||
|
@ -148,26 +148,18 @@ u32 dmuxOpen(Demuxer* data)
|
|||
Sleep(1);
|
||||
}
|
||||
|
||||
/*if (es.hasunseen()) // hack, probably useless
|
||||
if (es.hasunseen()) // hack, probably useless
|
||||
{
|
||||
stream = backup;
|
||||
continue;
|
||||
}*/
|
||||
|
||||
//ConLog.Write("*** AT3+ AU sent (pts=0x%llx, dts=0x%llx)", pes.pts, pes.dts);
|
||||
}
|
||||
|
||||
stream.skip(4);
|
||||
len -= 4;
|
||||
u32 abc;
|
||||
stream.peek(abc);
|
||||
if (abc == 0x5548D00F)
|
||||
{
|
||||
stream.skip(8);
|
||||
len -= 8;
|
||||
}
|
||||
|
||||
es.push(stream, len - pes.size - 3, pes);
|
||||
es.finish(stream);
|
||||
//ConLog.Write("*** AT3+ AU sent (len=0x%x, pts=0x%llx)", len - pes.size - 3, pes.pts);
|
||||
|
||||
mem_ptr_t<CellDmuxEsMsg> esMsg(a128(dmux.memAddr) + (cb_add ^= 16));
|
||||
esMsg->msgType = CELL_DMUX_ES_MSG_TYPE_AU_FOUND;
|
||||
|
@ -213,11 +205,11 @@ u32 dmuxOpen(Demuxer* data)
|
|||
|
||||
if (pes.new_au && es.hasdata()) // new AU detected
|
||||
{
|
||||
/*if (es.hasunseen()) // hack, probably useless
|
||||
if (es.hasunseen()) // hack, probably useless
|
||||
{
|
||||
stream = backup;
|
||||
continue;
|
||||
}*/
|
||||
}
|
||||
es.finish(stream);
|
||||
// callback
|
||||
mem_ptr_t<CellDmuxEsMsg> esMsg(a128(dmux.memAddr) + (cb_add ^= 16));
|
||||
|
@ -298,7 +290,7 @@ u32 dmuxOpen(Demuxer* data)
|
|||
{
|
||||
case dmuxSetStream:
|
||||
{
|
||||
if (stream.discontinuity)
|
||||
if (task.stream.discontinuity)
|
||||
{
|
||||
for (u32 i = 0; i < 192; i++)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue