blob: 661799510fd16469194b483d4d69b0c7f7fe32a4 [file] [log] [blame]
package com.android.tv.tuner.tvinput.factory;
import android.content.Context;
import android.media.tv.TvInputService.Session;
import com.android.tv.tuner.source.TsDataSourceManager;
import com.android.tv.tuner.tvinput.TunerSession;
import com.android.tv.tuner.tvinput.TunerSessionExoV2;
import com.android.tv.tuner.tvinput.datamanager.ChannelDataManager;
import com.android.tv.common.flags.ConcurrentDvrPlaybackFlags;
import com.android.tv.common.flags.Exoplayer2Flags;
import javax.inject.Inject;
/** Creates a {@link TunerSessionFactory}. */
public class TunerSessionFactoryImpl implements TunerSessionFactory {
private final Exoplayer2Flags mExoplayer2Flags;
private final ConcurrentDvrPlaybackFlags mConcurrentDvrPlaybackFlags;
private final TsDataSourceManager.Factory mTsDataSourceManagerFactory;
@Inject
public TunerSessionFactoryImpl(
Exoplayer2Flags exoplayer2Flags,
ConcurrentDvrPlaybackFlags concurrentDvrPlaybackFlags,
TsDataSourceManager.Factory tsDataSourceManagerFactory) {
mExoplayer2Flags = exoplayer2Flags;
mConcurrentDvrPlaybackFlags = concurrentDvrPlaybackFlags;
mTsDataSourceManagerFactory = tsDataSourceManagerFactory;
}
@Override
public Session create(
Context context,
ChannelDataManager channelDataManager,
SessionReleasedCallback releasedCallback) {
return mExoplayer2Flags.enabled()
? new TunerSessionExoV2(
context,
channelDataManager,
releasedCallback,
mConcurrentDvrPlaybackFlags,
mTsDataSourceManagerFactory)
: new TunerSession(
context,
channelDataManager,
releasedCallback,
mConcurrentDvrPlaybackFlags,
mTsDataSourceManagerFactory);
}
}