mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-27 21:24:42 +00:00
Add logging around data source reading.
This commit is contained in:
@@ -9,6 +9,8 @@ import androidx.media3.common.C;
|
||||
import androidx.media3.common.MediaItem;
|
||||
import androidx.media3.common.util.UnstableApi;
|
||||
import androidx.media3.datasource.DataSource;
|
||||
import androidx.media3.datasource.DataSpec;
|
||||
import androidx.media3.datasource.TransferListener;
|
||||
import androidx.media3.exoplayer.drm.DrmSessionManagerProvider;
|
||||
import androidx.media3.exoplayer.source.MediaSource;
|
||||
import androidx.media3.exoplayer.source.ProgressiveMediaSource;
|
||||
@@ -25,7 +27,7 @@ public final class SignalMediaSourceFactory implements MediaSource.Factory {
|
||||
private final ProgressiveMediaSource.Factory progressiveMediaSourceFactory;
|
||||
|
||||
public SignalMediaSourceFactory(@NonNull Context context) {
|
||||
DataSource.Factory attachmentDataSourceFactory = new SignalDataSource.Factory(context, null, null);
|
||||
DataSource.Factory attachmentDataSourceFactory = new SignalDataSource.Factory(context, null, ExoPlayerPool.DataSourceTransferListener.INSTANCE);
|
||||
ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory().setConstantBitrateSeekingEnabled(true);
|
||||
|
||||
progressiveMediaSourceFactory = new ProgressiveMediaSource.Factory(attachmentDataSourceFactory, extractorsFactory);
|
||||
|
||||
@@ -6,6 +6,8 @@ import androidx.annotation.OptIn
|
||||
import androidx.media3.common.MimeTypes
|
||||
import androidx.media3.common.util.UnstableApi
|
||||
import androidx.media3.datasource.DataSource
|
||||
import androidx.media3.datasource.DataSpec
|
||||
import androidx.media3.datasource.TransferListener
|
||||
import androidx.media3.exoplayer.ExoPlayer
|
||||
import androidx.media3.exoplayer.mediacodec.MediaCodecUtil
|
||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory
|
||||
@@ -24,7 +26,7 @@ import kotlin.time.Duration.Companion.seconds
|
||||
class SimpleExoPlayerPool(context: Context) : ExoPlayerPool<ExoPlayer>(MAXIMUM_RESERVED_PLAYERS) {
|
||||
private val context: Context = context.applicationContext
|
||||
private val okHttpClient = AppDependencies.okHttpClient.newBuilder().proxySelector(ContentProxySelector()).build()
|
||||
private val dataSourceFactory: DataSource.Factory = SignalDataSource.Factory(AppDependencies.application, okHttpClient, null)
|
||||
private val dataSourceFactory: DataSource.Factory = SignalDataSource.Factory(AppDependencies.application, okHttpClient, DataSourceTransferListener)
|
||||
private val mediaSourceFactory: MediaSource.Factory = DefaultMediaSourceFactory(dataSourceFactory)
|
||||
|
||||
init {
|
||||
@@ -213,6 +215,26 @@ abstract class ExoPlayerPool<T : ExoPlayer>(
|
||||
}
|
||||
}
|
||||
|
||||
@UnstableApi
|
||||
object DataSourceTransferListener : TransferListener {
|
||||
private val TAG = Log.tag(DataSourceTransferListener::class)
|
||||
override fun onTransferInitializing(source: DataSource, dataSpec: DataSpec, isNetwork: Boolean) {
|
||||
Log.d(TAG, "onTransferInitializing() for ${source.uri}")
|
||||
}
|
||||
|
||||
override fun onTransferStart(source: DataSource, dataSpec: DataSpec, isNetwork: Boolean) {
|
||||
Log.d(TAG, "onTransferStart() for ${source.uri}")
|
||||
}
|
||||
|
||||
override fun onBytesTransferred(source: DataSource, dataSpec: DataSpec, isNetwork: Boolean, bytesTransferred: Int) {
|
||||
Log.v(TAG, "$bytesTransferred bytes transferred for ${source.uri}")
|
||||
}
|
||||
|
||||
override fun onTransferEnd(source: DataSource, dataSpec: DataSpec, isNetwork: Boolean) {
|
||||
Log.d(TAG, "onTransferEnd() for ${source.uri}")
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract fun getMaxSimultaneousPlayback(): Int
|
||||
|
||||
data class PoolStats(
|
||||
|
||||
Reference in New Issue
Block a user