diff options
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.java | 40 |
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)); } |