summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2009-12-09 17:28:24 +0100
committerChristian Gmeiner <christian.gmeiner@gmail.com>2009-12-09 17:28:24 +0100
commitf58ade275c649976f1f1c54157b75befbbe4950c (patch)
treebc2aa18b3e10c2dd5170d0e4b04e4c8bc34fb09b
parent7b533c03eba85af0f8e5295a8c4f038902e9e56b (diff)
downloadvdr-plugin-dxr3-f58ade275c649976f1f1c54157b75befbbe4950c.tar.gz
vdr-plugin-dxr3-f58ade275c649976f1f1c54157b75befbbe4950c.tar.bz2
make call to cDxr3AudioDecoder::DecodeAc3Dts simpler
-rw-r--r--dxr3audiodecoder.c12
-rw-r--r--dxr3audiodecoder.h3
-rw-r--r--dxr3demuxdevice.c10
3 files changed, 8 insertions, 17 deletions
diff --git a/dxr3audiodecoder.c b/dxr3audiodecoder.c
index 99b68d2..95cd23f 100644
--- a/dxr3audiodecoder.c
+++ b/dxr3audiodecoder.c
@@ -201,15 +201,13 @@ void cDxr3AudioDecoder::DecodeLpcm(cDxr3PesFrame *frame, uint32_t pts, cDxr3Sync
// ==================================
//! decode ac3
-void cDxr3AudioDecoder::DecodeAc3Dts(const uint8_t* pPes, const uint8_t* buf,
- int length, uint32_t pts,
- cDxr3SyncBuffer &aBuf)
+void cDxr3AudioDecoder::DecodeAc3Dts(cDxr3PesFrame *frame, uint32_t pts, cDxr3SyncBuffer &aBuf)
{
- int headerLength = (int) (buf - pPes);
+ uint8_t *buf = (uint8_t *)frame->GetPayload();
+ int length = frame->GetPayloadLength();
- uint8_t* pBuf = (uint8_t*) pPes;
- ac3dtsDecoder.Check(pBuf + headerLength, length, pBuf);
- ac3dtsDecoder.Encapsulate(pBuf + headerLength, length);
+ ac3dtsDecoder.Check(buf, length, (uint8_t *)frame->GetPesStart());
+ ac3dtsDecoder.Encapsulate(buf, length);
cFrame* pFrame = 0;
while ((pFrame = rbuf.Get())) {
diff --git a/dxr3audiodecoder.h b/dxr3audiodecoder.h
index 825ae99..0283e4b 100644
--- a/dxr3audiodecoder.h
+++ b/dxr3audiodecoder.h
@@ -45,8 +45,7 @@ public:
void Decode(cDxr3PesFrame *frame, uint32_t pts, cDxr3SyncBuffer &aBuf);
void DecodeLpcm(cDxr3PesFrame *frame, uint32_t pts, cDxr3SyncBuffer &aBuf);
- void DecodeAc3Dts(const uint8_t* pPes, const uint8_t* buf, int length,
- uint32_t pts, cDxr3SyncBuffer &aBuf);
+ void DecodeAc3Dts(cDxr3PesFrame *frame, uint32_t pts, cDxr3SyncBuffer &aBuf);
void Reset()
{
diff --git a/dxr3demuxdevice.c b/dxr3demuxdevice.c
index f8f60b7..b9e7215 100644
--- a/dxr3demuxdevice.c
+++ b/dxr3demuxdevice.c
@@ -417,17 +417,11 @@ int cDxr3DemuxDevice::DemuxPes(const uint8_t* buf, int length, bool bAc3Dts)
&& bAc3Dts) {
if (m_synchState == DXR3_DEMUX_AUDIO_SYNCHED ||
m_synchState == DXR3_DEMUX_SYNCHED) {
- m_aDecoder.DecodeAc3Dts(pesFrame->GetPesStart(),
- pesFrame->GetPayload(),
- pesFrame->GetPayloadLength(),
- pts, m_aBuf);
+ m_aDecoder.DecodeAc3Dts(pesFrame, pts, m_aBuf);
} else {
if (pts) {
aPts = pts;
- m_aDecoder.DecodeAc3Dts(pesFrame->GetPesStart(),
- pesFrame->GetPayload(),
- pesFrame->GetPayloadLength(),
- pts, m_aBuf);
+ m_aDecoder.DecodeAc3Dts(pesFrame, pts, m_aBuf);
if (m_synchState == DXR3_DEMUX_VIDEO_SYNCHED) {
m_synchState = DXR3_DEMUX_SYNCHED;