summaryrefslogtreecommitdiff
path: root/dxr3audiodecoder.c
diff options
context:
space:
mode:
Diffstat (limited to 'dxr3audiodecoder.c')
-rw-r--r--dxr3audiodecoder.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/dxr3audiodecoder.c b/dxr3audiodecoder.c
index 645c6a3..0535ab7 100644
--- a/dxr3audiodecoder.c
+++ b/dxr3audiodecoder.c
@@ -99,8 +99,7 @@ void cDxr3AudioDecoder::Init()
// ==================================
//! decode given buffer
-void cDxr3AudioDecoder::Decode(const uint8_t* buf, int length, uint32_t pts,
- cDxr3SyncBuffer &aBuf)
+void cDxr3AudioDecoder::Decode(cDxr3PesFrame *frame, uint32_t pts, cDxr3SyncBuffer &aBuf)
{
int len;
int out_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
@@ -111,6 +110,9 @@ void cDxr3AudioDecoder::Decode(const uint8_t* buf, int length, uint32_t pts,
UNEXPECTED_PARAMETER_CHANGE
};
+ const uint8_t *buf = frame->GetPayload();
+ int length = frame->GetPayloadLength();
+
int i = 0;
for (i = 0; i < length-4 && !foundHeader; i++)
{
@@ -215,9 +217,11 @@ void cDxr3AudioDecoder::Decode(const uint8_t* buf, int length, uint32_t pts,
// ==================================
//! decode lpcm
-void cDxr3AudioDecoder::DecodeLpcm(const uint8_t* buf, int length,
- uint32_t pts, cDxr3SyncBuffer &aBuf)
+void cDxr3AudioDecoder::DecodeLpcm(cDxr3PesFrame *frame, uint32_t pts, cDxr3SyncBuffer &aBuf)
{
+ const uint8_t *buf = frame->GetPayload();
+ int length = frame->GetPayloadLength();
+
if (length > (LPCM_HEADER_LENGTH + 2))
{
// only even number of bytes are allowed