package com.ifpdos.player;

import android.content.Context;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.Surface;
import android.view.SurfaceHolder;
import com.ifpdos.player.base.IPlayer;
import com.ifpdos.player.base.MediaListenerDispatcher;
import com.ifpdos.player.base.MediaMetaDataInfo;
import com.ifpdos.player.base.OnMediaPlayerListener;
import com.ifpdos.player.configure.MimeConfig;
import com.ifpdos.player.factory.PlayerFactory;
import java.io.IOException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import okhttp3.HttpUrl;

/* JADX INFO: loaded from: classes.dex */
public final class OSPlayer extends BasePlayer implements OnMediaPlayerListener {
    public static final Companion Companion = new Companion(null);
    private static final String TAG = "OSPlayer";
    private final Builder builder;
    private final Context context;
    private Uri mFileDescriptor;
    private boolean mInnerListenerRegistered;
    private final MediaListenerDispatcher mListenerDispatcher;
    private final Handler mMainHandler;
    private IPlayer mPlayer;
    private Surface mSurface;
    private SurfaceHolder mSurfaceHolder;

    public static final class Builder {
        private final IPlayerConfigure configure;
        private final Context context;
        private boolean isMedia3PlayerInDefault;
        private MimeConfig mimeConfig;

        public Builder(Context context, IPlayerConfigure configure) {
            kotlin.jvm.internal.l.e(context, "context");
            kotlin.jvm.internal.l.e(configure, "configure");
            this.context = context;
            this.configure = configure;
            this.isMedia3PlayerInDefault = true;
            this.mimeConfig = MimeConfig.Companion.createDefault();
        }

        public final OSPlayer build() {
            return new OSPlayer(this.context, this, null);
        }

        public final IPlayerConfigure getConfigure() {
            return this.configure;
        }

        public final MimeConfig getMimeConfig() {
            return this.mimeConfig;
        }

        public final boolean isMedia3PlayerInDefault() {
            return this.isMedia3PlayerInDefault;
        }

        public final Builder setMedia3PlayerInDefault(boolean z2) {
            this.isMedia3PlayerInDefault = z2;
            return this;
        }

        public final Builder setMimeConfig(MimeConfig mimeConfig) {
            kotlin.jvm.internal.l.e(mimeConfig, "mimeConfig");
            this.mimeConfig = mimeConfig;
            return this;
        }
    }

    public static final class Companion {
        public /* synthetic */ Companion(kotlin.jvm.internal.g gVar) {
            this();
        }

        private Companion() {
        }
    }

    public /* synthetic */ OSPlayer(Context context, Builder builder, kotlin.jvm.internal.g gVar) {
        this(context, builder);
    }

    private final IPlayer getPlatformPlayer() {
        return this.builder.getConfigure().getPlatformPlayer(this.context);
    }

    private final IPlayer getPlayer() {
        return this.builder.isMedia3PlayerInDefault() ? new Media3Player(this.context, this.builder.getConfigure(), this.builder.getMimeConfig()) : new AndroidMediaPlayer(this.context);
    }

    private final void reInitPlayer() {
        IPlayer iPlayer;
        IPlayer iPlayer2;
        Q0.e.a(TAG, "reInitPlayer");
        Surface surface = this.mSurface;
        if (surface != null && (iPlayer2 = this.mPlayer) != null) {
            iPlayer2.setSurface(surface);
        }
        SurfaceHolder surfaceHolder = this.mSurfaceHolder;
        if (surfaceHolder != null && (iPlayer = this.mPlayer) != null) {
            iPlayer.setDisplay(surfaceHolder);
        }
        IPlayer iPlayer3 = this.mPlayer;
        if (iPlayer3 != null) {
            iPlayer3.addMediaListener(this);
        }
        this.mInnerListenerRegistered = true;
        this.mListenerDispatcher.onBuffing(false);
    }

    private final void safeResetPlayer(IPlayer iPlayer) throws IOException {
        IPlayer iPlayer2 = this.mPlayer;
        boolean z2 = iPlayer2 instanceof AndroidMediaPlayer;
        if (iPlayer2 instanceof Media3Player) {
            kotlin.jvm.internal.l.c(iPlayer2, "null cannot be cast to non-null type com.ifpdos.player.Media3Player");
            if (((Media3Player) iPlayer2).isUsedFFmpeg()) {
                onError(BasePlayer.ERROR_NEED_TO_RECREATE_SURFACE, 0);
            }
        }
        IPlayer iPlayer3 = this.mPlayer;
        if (iPlayer3 != null) {
            iPlayer3.removeMediaListener(this);
        }
        IPlayer iPlayer4 = this.mPlayer;
        if (iPlayer4 != null) {
            iPlayer4.stop();
        }
        Log.d(TAG, "safeResetPlayer: " + z2 + ", next: " + kotlin.jvm.internal.w.b(iPlayer.getClass()).a());
        if (!z2) {
            IPlayer iPlayer5 = this.mPlayer;
            if (iPlayer5 != null) {
                iPlayer5.release();
            }
            this.mPlayer = iPlayer;
            reInitPlayer();
            return;
        }
        final CountDownLatch countDownLatch = new CountDownLatch(1);
        IPlayer iPlayer6 = this.mPlayer;
        AndroidMediaPlayer androidMediaPlayer = iPlayer6 instanceof AndroidMediaPlayer ? (AndroidMediaPlayer) iPlayer6 : null;
        if (androidMediaPlayer != null) {
            androidMediaPlayer.runAfterRelease(new Runnable() { // from class: com.ifpdos.player.D
                @Override // java.lang.Runnable
                public final void run() {
                    OSPlayer.safeResetPlayer$lambda$1$lambda$0(countDownLatch);
                }
            });
        }
        IPlayer iPlayer7 = this.mPlayer;
        if (iPlayer7 != null) {
            iPlayer7.release();
        }
        try {
            countDownLatch.await(100L, TimeUnit.MILLISECONDS);
        } catch (Throwable th) {
            Log.e(TAG, "safeResetPlayer: ", th);
        }
        this.mPlayer = iPlayer;
        reInitPlayer();
        Log.d(TAG, "safeResetPlayer: player switch completed");
    }

    /* JADX INFO: Access modifiers changed from: private */
    public static final void safeResetPlayer$lambda$1$lambda$0(CountDownLatch countDownLatch) {
        kotlin.jvm.internal.l.e(countDownLatch, "$countDownLatch");
        Log.d(TAG, "safeResetPlayer: runAfterRelease called");
        countDownLatch.countDown();
    }

    private final void updatePreferPlayer(Uri uri) throws IOException {
        boolean zIsPlatformPlayer = this.builder.getConfigure().isPlatformPlayer(this.mPlayer);
        boolean zNeedSwitchToPlatformPlayer = this.builder.getConfigure().needSwitchToPlatformPlayer(uri);
        Q0.e.a(TAG, "needSwitchToMediaPlayer: needSwitchToMediaPlayer = " + zNeedSwitchToPlatformPlayer);
        this.mListenerDispatcher.onBuffing(false);
        if (zNeedSwitchToPlatformPlayer && !zIsPlatformPlayer) {
            safeResetPlayer(getPlatformPlayer());
        } else {
            if (zNeedSwitchToPlatformPlayer || !zIsPlatformPlayer) {
                return;
            }
            safeResetPlayer(getPlayer());
        }
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void addMediaListener(OnMediaPlayerListener onMediaPlayerListener) {
        kotlin.jvm.internal.l.e(onMediaPlayerListener, "onMediaPlayerListener");
        this.mListenerDispatcher.add(onMediaPlayerListener);
        if (this.mInnerListenerRegistered) {
            onMediaPlayerListener.onPlayerKernelChanged(this.mPlayer.getPlayerKernel());
        } else {
            this.mPlayer.addMediaListener(this);
            this.mInnerListenerRegistered = true;
        }
    }

    @Override // com.ifpdos.player.base.IPlayer
    public int getCurrentPosition() {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            return iPlayer.getCurrentPosition();
        }
        return 0;
    }

    @Override // com.ifpdos.player.base.IPlayer
    public int getDuration() {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            return iPlayer.getDuration();
        }
        return 0;
    }

    @Override // com.ifpdos.player.base.IPlayer
    public MediaMetaDataInfo getMetaDataInfo() {
        MediaMetaDataInfo metaDataInfo;
        IPlayer iPlayer = this.mPlayer;
        return (iPlayer == null || (metaDataInfo = iPlayer.getMetaDataInfo()) == null) ? new MediaMetaDataInfo(HttpUrl.FRAGMENT_ENCODE_SET) : metaDataInfo;
    }

    @Override // com.ifpdos.player.BasePlayer, com.ifpdos.player.base.IPlayer
    public String getPlayerKernel() {
        return this.mPlayer.getPlayerKernel();
    }

    @Override // com.ifpdos.player.base.IPlayer
    public int getVideoHeight() {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            return iPlayer.getVideoHeight();
        }
        return 0;
    }

    @Override // com.ifpdos.player.base.IPlayer
    public int getVideoWidth() {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            return iPlayer.getVideoWidth();
        }
        return 0;
    }

    @Override // com.ifpdos.player.base.IPlayer
    public boolean isPlaying() {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            return iPlayer.isPlaying();
        }
        return false;
    }

    @Override // com.ifpdos.player.base.OnMediaPlayerListener
    public void onBuffing(boolean z2) {
        this.mListenerDispatcher.onBuffing(z2);
    }

    @Override // com.ifpdos.player.base.OnMediaPlayerListener
    public void onComplete() {
        this.mListenerDispatcher.onComplete();
    }

    @Override // com.ifpdos.player.base.OnMediaPlayerListener
    public boolean onError(int i2, int i3) throws IOException {
        IPlayer iPlayer;
        IPlayer iPlayer2;
        Q0.e.a(TAG, "onError: what = " + i2 + ", extra = " + i3);
        this.mListenerDispatcher.onBuffing(false);
        if (i2 == -9528) {
            IPlayer iPlayer3 = this.mPlayer;
            if (iPlayer3 != null) {
                iPlayer3.removeMediaListener(this);
            }
            IPlayer iPlayer4 = this.mPlayer;
            if (iPlayer4 != null) {
                iPlayer4.stop();
            }
            IPlayer iPlayer5 = this.mPlayer;
            if (iPlayer5 != null) {
                iPlayer5.release();
            }
            this.mPlayer = getPlatformPlayer();
            reInitPlayer();
            Uri uri = this.mFileDescriptor;
            if (uri != null && (iPlayer = this.mPlayer) != null) {
                iPlayer.setDataSource(uri);
            }
            IPlayer iPlayer6 = this.mPlayer;
            if (iPlayer6 == null) {
                return true;
            }
            iPlayer6.prepare();
            return true;
        }
        if (i2 != -9527) {
            return this.mListenerDispatcher.onError(i2, i3);
        }
        IPlayer iPlayer7 = this.mPlayer;
        if (iPlayer7 != null) {
            iPlayer7.removeMediaListener(this);
        }
        IPlayer iPlayer8 = this.mPlayer;
        if (iPlayer8 != null) {
            iPlayer8.stop();
        }
        IPlayer iPlayer9 = this.mPlayer;
        if (iPlayer9 != null) {
            iPlayer9.release();
        }
        this.mPlayer = PlayerFactory.Companion.createPlayer(this.context, true, this.builder.getMimeConfig());
        reInitPlayer();
        Uri uri2 = this.mFileDescriptor;
        if (uri2 != null && (iPlayer2 = this.mPlayer) != null) {
            iPlayer2.setDataSource(uri2);
        }
        IPlayer iPlayer10 = this.mPlayer;
        if (iPlayer10 == null) {
            return true;
        }
        iPlayer10.prepare();
        return true;
    }

    @Override // com.ifpdos.player.base.OnMediaPlayerListener
    public boolean onInfo(int i2, int i3) {
        return this.mListenerDispatcher.onInfo(i2, i3);
    }

    @Override // com.ifpdos.player.base.OnMediaPlayerListener
    public void onPlayerKernelChanged(String kernel) {
        kotlin.jvm.internal.l.e(kernel, "kernel");
        this.mListenerDispatcher.onPlayerKernelChanged(kernel);
    }

    @Override // com.ifpdos.player.base.OnMediaPlayerListener
    public void onPlayingChanged(boolean z2, boolean z3) {
        this.mListenerDispatcher.onPlayingChanged(z2, z3);
    }

    @Override // com.ifpdos.player.base.OnMediaPlayerListener
    public void onPrepare() {
        this.mListenerDispatcher.onPrepare();
    }

    @Override // com.ifpdos.player.base.OnMediaPlayerListener
    public void onSeekComplete() {
        this.mListenerDispatcher.onSeekComplete();
    }

    @Override // com.ifpdos.player.base.OnMediaPlayerListener
    public void onVideoSizeChange() {
        this.mListenerDispatcher.onVideoSizeChange();
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void pause() {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.pause();
        }
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void prepare() throws IOException {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.prepare();
        }
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void release() {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.release();
        }
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void removeMediaListener(OnMediaPlayerListener onMediaPlayerListener) {
        kotlin.jvm.internal.l.e(onMediaPlayerListener, "onMediaPlayerListener");
        this.mListenerDispatcher.remove(onMediaPlayerListener);
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void reset() {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.reset();
        }
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void seekTo(int i2) {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.seekTo(i2);
        }
    }

    @Override // com.ifpdos.player.BasePlayer, com.ifpdos.player.base.IPlayer
    public void setDataSource(Uri fileDescriptor) throws IOException {
        kotlin.jvm.internal.l.e(fileDescriptor, "fileDescriptor");
        this.mFileDescriptor = fileDescriptor;
        updatePreferPlayer(fileDescriptor);
        Q0.e.a(TAG, "setDataSource: player = " + this.mPlayer);
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.setDataSource(fileDescriptor);
        }
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void setDisplay(SurfaceHolder surface) {
        kotlin.jvm.internal.l.e(surface, "surface");
        this.mSurfaceHolder = surface;
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.setDisplay(surface);
        }
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void setSurface(Surface surface) {
        kotlin.jvm.internal.l.e(surface, "surface");
        this.mSurface = surface;
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.setSurface(surface);
        }
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void start() {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.start();
        }
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void stop() {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.stop();
        }
    }

    private OSPlayer(Context context, Builder builder) {
        super(context);
        this.context = context;
        this.builder = builder;
        this.mPlayer = getPlayer();
        this.mListenerDispatcher = new MediaListenerDispatcher();
        this.mMainHandler = new Handler(Looper.getMainLooper());
    }

    @Override // com.ifpdos.player.base.IPlayer
    public void seekTo(int i2, boolean z2) {
        IPlayer iPlayer = this.mPlayer;
        if (iPlayer != null) {
            iPlayer.seekTo(i2, z2);
        }
    }
}
