opus: Add CodecCounters support

Fixes Issue #1047
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=111708934
This commit is contained in:
vigneshv 2016-01-08 10:49:28 -08:00 committed by Oliver Woodman
parent ab9e3bac46
commit bb55fd8e47
2 changed files with 10 additions and 0 deletions

View File

@ -15,6 +15,7 @@
*/
package com.google.android.exoplayer.ext.opus;
import com.google.android.exoplayer.CodecCounters;
import com.google.android.exoplayer.ExoPlaybackException;
import com.google.android.exoplayer.ExoPlayer;
import com.google.android.exoplayer.MediaClock;
@ -75,6 +76,8 @@ public final class LibopusAudioTrackRenderer extends SampleSourceTrackRenderer
*/
public static final int MSG_SET_VOLUME = 1;
public final CodecCounters codecCounters = new CodecCounters();
private final Handler eventHandler;
private final EventListener eventListener;
private final MediaFormatHolder formatHolder;
@ -191,6 +194,7 @@ public final class LibopusAudioTrackRenderer extends SampleSourceTrackRenderer
throw new ExoPlaybackException(e);
}
decoder.start();
codecCounters.codecInitCount++;
}
// Rendering loop.
@ -207,6 +211,7 @@ public final class LibopusAudioTrackRenderer extends SampleSourceTrackRenderer
notifyDecoderError(e);
throw new ExoPlaybackException(e);
}
codecCounters.ensureUpdated();
}
private void renderBuffer() throws OpusDecoderException, AudioTrack.InitializationException,
@ -253,6 +258,7 @@ public final class LibopusAudioTrackRenderer extends SampleSourceTrackRenderer
// Release the buffer if it was consumed.
if ((handleBufferResult & AudioTrack.RESULT_BUFFER_CONSUMED) != 0) {
decoder.releaseOutputBuffer(outputBuffer);
codecCounters.renderedOutputBufferCount++;
outputBuffer = null;
}
}
@ -372,6 +378,7 @@ public final class LibopusAudioTrackRenderer extends SampleSourceTrackRenderer
if (decoder != null) {
decoder.release();
decoder = null;
codecCounters.codecReleaseCount++;
}
audioTrack.release();
} finally {

View File

@ -192,6 +192,7 @@ public final class LibvpxVideoTrackRenderer extends SampleSourceTrackRenderer {
if (decoder == null) {
decoder = new VpxDecoderWrapper(outputMode);
decoder.start();
codecCounters.codecInitCount++;
}
// Rendering loop.
@ -202,6 +203,7 @@ public final class LibvpxVideoTrackRenderer extends SampleSourceTrackRenderer {
notifyDecoderError(e);
throw new ExoPlaybackException(e);
}
codecCounters.ensureUpdated();
}
private void processOutputBuffer(long positionUs, long elapsedRealtimeUs)
@ -406,6 +408,7 @@ public final class LibvpxVideoTrackRenderer extends SampleSourceTrackRenderer {
if (decoder != null) {
decoder.release();
decoder = null;
codecCounters.codecReleaseCount++;
}
} finally {
super.onDisabled();