LINE.apk(点击下载) / SimpleExoPlayer.java


package ai.clova.cic.clientlib.exoplayer2;

import ai.clova.cic.clientlib.exoplayer2.AudioBecomingNoisyManager;
import ai.clova.cic.clientlib.exoplayer2.AudioFocusManager;
import ai.clova.cic.clientlib.exoplayer2.Player;
import ai.clova.cic.clientlib.exoplayer2.PlayerMessage;
import ai.clova.cic.clientlib.exoplayer2.analytics.AnalyticsCollector;
import ai.clova.cic.clientlib.exoplayer2.analytics.AnalyticsListener;
import ai.clova.cic.clientlib.exoplayer2.audio.AudioAttributes;
import ai.clova.cic.clientlib.exoplayer2.audio.AudioListener;
import ai.clova.cic.clientlib.exoplayer2.audio.AudioRendererEventListener;
import ai.clova.cic.clientlib.exoplayer2.audio.AuxEffectInfo;
import ai.clova.cic.clientlib.exoplayer2.decoder.DecoderCounters;
import ai.clova.cic.clientlib.exoplayer2.drm.DefaultDrmSessionManager;
import ai.clova.cic.clientlib.exoplayer2.drm.DrmSessionManager;
import ai.clova.cic.clientlib.exoplayer2.drm.FrameworkMediaCrypto;
import ai.clova.cic.clientlib.exoplayer2.metadata.Metadata;
import ai.clova.cic.clientlib.exoplayer2.metadata.MetadataOutput;
import ai.clova.cic.clientlib.exoplayer2.source.MediaSource;
import ai.clova.cic.clientlib.exoplayer2.source.TrackGroupArray;
import ai.clova.cic.clientlib.exoplayer2.text.Cue;
import ai.clova.cic.clientlib.exoplayer2.text.TextOutput;
import ai.clova.cic.clientlib.exoplayer2.trackselection.DefaultTrackSelector;
import ai.clova.cic.clientlib.exoplayer2.trackselection.TrackSelectionArray;
import ai.clova.cic.clientlib.exoplayer2.trackselection.TrackSelector;
import ai.clova.cic.clientlib.exoplayer2.upstream.BandwidthMeter;
import ai.clova.cic.clientlib.exoplayer2.upstream.DefaultBandwidthMeter;
import ai.clova.cic.clientlib.exoplayer2.util.Assertions;
import ai.clova.cic.clientlib.exoplayer2.util.Clock;
import ai.clova.cic.clientlib.exoplayer2.util.Log;
import ai.clova.cic.clientlib.exoplayer2.util.PriorityTaskManager;
import ai.clova.cic.clientlib.exoplayer2.util.Util;
import ai.clova.cic.clientlib.exoplayer2.video.VideoDecoderOutputBufferRenderer;
import ai.clova.cic.clientlib.exoplayer2.video.VideoFrameMetadataListener;
import ai.clova.cic.clientlib.exoplayer2.video.VideoRendererEventListener;
import ai.clova.cic.clientlib.exoplayer2.video.spherical.CameraMotionListener;
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Rect;
import android.graphics.SurfaceTexture;
import android.media.PlaybackParams;
import android.os.Handler;
import android.os.Looper;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.TextureView;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.CopyOnWriteArraySet;

public class SimpleExoPlayer extends BasePlayer implements ExoPlayer, Player.AudioComponent, Player.VideoComponent, Player.TextComponent, Player.MetadataComponent {
    private static final String TAG = "SimpleExoPlayer";
    private final AnalyticsCollector analyticsCollector;
    private AudioAttributes audioAttributes;
    private final AudioBecomingNoisyManager audioBecomingNoisyManager;
    private final CopyOnWriteArraySet<AudioRendererEventListener> audioDebugListeners;
    private DecoderCounters audioDecoderCounters;
    private final AudioFocusManager audioFocusManager;
    private Format audioFormat;
    private final CopyOnWriteArraySet<AudioListener> audioListeners;
    private int audioSessionId;
    private float audioVolume;
    private final BandwidthMeter bandwidthMeter;
    private CameraMotionListener cameraMotionListener;
    private final ComponentListener componentListener;
    private List<Cue> currentCues;
    private final Handler eventHandler;
    private boolean hasNotifiedFullWrongThreadWarning;
    private boolean isPriorityTaskManagerRegistered;
    private MediaSource mediaSource;
    private final CopyOnWriteArraySet<MetadataOutput> metadataOutputs;
    private boolean ownsSurface;
    private final ExoPlayerImpl player;
    private boolean playerReleased;
    private PriorityTaskManager priorityTaskManager;
    public final Renderer[] renderers;
    private Surface surface;
    private int surfaceHeight;
    private SurfaceHolder surfaceHolder;
    private int surfaceWidth;
    private final CopyOnWriteArraySet<TextOutput> textOutputs;
    private TextureView textureView;
    private final CopyOnWriteArraySet<VideoRendererEventListener> videoDebugListeners;
    private DecoderCounters videoDecoderCounters;
    private VideoDecoderOutputBufferRenderer videoDecoderOutputBufferRenderer;
    private Format videoFormat;
    private VideoFrameMetadataListener videoFrameMetadataListener;
    private final CopyOnWriteArraySet<ai.clova.cic.clientlib.exoplayer2.video.VideoListener> videoListeners;
    private int videoScalingMode;
    private final WakeLockManager wakeLockManager;
    private final WifiLockManager wifiLockManager;

    public static final class Builder {
        private AnalyticsCollector analyticsCollector;
        private BandwidthMeter bandwidthMeter;
        private boolean buildCalled;
        private Clock clock;
        private final Context context;
        private LoadControl loadControl;
        private Looper looper;
        private final RenderersFactory renderersFactory;
        private TrackSelector trackSelector;
        private boolean useLazyPreparation;

        public Builder(Context context2) {
            this(context2, new DefaultRenderersFactory(context2));
        }

        /* JADX WARNING: Illegal instructions before constructor call */
        public Builder(Context context2, RenderersFactory renderersFactory2) {
            this(context2, renderersFactory2, r3, r4, r5, r6, new AnalyticsCollector(r9), true, r9);
            DefaultTrackSelector defaultTrackSelector = new DefaultTrackSelector(context2);
            DefaultLoadControl defaultLoadControl = new DefaultLoadControl();
            DefaultBandwidthMeter singletonInstance = DefaultBandwidthMeter.getSingletonInstance(context2);
            Looper looper2 = Util.getLooper();
            Clock clock2 = Clock.DEFAULT;
        }

        public Builder(Context context2, RenderersFactory renderersFactory2, TrackSelector trackSelector2, LoadControl loadControl2, BandwidthMeter bandwidthMeter2, Looper looper2, AnalyticsCollector analyticsCollector2, boolean z14, Clock clock2) {
            this.context = context2;
            this.renderersFactory = renderersFactory2;
            this.trackSelector = trackSelector2;
            this.loadControl = loadControl2;
            this.bandwidthMeter = bandwidthMeter2;
            this.looper = looper2;
            this.analyticsCollector = analyticsCollector2;
            this.useLazyPreparation = z14;
            this.clock = clock2;
        }

        public SimpleExoPlayer build() {
            Assertions.checkState(!this.buildCalled);
            this.buildCalled = true;
            return new SimpleExoPlayer(this.context, this.renderersFactory, this.trackSelector, this.loadControl, this.bandwidthMeter, this.analyticsCollector, this.clock, this.looper);
        }

        public Builder setAnalyticsCollector(AnalyticsCollector analyticsCollector2) {
            Assertions.checkState(!this.buildCalled);
            this.analyticsCollector = analyticsCollector2;
            return this;
        }

        public Builder setBandwidthMeter(BandwidthMeter bandwidthMeter2) {
            Assertions.checkState(!this.buildCalled);
            this.bandwidthMeter = bandwidthMeter2;
            return this;
        }

        public Builder setClock(Clock clock2) {
            Assertions.checkState(!this.buildCalled);
            this.clock = clock2;
            return this;
        }

        public Builder setLoadControl(LoadControl loadControl2) {
            Assertions.checkState(!this.buildCalled);
            this.loadControl = loadControl2;
            return this;
        }

        public Builder setLooper(Looper looper2) {
            Assertions.checkState(!this.buildCalled);
            this.looper = looper2;
            return this;
        }

        public Builder setTrackSelector(TrackSelector trackSelector2) {
            Assertions.checkState(!this.buildCalled);
            this.trackSelector = trackSelector2;
            return this;
        }

        public Builder setUseLazyPreparation(boolean z14) {
            Assertions.checkState(!this.buildCalled);
            this.useLazyPreparation = z14;
            return this;
        }
    }

    public final class ComponentListener implements VideoRendererEventListener, AudioRendererEventListener, TextOutput, MetadataOutput, SurfaceHolder.Callback, TextureView.SurfaceTextureListener, AudioFocusManager.PlayerControl, AudioBecomingNoisyManager.EventListener, Player.EventListener {
        private ComponentListener() {
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.AudioFocusManager.PlayerControl
        public void executePlayerCommand(int i14) {
            SimpleExoPlayer simpleExoPlayer = SimpleExoPlayer.this;
            simpleExoPlayer.updatePlayWhenReady(simpleExoPlayer.getPlayWhenReady(), i14);
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.AudioBecomingNoisyManager.EventListener
        public void onAudioBecomingNoisy() {
            SimpleExoPlayer.this.setPlayWhenReady(false);
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.audio.AudioRendererEventListener
        public void onAudioDecoderInitialized(String str, long j14, long j15) {
            Iterator it3 = SimpleExoPlayer.this.audioDebugListeners.iterator();
            while (it3.hasNext()) {
                ((AudioRendererEventListener) it3.next()).onAudioDecoderInitialized(str, j14, j15);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.audio.AudioRendererEventListener
        public void onAudioDisabled(DecoderCounters decoderCounters) {
            Iterator it3 = SimpleExoPlayer.this.audioDebugListeners.iterator();
            while (it3.hasNext()) {
                ((AudioRendererEventListener) it3.next()).onAudioDisabled(decoderCounters);
            }
            SimpleExoPlayer.this.audioFormat = null;
            SimpleExoPlayer.this.audioDecoderCounters = null;
            SimpleExoPlayer.this.audioSessionId = 0;
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.audio.AudioRendererEventListener
        public void onAudioEnabled(DecoderCounters decoderCounters) {
            SimpleExoPlayer.this.audioDecoderCounters = decoderCounters;
            Iterator it3 = SimpleExoPlayer.this.audioDebugListeners.iterator();
            while (it3.hasNext()) {
                ((AudioRendererEventListener) it3.next()).onAudioEnabled(decoderCounters);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.audio.AudioRendererEventListener
        public void onAudioInputFormatChanged(Format format) {
            SimpleExoPlayer.this.audioFormat = format;
            Iterator it3 = SimpleExoPlayer.this.audioDebugListeners.iterator();
            while (it3.hasNext()) {
                ((AudioRendererEventListener) it3.next()).onAudioInputFormatChanged(format);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.audio.AudioRendererEventListener
        public void onAudioSessionId(int i14) {
            if (SimpleExoPlayer.this.audioSessionId != i14) {
                SimpleExoPlayer.this.audioSessionId = i14;
                Iterator it3 = SimpleExoPlayer.this.audioListeners.iterator();
                while (it3.hasNext()) {
                    AudioListener audioListener = (AudioListener) it3.next();
                    if (!SimpleExoPlayer.this.audioDebugListeners.contains(audioListener)) {
                        audioListener.onAudioSessionId(i14);
                    }
                }
                Iterator it4 = SimpleExoPlayer.this.audioDebugListeners.iterator();
                while (it4.hasNext()) {
                    ((AudioRendererEventListener) it4.next()).onAudioSessionId(i14);
                }
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.audio.AudioRendererEventListener
        public void onAudioSinkUnderrun(int i14, long j14, long j15) {
            Iterator it3 = SimpleExoPlayer.this.audioDebugListeners.iterator();
            while (it3.hasNext()) {
                ((AudioRendererEventListener) it3.next()).onAudioSinkUnderrun(i14, j14, j15);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.text.TextOutput
        public void onCues(List<Cue> list) {
            SimpleExoPlayer.this.currentCues = list;
            Iterator it3 = SimpleExoPlayer.this.textOutputs.iterator();
            while (it3.hasNext()) {
                ((TextOutput) it3.next()).onCues(list);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.video.VideoRendererEventListener
        public void onDroppedFrames(int i14, long j14) {
            Iterator it3 = SimpleExoPlayer.this.videoDebugListeners.iterator();
            while (it3.hasNext()) {
                ((VideoRendererEventListener) it3.next()).onDroppedFrames(i14, j14);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.Player.EventListener
        public void onLoadingChanged(boolean z14) {
            SimpleExoPlayer simpleExoPlayer;
            if (SimpleExoPlayer.this.priorityTaskManager != null) {
                boolean z15 = false;
                if (z14 && !SimpleExoPlayer.this.isPriorityTaskManagerRegistered) {
                    SimpleExoPlayer.this.priorityTaskManager.add(0);
                    simpleExoPlayer = SimpleExoPlayer.this;
                    z15 = true;
                } else if (!z14 && SimpleExoPlayer.this.isPriorityTaskManagerRegistered) {
                    SimpleExoPlayer.this.priorityTaskManager.remove(0);
                    simpleExoPlayer = SimpleExoPlayer.this;
                } else {
                    return;
                }
                simpleExoPlayer.isPriorityTaskManagerRegistered = z15;
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.metadata.MetadataOutput
        public void onMetadata(Metadata metadata) {
            Iterator it3 = SimpleExoPlayer.this.metadataOutputs.iterator();
            while (it3.hasNext()) {
                ((MetadataOutput) it3.next()).onMetadata(metadata);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.Player.EventListener
        public void onPlayerStateChanged(boolean z14, int i14) {
            SimpleExoPlayer.this.updateWakeAndWifiLock();
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.video.VideoRendererEventListener
        public void onRenderedFirstFrame(Surface surface) {
            if (SimpleExoPlayer.this.surface == surface) {
                Iterator it3 = SimpleExoPlayer.this.videoListeners.iterator();
                while (it3.hasNext()) {
                    ((ai.clova.cic.clientlib.exoplayer2.video.VideoListener) it3.next()).onRenderedFirstFrame();
                }
            }
            Iterator it4 = SimpleExoPlayer.this.videoDebugListeners.iterator();
            while (it4.hasNext()) {
                ((VideoRendererEventListener) it4.next()).onRenderedFirstFrame(surface);
            }
        }

        public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i14, int i15) {
            SimpleExoPlayer.this.setVideoSurfaceInternal(new Surface(surfaceTexture), true);
            SimpleExoPlayer.this.maybeNotifySurfaceSizeChanged(i14, i15);
        }

        public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
            SimpleExoPlayer.this.setVideoSurfaceInternal(null, true);
            SimpleExoPlayer.this.maybeNotifySurfaceSizeChanged(0, 0);
            return true;
        }

        public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i14, int i15) {
            SimpleExoPlayer.this.maybeNotifySurfaceSizeChanged(i14, i15);
        }

        public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.video.VideoRendererEventListener
        public void onVideoDecoderInitialized(String str, long j14, long j15) {
            Iterator it3 = SimpleExoPlayer.this.videoDebugListeners.iterator();
            while (it3.hasNext()) {
                ((VideoRendererEventListener) it3.next()).onVideoDecoderInitialized(str, j14, j15);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.video.VideoRendererEventListener
        public void onVideoDisabled(DecoderCounters decoderCounters) {
            Iterator it3 = SimpleExoPlayer.this.videoDebugListeners.iterator();
            while (it3.hasNext()) {
                ((VideoRendererEventListener) it3.next()).onVideoDisabled(decoderCounters);
            }
            SimpleExoPlayer.this.videoFormat = null;
            SimpleExoPlayer.this.videoDecoderCounters = null;
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.video.VideoRendererEventListener
        public void onVideoEnabled(DecoderCounters decoderCounters) {
            SimpleExoPlayer.this.videoDecoderCounters = decoderCounters;
            Iterator it3 = SimpleExoPlayer.this.videoDebugListeners.iterator();
            while (it3.hasNext()) {
                ((VideoRendererEventListener) it3.next()).onVideoEnabled(decoderCounters);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.video.VideoRendererEventListener
        public void onVideoInputFormatChanged(Format format) {
            SimpleExoPlayer.this.videoFormat = format;
            Iterator it3 = SimpleExoPlayer.this.videoDebugListeners.iterator();
            while (it3.hasNext()) {
                ((VideoRendererEventListener) it3.next()).onVideoInputFormatChanged(format);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.video.VideoRendererEventListener
        public void onVideoSizeChanged(int i14, int i15, int i16, float f14) {
            Iterator it3 = SimpleExoPlayer.this.videoListeners.iterator();
            while (it3.hasNext()) {
                ai.clova.cic.clientlib.exoplayer2.video.VideoListener videoListener = (ai.clova.cic.clientlib.exoplayer2.video.VideoListener) it3.next();
                if (!SimpleExoPlayer.this.videoDebugListeners.contains(videoListener)) {
                    videoListener.onVideoSizeChanged(i14, i15, i16, f14);
                }
            }
            Iterator it4 = SimpleExoPlayer.this.videoDebugListeners.iterator();
            while (it4.hasNext()) {
                ((VideoRendererEventListener) it4.next()).onVideoSizeChanged(i14, i15, i16, f14);
            }
        }

        @Override // ai.clova.cic.clientlib.exoplayer2.AudioFocusManager.PlayerControl
        public void setVolumeMultiplier(float f14) {
            SimpleExoPlayer.this.sendVolumeToRenderers();
        }

        public void surfaceChanged(SurfaceHolder surfaceHolder, int i14, int i15, int i16) {
            SimpleExoPlayer.this.maybeNotifySurfaceSizeChanged(i15, i16);
        }

        public void surfaceCreated(SurfaceHolder surfaceHolder) {
            SimpleExoPlayer.this.setVideoSurfaceInternal(surfaceHolder.getSurface(), false);
        }

        public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
            SimpleExoPlayer.this.setVideoSurfaceInternal(null, false);
            SimpleExoPlayer.this.maybeNotifySurfaceSizeChanged(0, 0);
        }
    }

    @Deprecated
    public interface VideoListener extends ai.clova.cic.clientlib.exoplayer2.video.VideoListener {
    }

    @Deprecated
    public SimpleExoPlayer(Context context, RenderersFactory renderersFactory, TrackSelector trackSelector, LoadControl loadControl, DrmSessionManager<FrameworkMediaCrypto> drmSessionManager, BandwidthMeter bandwidthMeter2, AnalyticsCollector analyticsCollector2, Clock clock, Looper looper) {
        this.bandwidthMeter = bandwidthMeter2;
        this.analyticsCollector = analyticsCollector2;
        ComponentListener componentListener2 = new ComponentListener();
        this.componentListener = componentListener2;
        CopyOnWriteArraySet<ai.clova.cic.clientlib.exoplayer2.video.VideoListener> copyOnWriteArraySet = new CopyOnWriteArraySet<>();
        this.videoListeners = copyOnWriteArraySet;
        CopyOnWriteArraySet<AudioListener> copyOnWriteArraySet2 = new CopyOnWriteArraySet<>();
        this.audioListeners = copyOnWriteArraySet2;
        this.textOutputs = new CopyOnWriteArraySet<>();
        this.metadataOutputs = new CopyOnWriteArraySet<>();
        CopyOnWriteArraySet<VideoRendererEventListener> copyOnWriteArraySet3 = new CopyOnWriteArraySet<>();
        this.videoDebugListeners = copyOnWriteArraySet3;
        CopyOnWriteArraySet<AudioRendererEventListener> copyOnWriteArraySet4 = new CopyOnWriteArraySet<>();
        this.audioDebugListeners = copyOnWriteArraySet4;
        Handler handler = new Handler(looper);
        this.eventHandler = handler;
        Renderer[] createRenderers = renderersFactory.createRenderers(handler, componentListener2, componentListener2, componentListener2, componentListener2, drmSessionManager);
        this.renderers = createRenderers;
        this.audioVolume = 1.0f;
        this.audioSessionId = 0;
        this.audioAttributes = AudioAttributes.DEFAULT;
        this.videoScalingMode = 1;
        this.currentCues = Collections.emptyList();
        ExoPlayerImpl exoPlayerImpl = new ExoPlayerImpl(createRenderers, trackSelector, loadControl, bandwidthMeter2, clock, looper);
        this.player = exoPlayerImpl;
        analyticsCollector2.setPlayer(exoPlayerImpl);
        exoPlayerImpl.addListener(analyticsCollector2);
        exoPlayerImpl.addListener(componentListener2);
        copyOnWriteArraySet3.add(analyticsCollector2);
        copyOnWriteArraySet.add(analyticsCollector2);
        copyOnWriteArraySet4.add(analyticsCollector2);
        copyOnWriteArraySet2.add(analyticsCollector2);
        addMetadataOutput(analyticsCollector2);
        bandwidthMeter2.addEventListener(handler, analyticsCollector2);
        if (drmSessionManager instanceof DefaultDrmSessionManager) {
            ((DefaultDrmSessionManager) drmSessionManager).addListener(handler, analyticsCollector2);
        }
        this.audioBecomingNoisyManager = new AudioBecomingNoisyManager(context, handler, componentListener2);
        this.audioFocusManager = new AudioFocusManager(context, handler, componentListener2);
        this.wakeLockManager = new WakeLockManager(context);
        this.wifiLockManager = new WifiLockManager(context);
    }

    public SimpleExoPlayer(Context context, RenderersFactory renderersFactory, TrackSelector trackSelector, LoadControl loadControl, BandwidthMeter bandwidthMeter2, AnalyticsCollector analyticsCollector2, Clock clock, Looper looper) {
        this(context, renderersFactory, trackSelector, loadControl, DrmSessionManager.getDummyDrmSessionManager(), bandwidthMeter2, analyticsCollector2, clock, looper);
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void maybeNotifySurfaceSizeChanged(int i14, int i15) {
        if (i14 != this.surfaceWidth || i15 != this.surfaceHeight) {
            this.surfaceWidth = i14;
            this.surfaceHeight = i15;
            Iterator<ai.clova.cic.clientlib.exoplayer2.video.VideoListener> it3 = this.videoListeners.iterator();
            while (it3.hasNext()) {
                it3.next().onSurfaceSizeChanged(i14, i15);
            }
        }
    }

    private void removeSurfaceCallbacks() {
        TextureView textureView2 = this.textureView;
        if (textureView2 != null) {
            if (textureView2.getSurfaceTextureListener() != this.componentListener) {
                Log.w(TAG, "SurfaceTextureListener already unset or replaced.");
            } else {
                this.textureView.setSurfaceTextureListener(null);
            }
            this.textureView = null;
        }
        SurfaceHolder surfaceHolder2 = this.surfaceHolder;
        if (surfaceHolder2 != null) {
            surfaceHolder2.removeCallback(this.componentListener);
            this.surfaceHolder = null;
        }
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void sendVolumeToRenderers() {
        float volumeMultiplier = this.audioVolume * this.audioFocusManager.getVolumeMultiplier();
        Renderer[] rendererArr = this.renderers;
        for (Renderer renderer : rendererArr) {
            if (renderer.getTrackType() == 1) {
                this.player.createMessage(renderer).setType(2).setPayload(Float.valueOf(volumeMultiplier)).send();
            }
        }
    }

    private void setVideoDecoderOutputBufferRendererInternal(VideoDecoderOutputBufferRenderer videoDecoderOutputBufferRenderer2) {
        Renderer[] rendererArr = this.renderers;
        for (Renderer renderer : rendererArr) {
            if (renderer.getTrackType() == 2) {
                this.player.createMessage(renderer).setType(8).setPayload(videoDecoderOutputBufferRenderer2).send();
            }
        }
        this.videoDecoderOutputBufferRenderer = videoDecoderOutputBufferRenderer2;
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void setVideoSurfaceInternal(Surface surface2, boolean z14) {
        ArrayList arrayList = new ArrayList();
        Renderer[] rendererArr = this.renderers;
        for (Renderer renderer : rendererArr) {
            if (renderer.getTrackType() == 2) {
                arrayList.add(this.player.createMessage(renderer).setType(1).setPayload(surface2).send());
            }
        }
        Surface surface3 = this.surface;
        if (!(surface3 == null || surface3 == surface2)) {
            try {
                Iterator it3 = arrayList.iterator();
                while (it3.hasNext()) {
                    ((PlayerMessage) it3.next()).blockUntilDelivered();
                }
            } catch (InterruptedException unused) {
                Thread.currentThread().interrupt();
            }
            if (this.ownsSurface) {
                this.surface.release();
            }
        }
        this.surface = surface2;
        this.ownsSurface = z14;
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void updatePlayWhenReady(boolean z14, int i14) {
        int i15 = 0;
        boolean z15 = z14 && i14 != -1;
        if (z15 && i14 != 1) {
            i15 = 1;
        }
        this.player.setPlayWhenReady(z15, i15);
    }

    /* access modifiers changed from: private */
    /* access modifiers changed from: public */
    private void updateWakeAndWifiLock() {
        boolean z14;
        WifiLockManager wifiLockManager2;
        int playbackState = getPlaybackState();
        if (playbackState != 1) {
            if (playbackState == 2 || playbackState == 3) {
                this.wakeLockManager.setStayAwake(getPlayWhenReady());
                wifiLockManager2 = this.wifiLockManager;
                z14 = getPlayWhenReady();
                wifiLockManager2.setStayAwake(z14);
            } else if (playbackState != 4) {
                throw new IllegalStateException();
            }
        }
        z14 = false;
        this.wakeLockManager.setStayAwake(false);
        wifiLockManager2 = this.wifiLockManager;
        wifiLockManager2.setStayAwake(z14);
    }

    private void verifyApplicationThread() {
        if (Looper.myLooper() != getApplicationLooper()) {
            Log.w(TAG, "Player is accessed on the wrong thread. See https://exoplayer.dev/issues/player-accessed-on-wrong-thread", this.hasNotifiedFullWrongThreadWarning ? null : new IllegalStateException());
            this.hasNotifiedFullWrongThreadWarning = true;
        }
    }

    public void addAnalyticsListener(AnalyticsListener analyticsListener) {
        verifyApplicationThread();
        this.analyticsCollector.addListener(analyticsListener);
    }

    @Deprecated
    public void addAudioDebugListener(AudioRendererEventListener audioRendererEventListener) {
        this.audioDebugListeners.add(audioRendererEventListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.AudioComponent
    public void addAudioListener(AudioListener audioListener) {
        this.audioListeners.add(audioListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public void addListener(Player.EventListener eventListener) {
        verifyApplicationThread();
        this.player.addListener(eventListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.MetadataComponent
    public void addMetadataOutput(MetadataOutput metadataOutput) {
        this.metadataOutputs.add(metadataOutput);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.TextComponent
    public void addTextOutput(TextOutput textOutput) {
        if (!this.currentCues.isEmpty()) {
            textOutput.onCues(this.currentCues);
        }
        this.textOutputs.add(textOutput);
    }

    @Deprecated
    public void addVideoDebugListener(VideoRendererEventListener videoRendererEventListener) {
        this.videoDebugListeners.add(videoRendererEventListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void addVideoListener(ai.clova.cic.clientlib.exoplayer2.video.VideoListener videoListener) {
        this.videoListeners.add(videoListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.AudioComponent
    public void clearAuxEffectInfo() {
        setAuxEffectInfo(new AuxEffectInfo(0, 0.0f));
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void clearCameraMotionListener(CameraMotionListener cameraMotionListener2) {
        verifyApplicationThread();
        if (this.cameraMotionListener == cameraMotionListener2) {
            Renderer[] rendererArr = this.renderers;
            for (Renderer renderer : rendererArr) {
                if (renderer.getTrackType() == 5) {
                    this.player.createMessage(renderer).setType(7).setPayload(null).send();
                }
            }
        }
    }

    @Deprecated
    public void clearMetadataOutput(MetadataOutput metadataOutput) {
        removeMetadataOutput(metadataOutput);
    }

    @Deprecated
    public void clearTextOutput(TextOutput textOutput) {
        removeTextOutput(textOutput);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void clearVideoDecoderOutputBufferRenderer() {
        verifyApplicationThread();
        setVideoDecoderOutputBufferRendererInternal(null);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void clearVideoDecoderOutputBufferRenderer(VideoDecoderOutputBufferRenderer videoDecoderOutputBufferRenderer2) {
        verifyApplicationThread();
        if (videoDecoderOutputBufferRenderer2 != null && videoDecoderOutputBufferRenderer2 == this.videoDecoderOutputBufferRenderer) {
            clearVideoDecoderOutputBufferRenderer();
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void clearVideoFrameMetadataListener(VideoFrameMetadataListener videoFrameMetadataListener2) {
        verifyApplicationThread();
        if (this.videoFrameMetadataListener == videoFrameMetadataListener2) {
            Renderer[] rendererArr = this.renderers;
            for (Renderer renderer : rendererArr) {
                if (renderer.getTrackType() == 2) {
                    this.player.createMessage(renderer).setType(6).setPayload(null).send();
                }
            }
        }
    }

    @Deprecated
    public void clearVideoListener(VideoListener videoListener) {
        removeVideoListener(videoListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void clearVideoSurface() {
        verifyApplicationThread();
        removeSurfaceCallbacks();
        setVideoSurfaceInternal(null, false);
        maybeNotifySurfaceSizeChanged(0, 0);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void clearVideoSurface(Surface surface2) {
        verifyApplicationThread();
        if (surface2 != null && surface2 == this.surface) {
            clearVideoSurface();
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void clearVideoSurfaceHolder(SurfaceHolder surfaceHolder2) {
        verifyApplicationThread();
        if (surfaceHolder2 != null && surfaceHolder2 == this.surfaceHolder) {
            setVideoSurfaceHolder(null);
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void clearVideoSurfaceView(SurfaceView surfaceView) {
        clearVideoSurfaceHolder(surfaceView == null ? null : surfaceView.getHolder());
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void clearVideoTextureView(TextureView textureView2) {
        verifyApplicationThread();
        if (textureView2 != null && textureView2 == this.textureView) {
            setVideoTextureView(null);
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.ExoPlayer
    public PlayerMessage createMessage(PlayerMessage.Target target) {
        verifyApplicationThread();
        return this.player.createMessage(target);
    }

    public AnalyticsCollector getAnalyticsCollector() {
        return this.analyticsCollector;
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public Looper getApplicationLooper() {
        return this.player.getApplicationLooper();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.AudioComponent
    public AudioAttributes getAudioAttributes() {
        return this.audioAttributes;
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public Player.AudioComponent getAudioComponent() {
        return this;
    }

    public DecoderCounters getAudioDecoderCounters() {
        return this.audioDecoderCounters;
    }

    public Format getAudioFormat() {
        return this.audioFormat;
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.AudioComponent
    public int getAudioSessionId() {
        return this.audioSessionId;
    }

    @Deprecated
    public int getAudioStreamType() {
        return Util.getStreamTypeForAudioUsage(this.audioAttributes.usage);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public long getBufferedPosition() {
        verifyApplicationThread();
        return this.player.getBufferedPosition();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public long getContentBufferedPosition() {
        verifyApplicationThread();
        return this.player.getContentBufferedPosition();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public long getContentPosition() {
        verifyApplicationThread();
        return this.player.getContentPosition();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public int getCurrentAdGroupIndex() {
        verifyApplicationThread();
        return this.player.getCurrentAdGroupIndex();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public int getCurrentAdIndexInAdGroup() {
        verifyApplicationThread();
        return this.player.getCurrentAdIndexInAdGroup();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public int getCurrentPeriodIndex() {
        verifyApplicationThread();
        return this.player.getCurrentPeriodIndex();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public long getCurrentPosition() {
        verifyApplicationThread();
        return this.player.getCurrentPosition();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public Timeline getCurrentTimeline() {
        verifyApplicationThread();
        return this.player.getCurrentTimeline();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public TrackGroupArray getCurrentTrackGroups() {
        verifyApplicationThread();
        return this.player.getCurrentTrackGroups();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public TrackSelectionArray getCurrentTrackSelections() {
        verifyApplicationThread();
        return this.player.getCurrentTrackSelections();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public int getCurrentWindowIndex() {
        verifyApplicationThread();
        return this.player.getCurrentWindowIndex();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public long getDuration() {
        verifyApplicationThread();
        return this.player.getDuration();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public Player.MetadataComponent getMetadataComponent() {
        return this;
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public boolean getPlayWhenReady() {
        verifyApplicationThread();
        return this.player.getPlayWhenReady();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public ExoPlaybackException getPlaybackError() {
        verifyApplicationThread();
        return this.player.getPlaybackError();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.ExoPlayer
    public Looper getPlaybackLooper() {
        return this.player.getPlaybackLooper();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public PlaybackParameters getPlaybackParameters() {
        verifyApplicationThread();
        return this.player.getPlaybackParameters();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public int getPlaybackState() {
        verifyApplicationThread();
        return this.player.getPlaybackState();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public int getPlaybackSuppressionReason() {
        verifyApplicationThread();
        return this.player.getPlaybackSuppressionReason();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public int getRendererCount() {
        verifyApplicationThread();
        return this.player.getRendererCount();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public int getRendererType(int i14) {
        verifyApplicationThread();
        return this.player.getRendererType(i14);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public int getRepeatMode() {
        verifyApplicationThread();
        return this.player.getRepeatMode();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.ExoPlayer
    public SeekParameters getSeekParameters() {
        verifyApplicationThread();
        return this.player.getSeekParameters();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public boolean getShuffleModeEnabled() {
        verifyApplicationThread();
        return this.player.getShuffleModeEnabled();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public Player.TextComponent getTextComponent() {
        return this;
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public long getTotalBufferedDuration() {
        verifyApplicationThread();
        return this.player.getTotalBufferedDuration();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public Player.VideoComponent getVideoComponent() {
        return this;
    }

    public DecoderCounters getVideoDecoderCounters() {
        return this.videoDecoderCounters;
    }

    public Format getVideoFormat() {
        return this.videoFormat;
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public int getVideoScalingMode() {
        return this.videoScalingMode;
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.AudioComponent
    public float getVolume() {
        return this.audioVolume;
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public boolean isLoading() {
        verifyApplicationThread();
        return this.player.isLoading();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public boolean isPlayingAd() {
        verifyApplicationThread();
        return this.player.isPlayingAd();
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.ExoPlayer
    public void prepare(MediaSource mediaSource2) {
        prepare(mediaSource2, true, true);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.ExoPlayer
    public void prepare(MediaSource mediaSource2, boolean z14, boolean z15) {
        verifyApplicationThread();
        MediaSource mediaSource3 = this.mediaSource;
        if (mediaSource3 != null) {
            mediaSource3.removeEventListener(this.analyticsCollector);
            this.analyticsCollector.resetForNewMediaSource();
        }
        this.mediaSource = mediaSource2;
        mediaSource2.addEventListener(this.eventHandler, this.analyticsCollector);
        boolean playWhenReady = getPlayWhenReady();
        updatePlayWhenReady(playWhenReady, this.audioFocusManager.updateAudioFocus(playWhenReady, 2));
        this.player.prepare(mediaSource2, z14, z15);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public void release() {
        verifyApplicationThread();
        this.audioBecomingNoisyManager.setEnabled(false);
        this.wakeLockManager.setStayAwake(false);
        this.wifiLockManager.setStayAwake(false);
        this.audioFocusManager.release();
        this.player.release();
        removeSurfaceCallbacks();
        Surface surface2 = this.surface;
        if (surface2 != null) {
            if (this.ownsSurface) {
                surface2.release();
            }
            this.surface = null;
        }
        MediaSource mediaSource2 = this.mediaSource;
        if (mediaSource2 != null) {
            mediaSource2.removeEventListener(this.analyticsCollector);
            this.mediaSource = null;
        }
        if (this.isPriorityTaskManagerRegistered) {
            ((PriorityTaskManager) Assertions.checkNotNull(this.priorityTaskManager)).remove(0);
            this.isPriorityTaskManagerRegistered = false;
        }
        this.bandwidthMeter.removeEventListener(this.analyticsCollector);
        this.currentCues = Collections.emptyList();
        this.playerReleased = true;
    }

    public void removeAnalyticsListener(AnalyticsListener analyticsListener) {
        verifyApplicationThread();
        this.analyticsCollector.removeListener(analyticsListener);
    }

    @Deprecated
    public void removeAudioDebugListener(AudioRendererEventListener audioRendererEventListener) {
        this.audioDebugListeners.remove(audioRendererEventListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.AudioComponent
    public void removeAudioListener(AudioListener audioListener) {
        this.audioListeners.remove(audioListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public void removeListener(Player.EventListener eventListener) {
        verifyApplicationThread();
        this.player.removeListener(eventListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.MetadataComponent
    public void removeMetadataOutput(MetadataOutput metadataOutput) {
        this.metadataOutputs.remove(metadataOutput);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.TextComponent
    public void removeTextOutput(TextOutput textOutput) {
        this.textOutputs.remove(textOutput);
    }

    @Deprecated
    public void removeVideoDebugListener(VideoRendererEventListener videoRendererEventListener) {
        this.videoDebugListeners.remove(videoRendererEventListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void removeVideoListener(ai.clova.cic.clientlib.exoplayer2.video.VideoListener videoListener) {
        this.videoListeners.remove(videoListener);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.ExoPlayer
    public void retry() {
        verifyApplicationThread();
        if (this.mediaSource == null) {
            return;
        }
        if (getPlaybackError() != null || getPlaybackState() == 1) {
            prepare(this.mediaSource, false, false);
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public void seekTo(int i14, long j14) {
        verifyApplicationThread();
        this.analyticsCollector.notifySeekStarted();
        this.player.seekTo(i14, j14);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.AudioComponent
    public void setAudioAttributes(AudioAttributes audioAttributes2) {
        setAudioAttributes(audioAttributes2, false);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.AudioComponent
    public void setAudioAttributes(AudioAttributes audioAttributes2, boolean z14) {
        verifyApplicationThread();
        if (!this.playerReleased) {
            if (!Util.areEqual(this.audioAttributes, audioAttributes2)) {
                this.audioAttributes = audioAttributes2;
                Renderer[] rendererArr = this.renderers;
                for (Renderer renderer : rendererArr) {
                    if (renderer.getTrackType() == 1) {
                        this.player.createMessage(renderer).setType(3).setPayload(audioAttributes2).send();
                    }
                }
                Iterator<AudioListener> it3 = this.audioListeners.iterator();
                while (it3.hasNext()) {
                    it3.next().onAudioAttributesChanged(audioAttributes2);
                }
            }
            AudioFocusManager audioFocusManager2 = this.audioFocusManager;
            if (!z14) {
                audioAttributes2 = null;
            }
            audioFocusManager2.setAudioAttributes(audioAttributes2);
            boolean playWhenReady = getPlayWhenReady();
            updatePlayWhenReady(playWhenReady, this.audioFocusManager.updateAudioFocus(playWhenReady, getPlaybackState()));
        }
    }

    @Deprecated
    public void setAudioDebugListener(AudioRendererEventListener audioRendererEventListener) {
        this.audioDebugListeners.retainAll(Collections.singleton(this.analyticsCollector));
        if (audioRendererEventListener != null) {
            addAudioDebugListener(audioRendererEventListener);
        }
    }

    @Deprecated
    public void setAudioStreamType(int i14) {
        int audioUsageForStreamType = Util.getAudioUsageForStreamType(i14);
        setAudioAttributes(new AudioAttributes.Builder().setUsage(audioUsageForStreamType).setContentType(Util.getAudioContentTypeForStreamType(i14)).build());
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.AudioComponent
    public void setAuxEffectInfo(AuxEffectInfo auxEffectInfo) {
        verifyApplicationThread();
        Renderer[] rendererArr = this.renderers;
        for (Renderer renderer : rendererArr) {
            if (renderer.getTrackType() == 1) {
                this.player.createMessage(renderer).setType(5).setPayload(auxEffectInfo).send();
            }
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void setCameraMotionListener(CameraMotionListener cameraMotionListener2) {
        verifyApplicationThread();
        this.cameraMotionListener = cameraMotionListener2;
        Renderer[] rendererArr = this.renderers;
        for (Renderer renderer : rendererArr) {
            if (renderer.getTrackType() == 5) {
                this.player.createMessage(renderer).setType(7).setPayload(cameraMotionListener2).send();
            }
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.ExoPlayer
    public void setForegroundMode(boolean z14) {
        this.player.setForegroundMode(z14);
    }

    public void setHandleAudioBecomingNoisy(boolean z14) {
        verifyApplicationThread();
        if (!this.playerReleased) {
            this.audioBecomingNoisyManager.setEnabled(z14);
        }
    }

    @Deprecated
    public void setHandleWakeLock(boolean z14) {
        setWakeMode(z14 ? 1 : 0);
    }

    @Deprecated
    public void setMetadataOutput(MetadataOutput metadataOutput) {
        this.metadataOutputs.retainAll(Collections.singleton(this.analyticsCollector));
        if (metadataOutput != null) {
            addMetadataOutput(metadataOutput);
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public void setPlayWhenReady(boolean z14) {
        verifyApplicationThread();
        updatePlayWhenReady(z14, this.audioFocusManager.updateAudioFocus(z14, getPlaybackState()));
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public void setPlaybackParameters(PlaybackParameters playbackParameters) {
        verifyApplicationThread();
        this.player.setPlaybackParameters(playbackParameters);
    }

    @TargetApi(23)
    @Deprecated
    public void setPlaybackParams(PlaybackParams playbackParams) {
        PlaybackParameters playbackParameters;
        if (playbackParams != null) {
            playbackParams.allowDefaults();
            playbackParameters = new PlaybackParameters(playbackParams.getSpeed(), playbackParams.getPitch());
        } else {
            playbackParameters = null;
        }
        setPlaybackParameters(playbackParameters);
    }

    public void setPriorityTaskManager(PriorityTaskManager priorityTaskManager2) {
        verifyApplicationThread();
        if (!Util.areEqual(this.priorityTaskManager, priorityTaskManager2)) {
            if (this.isPriorityTaskManagerRegistered) {
                ((PriorityTaskManager) Assertions.checkNotNull(this.priorityTaskManager)).remove(0);
            }
            if (priorityTaskManager2 == null || !isLoading()) {
                this.isPriorityTaskManagerRegistered = false;
            } else {
                priorityTaskManager2.add(0);
                this.isPriorityTaskManagerRegistered = true;
            }
            this.priorityTaskManager = priorityTaskManager2;
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public void setRepeatMode(int i14) {
        verifyApplicationThread();
        this.player.setRepeatMode(i14);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.ExoPlayer
    public void setSeekParameters(SeekParameters seekParameters) {
        verifyApplicationThread();
        this.player.setSeekParameters(seekParameters);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public void setShuffleModeEnabled(boolean z14) {
        verifyApplicationThread();
        this.player.setShuffleModeEnabled(z14);
    }

    @Deprecated
    public void setTextOutput(TextOutput textOutput) {
        this.textOutputs.clear();
        if (textOutput != null) {
            addTextOutput(textOutput);
        }
    }

    @Deprecated
    public void setVideoDebugListener(VideoRendererEventListener videoRendererEventListener) {
        this.videoDebugListeners.retainAll(Collections.singleton(this.analyticsCollector));
        if (videoRendererEventListener != null) {
            addVideoDebugListener(videoRendererEventListener);
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void setVideoDecoderOutputBufferRenderer(VideoDecoderOutputBufferRenderer videoDecoderOutputBufferRenderer2) {
        verifyApplicationThread();
        if (videoDecoderOutputBufferRenderer2 != null) {
            clearVideoSurface();
        }
        setVideoDecoderOutputBufferRendererInternal(videoDecoderOutputBufferRenderer2);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void setVideoFrameMetadataListener(VideoFrameMetadataListener videoFrameMetadataListener2) {
        verifyApplicationThread();
        this.videoFrameMetadataListener = videoFrameMetadataListener2;
        Renderer[] rendererArr = this.renderers;
        for (Renderer renderer : rendererArr) {
            if (renderer.getTrackType() == 2) {
                this.player.createMessage(renderer).setType(6).setPayload(videoFrameMetadataListener2).send();
            }
        }
    }

    @Deprecated
    public void setVideoListener(VideoListener videoListener) {
        this.videoListeners.clear();
        if (videoListener != null) {
            addVideoListener(videoListener);
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void setVideoScalingMode(int i14) {
        verifyApplicationThread();
        this.videoScalingMode = i14;
        Renderer[] rendererArr = this.renderers;
        for (Renderer renderer : rendererArr) {
            if (renderer.getTrackType() == 2) {
                this.player.createMessage(renderer).setType(4).setPayload(Integer.valueOf(i14)).send();
            }
        }
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void setVideoSurface(Surface surface2) {
        verifyApplicationThread();
        removeSurfaceCallbacks();
        if (surface2 != null) {
            clearVideoDecoderOutputBufferRenderer();
        }
        int i14 = 0;
        setVideoSurfaceInternal(surface2, false);
        if (surface2 != null) {
            i14 = -1;
        }
        maybeNotifySurfaceSizeChanged(i14, i14);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void setVideoSurfaceHolder(SurfaceHolder surfaceHolder2) {
        verifyApplicationThread();
        removeSurfaceCallbacks();
        if (surfaceHolder2 != null) {
            clearVideoDecoderOutputBufferRenderer();
        }
        this.surfaceHolder = surfaceHolder2;
        if (surfaceHolder2 != null) {
            surfaceHolder2.addCallback(this.componentListener);
            Surface surface2 = surfaceHolder2.getSurface();
            if (surface2 != null && surface2.isValid()) {
                setVideoSurfaceInternal(surface2, false);
                Rect surfaceFrame = surfaceHolder2.getSurfaceFrame();
                maybeNotifySurfaceSizeChanged(surfaceFrame.width(), surfaceFrame.height());
                return;
            }
        }
        setVideoSurfaceInternal(null, false);
        maybeNotifySurfaceSizeChanged(0, 0);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void setVideoSurfaceView(SurfaceView surfaceView) {
        setVideoSurfaceHolder(surfaceView == null ? null : surfaceView.getHolder());
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.VideoComponent
    public void setVideoTextureView(TextureView textureView2) {
        verifyApplicationThread();
        removeSurfaceCallbacks();
        if (textureView2 != null) {
            clearVideoDecoderOutputBufferRenderer();
        }
        this.textureView = textureView2;
        if (textureView2 != null) {
            if (textureView2.getSurfaceTextureListener() != null) {
                Log.w(TAG, "Replacing existing SurfaceTextureListener.");
            }
            textureView2.setSurfaceTextureListener(this.componentListener);
            SurfaceTexture surfaceTexture = textureView2.isAvailable() ? textureView2.getSurfaceTexture() : null;
            if (surfaceTexture != null) {
                setVideoSurfaceInternal(new Surface(surfaceTexture), true);
                maybeNotifySurfaceSizeChanged(textureView2.getWidth(), textureView2.getHeight());
                return;
            }
        }
        setVideoSurfaceInternal(null, true);
        maybeNotifySurfaceSizeChanged(0, 0);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player.AudioComponent
    public void setVolume(float f14) {
        verifyApplicationThread();
        float constrainValue = Util.constrainValue(f14, 0.0f, 1.0f);
        if (this.audioVolume != constrainValue) {
            this.audioVolume = constrainValue;
            sendVolumeToRenderers();
            Iterator<AudioListener> it3 = this.audioListeners.iterator();
            while (it3.hasNext()) {
                it3.next().onVolumeChanged(constrainValue);
            }
        }
    }

    public void setWakeMode(int i14) {
        if (i14 == 0) {
            this.wakeLockManager.setEnabled(false);
        } else if (i14 == 1) {
            this.wakeLockManager.setEnabled(true);
        } else if (i14 == 2) {
            this.wakeLockManager.setEnabled(true);
            this.wifiLockManager.setEnabled(true);
            return;
        } else {
            return;
        }
        this.wifiLockManager.setEnabled(false);
    }

    @Override // ai.clova.cic.clientlib.exoplayer2.Player
    public void stop(boolean z14) {
        verifyApplicationThread();
        this.audioFocusManager.updateAudioFocus(getPlayWhenReady(), 1);
        this.player.stop(z14);
        MediaSource mediaSource2 = this.mediaSource;
        if (mediaSource2 != null) {
            mediaSource2.removeEventListener(this.analyticsCollector);
            this.analyticsCollector.resetForNewMediaSource();
            if (z14) {
                this.mediaSource = null;
            }
        }
        this.currentCues = Collections.emptyList();
    }
}