From f6eaf45450a472c0a2ee838ec3568dd61055442b Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Mon, 10 May 2010 16:06:28 +0200 Subject: keep track of current audio pts value --- dxr3device.c | 8 ++++++++ dxr3device.h | 1 + 2 files changed, 9 insertions(+) diff --git a/dxr3device.c b/dxr3device.c index 938eac6..7c8b8fa 100644 --- a/dxr3device.c +++ b/dxr3device.c @@ -279,6 +279,14 @@ int cDxr3Device::PlayAudio(const uchar *Data, int Length, uchar Id) return Length; } + uint32_t pts = frame.pts(); + + if (pts == 0) { + pts = aPts; + } else { + aPts = pts; + } + bool isAc3 = ((Id & 0xF0) == 0x80) || Id == 0xbd; if (!isAc3) { diff --git a/dxr3device.h b/dxr3device.h index 59fe5ba..c4c0402 100644 --- a/dxr3device.h +++ b/dxr3device.h @@ -134,6 +134,7 @@ private: int fdSpu; uint32_t vPts; + uint32_t aPts; bool scrSet; int playCount; -- cgit v1.2.3