aboutsummaryrefslogtreecommitdiff
path: root/tuner/src/com/android/tv/tuner/exoplayer/buffer/RecordingSampleBuffer.java
diff options
context:
space:
mode:
Diffstat (limited to 'tuner/src/com/android/tv/tuner/exoplayer/buffer/RecordingSampleBuffer.java')
-rw-r--r--tuner/src/com/android/tv/tuner/exoplayer/buffer/RecordingSampleBuffer.java40
1 files changed, 14 insertions, 26 deletions
diff --git a/tuner/src/com/android/tv/tuner/exoplayer/buffer/RecordingSampleBuffer.java b/tuner/src/com/android/tv/tuner/exoplayer/buffer/RecordingSampleBuffer.java
index df2cd2e6..d95642c2 100644
--- a/tuner/src/com/android/tv/tuner/exoplayer/buffer/RecordingSampleBuffer.java
+++ b/tuner/src/com/android/tv/tuner/exoplayer/buffer/RecordingSampleBuffer.java
@@ -20,18 +20,14 @@ import android.os.ConditionVariable;
import android.support.annotation.IntDef;
import android.support.annotation.NonNull;
import android.util.Log;
-
import com.android.tv.tuner.exoplayer.MpegTsPlayer;
import com.android.tv.tuner.exoplayer.SampleExtractor;
-
import com.google.android.exoplayer.C;
import com.google.android.exoplayer.MediaFormat;
import com.google.android.exoplayer.SampleHolder;
import com.google.android.exoplayer.SampleSource;
import com.google.android.exoplayer.util.Assertions;
-import com.google.auto.factory.AutoFactory;
-import com.google.auto.factory.Provided;
-
+import com.android.tv.common.flags.ConcurrentDvrPlaybackFlags;
import java.io.IOException;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -73,7 +69,7 @@ public class RecordingSampleBuffer
private final BufferManager mBufferManager;
private final PlaybackBufferListener mBufferListener;
private final @BufferReason int mBufferReason;
- private final SampleChunkIoHelper.Factory mSampleChunkIoHelperFactory;
+ private final ConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags;
private int mTrackCount;
private boolean[] mTrackSelected;
@@ -102,42 +98,28 @@ public class RecordingSampleBuffer
};
/**
- * Factory for {@link RecordingSampleBuffer}.
- *
- * <p>This wrapper class keeps other classes from needing to reference the {@link AutoFactory}
- * generated class.
- */
- public interface Factory {
- public RecordingSampleBuffer create(
- BufferManager bufferManager,
- PlaybackBufferListener bufferListener,
- boolean enableTrickplay,
- @BufferReason int bufferReason);
- }
-
- /**
* Creates {@link BufferManager.SampleBuffer} with cached I/O backed by physical storage (e.g.
* trickplay,recording,recorded-playback).
*
* @param bufferManager the manager of {@link SampleChunk}
* @param bufferListener the listener for buffer I/O event
* @param enableTrickplay {@code true} when trickplay should be enabled
+ * @param concurrentDvrPlaybackFlags
* @param bufferReason the reason for caching samples {@link BufferReason}
*/
- @AutoFactory(implementing = Factory.class)
public RecordingSampleBuffer(
BufferManager bufferManager,
PlaybackBufferListener bufferListener,
boolean enableTrickplay,
- @BufferReason int bufferReason,
- @Provided SampleChunkIoHelper.Factory sampleChunkIoHelperFactory) {
+ ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
+ @BufferReason int bufferReason) {
mBufferManager = bufferManager;
mBufferListener = bufferListener;
+ mConcurrentDvrPlaybackFlags = concurrentDvrPlaybackFlags;
if (bufferListener != null) {
bufferListener.onBufferStateChanged(enableTrickplay);
}
mBufferReason = bufferReason;
- mSampleChunkIoHelperFactory = sampleChunkIoHelperFactory;
}
@Override
@@ -150,8 +132,14 @@ public class RecordingSampleBuffer
mTrackSelected = new boolean[mTrackCount];
mReadSampleQueues = new ArrayList<>();
mSampleChunkIoHelper =
- mSampleChunkIoHelperFactory.create(
- ids, mediaFormats, mBufferReason, mBufferManager, mSamplePool, mIoCallback);
+ new SampleChunkIoHelper(
+ ids,
+ mediaFormats,
+ mBufferReason,
+ mBufferManager,
+ mSamplePool,
+ mIoCallback,
+ mConcurrentDvrPlaybackFlags);
for (int i = 0; i < mTrackCount; ++i) {
mReadSampleQueues.add(i, new SampleQueue(mSamplePool));
}