From 3b3ed7af3b4837440af62e7af4fe5e0e2df17559 Mon Sep 17 00:00:00 2001 From: Paul McLean Date: Tue, 11 Apr 2017 12:52:05 -0700 Subject: [PATCH] Optimize HW_AV_SYNC playback by avoiding multiple timestamp block allocations. Bug: 33627517 Test: CTS and Manual Change-Id: Ic27d630d27efef48fc0d1db023aaec556e62e073 --- media/java/android/media/AudioTrack.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index 7f5d3a084cb4..bf5939fa1737 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -2523,8 +2523,11 @@ public class AudioTrack extends PlayerBase mAvSyncHeader = ByteBuffer.allocate(16); mAvSyncHeader.order(ByteOrder.BIG_ENDIAN); mAvSyncHeader.putInt(0x55550001); - mAvSyncHeader.putInt(sizeInBytes); - mAvSyncHeader.putLong(timestamp); + } + + if (mAvSyncBytesRemaining == 0) { + mAvSyncHeader.putInt(4, sizeInBytes); + mAvSyncHeader.putLong(8, timestamp); mAvSyncHeader.position(0); mAvSyncBytesRemaining = sizeInBytes; } @@ -2556,9 +2559,6 @@ public class AudioTrack extends PlayerBase } mAvSyncBytesRemaining -= ret; - if (mAvSyncBytesRemaining == 0) { - mAvSyncHeader = null; - } return ret; } -- 2.11.0