summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dxr3demuxdevice.h2
-rw-r--r--dxr3device.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/dxr3demuxdevice.h b/dxr3demuxdevice.h
index 52986cf..aa81c3e 100644
--- a/dxr3demuxdevice.h
+++ b/dxr3demuxdevice.h
@@ -48,7 +48,7 @@ public:
void SetReplayMode();
void SetTrickMode(eDxr3TrickState trickState, int Speed = 1);
- int DemuxPes(const uint8_t* buf, int length, bool bAc3Dts = false);
+ int DemuxPes(const uint8_t* buf, int length, bool bAc3Dts);
int DemuxAudioPes(const uint8_t* buf, int length);
void StillPicture();
diff --git a/dxr3device.c b/dxr3device.c
index 8c7f1df..41bf9cc 100644
--- a/dxr3device.c
+++ b/dxr3device.c
@@ -204,10 +204,12 @@ int cDxr3Device::PlayAudio(const uchar *Data, int Length, uchar Id)
return Length;
}
+ bool isAc3 = ((Id & 0xF0) == 0x80) || Id == 0xbd;
+
if (m_PlayMode == pmAudioOnly) {
return m_DemuxDevice.DemuxAudioPes(Data, Length);
} else {
- return m_DemuxDevice.DemuxPes(Data, Length);
+ return m_DemuxDevice.DemuxPes(Data, Length, isAc3);
}
}