Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 12701a5d authored by Sebastiano Barezzi's avatar Sebastiano Barezzi Committed by Luca Stefani
Browse files

Twelve: Go back to default renderers factory

This was killing extensions handling

Change-Id: Ib1993ec6224167fd0a85a6db337e2adebae57d9e
parent d9d1270b
Loading
Loading
Loading
Loading
+19 −41
Original line number Diff line number Diff line
@@ -6,53 +6,31 @@
package org.lineageos.twelve.services

import android.content.Context
import android.os.Handler
import androidx.annotation.OptIn
import androidx.media3.common.util.UnstableApi
import androidx.media3.exoplayer.Renderer
import androidx.media3.exoplayer.RenderersFactory
import androidx.media3.exoplayer.audio.AudioRendererEventListener
import androidx.media3.exoplayer.DefaultRenderersFactory
import androidx.media3.exoplayer.audio.DefaultAudioOffloadSupportProvider
import androidx.media3.exoplayer.audio.DefaultAudioSink
import androidx.media3.exoplayer.audio.MediaCodecAudioRenderer
import androidx.media3.exoplayer.mediacodec.DefaultMediaCodecAdapterFactory
import androidx.media3.exoplayer.mediacodec.MediaCodecSelector
import androidx.media3.exoplayer.metadata.MetadataOutput
import androidx.media3.exoplayer.metadata.MetadataRenderer
import androidx.media3.exoplayer.text.TextOutput
import androidx.media3.exoplayer.text.TextRenderer
import androidx.media3.exoplayer.video.VideoRendererEventListener

@OptIn(UnstableApi::class)
class TwelveRenderersFactory(
    private val context: Context,
    private val enableAudioFloatOutput: Boolean,
) : RenderersFactory {
    override fun createRenderers(
        eventHandler: Handler,
        videoRendererEventListener: VideoRendererEventListener,
        audioRendererEventListener: AudioRendererEventListener,
        textRendererOutput: TextOutput,
        metadataRendererOutput: MetadataOutput
    ) = arrayOf<Renderer>(
        MediaCodecAudioRenderer(
            context,
            DefaultMediaCodecAdapterFactory(context),
            MediaCodecSelector.DEFAULT,
            true,
            eventHandler,
            audioRendererEventListener,
            DefaultAudioSink.Builder(context)
                .setEnableFloatOutput(enableAudioFloatOutput)
                .setEnableAudioTrackPlaybackParams(true)
    context: Context,
    enableAudioFloatOutput: Boolean,
) : DefaultRenderersFactory(context) {
    init {
        setEnableAudioFloatOutput(enableAudioFloatOutput)
        setEnableAudioTrackPlaybackParams(true)
    }

    override fun buildAudioSink(
        context: Context,
        enableFloatOutput: Boolean,
        enableAudioTrackPlaybackParams: Boolean
    ) = DefaultAudioSink.Builder(context)
        .setEnableFloatOutput(enableFloatOutput)
        .setEnableAudioTrackPlaybackParams(enableAudioTrackPlaybackParams)
        .setAudioProcessors(arrayOf(InfoAudioProcessor()))
        .setAudioTrackBufferSizeProvider(ProxyDefaultAudioTrackBufferSizeProvider)
        .setAudioOffloadSupportProvider(DefaultAudioOffloadSupportProvider(context))
        .build()

        ),
        MetadataRenderer(metadataRendererOutput, eventHandler.looper),
        MetadataRenderer(metadataRendererOutput, eventHandler.looper),
        TextRenderer(textRendererOutput, eventHandler.looper),
    )
}