From c38f9ba81cf8e4493e2d2324be9acf5d5e997b4b Mon Sep 17 00:00:00 2001 From: Rachad Date: Thu, 28 Aug 2014 19:02:20 -0700 Subject: [PATCH] Tunneled Video Playback: Fixed missing AudioHwSync for provided Audio session ID Bug: 17112525 Change-Id: I89509ada88462d4db7fc37007e0ffaea153da5cd --- media/java/android/media/MediaCodec.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java index 96e6ab9717a45..e64621c8914cd 100644 --- a/media/java/android/media/MediaCodec.java +++ b/media/java/android/media/MediaCodec.java @@ -557,12 +557,15 @@ final public class MediaCodec { int i = 0; for (Map.Entry entry: formatMap.entrySet()) { if (entry.getKey().equals(MediaFormat.KEY_AUDIO_SESSION_ID)) { - // TODO: Wire up as soon as AudioService is ready. Check entry.getValue() for - // non-integral type. - // long audioHwSync = audioService.getAudioHwSyncForSession(entry.getValue()); - long audioHwSync = 0; + int sessionId = 0; + try { + sessionId = (Integer)entry.getValue(); + } + catch (Exception e) { + throw new IllegalArgumentException("Wrong Session ID Parameter!"); + } keys[i] = "audio-hw-sync"; - values[i] = audioHwSync; + values[i] = AudioSystem.getAudioHwSyncForSession(sessionId); } else { keys[i] = entry.getKey(); values[i] = entry.getValue();