Commit e4a3483d by []inger Committed by Oliver Woodman

Propagate audioSessionId.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=127300225
parent 11e2e0e6
......@@ -150,6 +150,11 @@ public class EventLogger implements ExoPlayer.EventListener, SimpleExoPlayer.Deb
}
@Override
public void onAudioSessionId(int audioSessionId) {
Log.d(TAG, "audioSessionId [" + audioSessionId + "]");
}
@Override
public void onAudioDecoderInitialized(String decoderName, long elapsedRealtimeMs,
long initializationDurationMs) {
Log.d(TAG, "audioDecoderInitialized [" + getSessionTimeString() + ", " + decoderName + "]");
......
......@@ -35,6 +35,13 @@ public interface AudioRendererEventListener {
void onAudioEnabled(CodecCounters counters);
/**
* Invoked when the audio session is set.
*
* @param audioSessionId The audio session id.
*/
void onAudioSessionId(int audioSessionId);
/**
* Invoked when a decoder is created.
*
* @param decoderName The decoder that was created.
......@@ -142,6 +149,17 @@ public interface AudioRendererEventListener {
}
}
public void audioSessionId(final int audioSessionId) {
if (listener != null) {
handler.post(new Runnable() {
@Override
public void run() {
listener.onAudioSessionId(audioSessionId);
}
});
}
}
}
}
......@@ -338,6 +338,7 @@ public class MediaCodecAudioRenderer extends MediaCodecRenderer implements Media
audioTrack.initialize(audioSessionId);
} else {
audioSessionId = audioTrack.initialize();
eventDispatcher.audioSessionId(audioSessionId);
onAudioSessionId(audioSessionId);
}
audioTrackHasData = false;
......
......@@ -16,6 +16,7 @@
package com.google.android.exoplayer2;
import com.google.android.exoplayer2.audio.AudioCapabilities;
import com.google.android.exoplayer2.audio.AudioTrack;
import com.google.android.exoplayer2.drm.DrmSessionManager;
import com.google.android.exoplayer2.metadata.MetadataRenderer;
import com.google.android.exoplayer2.metadata.id3.Id3Frame;
......@@ -62,6 +63,7 @@ public final class SimpleExoPlayer implements ExoPlayer {
*/
public interface DebugListener {
void onAudioEnabled(CodecCounters counters);
void onAudioSessionId(int audioSessionId);
void onAudioDecoderInitialized(String decoderName, long elapsedRealtimeMs,
long initializationDurationMs);
void onAudioFormatChanged(Format format);
......@@ -109,6 +111,7 @@ public final class SimpleExoPlayer implements ExoPlayer {
private DebugListener debugListener;
private CodecCounters videoCodecCounters;
private CodecCounters audioCodecCounters;
private int audioSessionId;
/* package */ SimpleExoPlayer(Context context, TrackSelector trackSelector,
LoadControl loadControl, DrmSessionManager drmSessionManager,
......@@ -143,6 +146,7 @@ public final class SimpleExoPlayer implements ExoPlayer {
}
this.videoRendererCount = videoRendererCount;
this.audioRendererCount = audioRendererCount;
this.audioSessionId = AudioTrack.SESSION_ID_NOT_SET;
// Build the player and associated objects.
player = new ExoPlayerImpl(renderers, trackSelector, loadControl);
......@@ -245,6 +249,14 @@ public final class SimpleExoPlayer implements ExoPlayer {
}
/**
* @return The audio session identifier. If not set {@code AudioTrack.SESSION_ID_NOT_SET} is
* returned.
*/
public int getAudioSessionId() {
return audioSessionId;
}
/**
* @return The {@link CodecCounters} for video, or null if there is no video component to the
* current media.
*/
......@@ -548,6 +560,14 @@ public final class SimpleExoPlayer implements ExoPlayer {
}
@Override
public void onAudioSessionId(int sessionId) {
audioSessionId = sessionId;
if (debugListener != null) {
debugListener.onAudioSessionId(sessionId);
}
}
@Override
public void onAudioDecoderInitialized(String decoderName, long initializedTimestampMs,
long initializationDurationMs) {
if (debugListener != null) {
......@@ -579,6 +599,7 @@ public final class SimpleExoPlayer implements ExoPlayer {
}
audioFormat = null;
audioCodecCounters = null;
audioSessionId = AudioTrack.SESSION_ID_NOT_SET;
}
// TextRendererOutput implementation
......
......@@ -189,6 +189,7 @@ public abstract class AudioDecoderRenderer extends Renderer implements MediaCloc
audioTrack.initialize(audioSessionId);
} else {
audioSessionId = audioTrack.initialize();
eventDispatcher.audioSessionId(audioSessionId);
onAudioSessionId(audioSessionId);
}
audioTrackHasData = false;
......
......@@ -221,6 +221,11 @@ public abstract class ExoHostedTest implements HostedTest, ExoPlayer.EventListen
}
@Override
public void onAudioSessionId(int audioSessionId) {
Log.d(tag, "audioSessionId [" + audioSessionId + "]");
}
@Override
public void onAudioDecoderInitialized(String decoderName, long elapsedRealtimeMs,
long initializationDurationMs) {
Log.d(tag, "audioDecoderInitialized [" + decoderName + "]");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment