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(); } }