Audio decoding

This commit is contained in:
Nekotekina 2014-03-19 04:32:23 +04:00
parent c4d9223034
commit 38bfbe2c40
11 changed files with 355 additions and 95 deletions

View file

@ -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++)
{