diff options
-rw-r--r-- | dxr3demuxdevice.h | 2 | ||||
-rw-r--r-- | dxr3device.c | 4 |
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); } } |