导航菜单

页面标题

页面副标题

MX Player v1.97.8 - FFService.java 源代码

正在查看: MX Player v1.97.8 应用的 FFService.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.mxtech.media.service;

import android.app.Service;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.icu.util.VersionInfo;
import android.os.Build;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.SystemClock;
import android.util.Log;
import com.mxtech.app.Apps;
import com.mxtech.media.MediaReader;
import com.mxtech.media.service.a;
import com.mxtech.os.Cpu;
import com.mxtech.videoplayer.L;
import defpackage.tya;
import defpackage.wz5;
import java.util.HashSet;
import java.util.Iterator;
import java.util.concurrent.atomic.AtomicInteger;

public class FFService extends Service {
    public static boolean f = false;
    public final AtomicInteger b = new AtomicInteger();
    public final HashSet c = new HashSet();
    public final a d = new a();

    public class a extends a.AbstractBinderC0033a {
        public a() {
            attachInterface(this, "com.mxtech.media.service.IFFService");
        }

        @Override
        public final String A(int i, long j, String str) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return null;
            }
            try {
                return MediaReader.getMetadata(j, i, str);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int[] A0(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return null;
            }
            try {
                return MediaReader.getStreamTypes(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final Bitmap B(long j, int i, int i2, int i3, boolean z) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return null;
            }
            try {
                return MediaReader.extractThumb(j, i, i2, i3, z);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final long G0(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0L;
            }
            try {
                return MediaReader.getStreamChannelLayout(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int I0(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamCount(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final void J(long j) throws RemoteException {
            if (FFService.this.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return;
            }
            try {
                synchronized (FFService.this) {
                    FFService.this.c.remove(Long.valueOf(j));
                }
                MediaReader.native_release(j);
            } finally {
                FFService.this.b.decrementAndGet();
            }
        }

        @Override
        public final void M(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return;
            }
            try {
                MediaReader.cancel(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int N0(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.width(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int O(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.height(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int Q0(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamSampleRate(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int R0(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamType(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int U(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamDisplayHeight(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final boolean Z(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return false;
            }
            try {
                return MediaReader.hasEmbeddedSubtitle(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int b(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamBitRate(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int e(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamHeight(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int e0(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return -1;
            }
            try {
                return MediaReader.isInterlaced(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int i0(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.rotation(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int j0(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamCodecId(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final String k(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return null;
            }
            try {
                return MediaReader.getStreamCodec(j, i, true);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final String l0(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return null;
            }
            try {
                return MediaReader.getStreamProfile(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int n(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.displayHeight(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int o(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamDisplayWidth(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final String r(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return null;
            }
            try {
                return MediaReader.getFormat(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int s0(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamWidth(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final String v(int i, int i2, String str, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return null;
            }
            try {
                return MediaReader.getStreamMetadata(j, i, i2, str);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int v0(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.duration(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final long w(String str, boolean z) throws RemoteException {
            if (FFService.this.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0L;
            }
            try {
                long native_create = MediaReader.native_create(str, z);
                synchronized (FFService.this) {
                    FFService.this.c.add(Long.valueOf(native_create));
                }
                return native_create;
            } catch (Exception unused) {
                Log.e("MX.FFService", "MediaReader creation failed.");
                return 0L;
            } finally {
                FFService.this.b.decrementAndGet();
            }
        }

        @Override
        public final int w0(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamDisposition(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int x(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.displayWidth(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int x0(long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.frameTime(j);
            } finally {
                fFService.b.decrementAndGet();
            }
        }

        @Override
        public final int z(int i, long j) throws RemoteException {
            FFService fFService = FFService.this;
            if (fFService.b.incrementAndGet() < 0) {
                i7.d("MX.FFService", new StringBuilder("Service is being destroyed. tid:"));
                return 0;
            }
            try {
                return MediaReader.getStreamFrameTime(j, i);
            } finally {
                fFService.b.decrementAndGet();
            }
        }
    }

    @Override
    public final SharedPreferences getSharedPreferences(String str, int i) {
        return tya.m.getSharedPreferences(str, i);
    }

    @Override
    public final IBinder onBind(Intent intent) {
        synchronized (FFService.class) {
            try {
                if (!f) {
                    try {
                        String stringExtra = intent.getStringExtra("codec_package_name");
                        String stringExtra2 = intent.getStringExtra("custom_ffmpeg_path");
                        if (stringExtra.startsWith("com.mxtech.")) {
                            stringExtra = getPackageManager().getApplicationInfo(stringExtra, 0).nativeLibraryDir;
                        }
                        if (stringExtra2 == null) {
                            stringExtra2 = stringExtra;
                        }
                        Apps.h(stringExtra, "c++_shared");
                        Apps.h(stringExtra, "mxutil");
                        Apps.h(stringExtra2, "ffmpeg.mx");
                        Apps.h(stringExtra, "mxvp");
                        L.native_init(this, 2, Build.VERSION.SDK_INT, VersionInfo.ICU_VERSION.getMajor(), null, getFilesDir().getPath(), null, Cpu.d, 0, 0, 0);
                        L.enableCapability(wz5.e(getApplicationContext()));
                        tya.p = true;
                        f = true;
                    } catch (PackageManager.NameNotFoundException e) {
                        Log.e("MX.FFService", "", e);
                        return null;
                    }
                }
            } catch (Throwable th) {
                throw th;
            }
        }
        a aVar = this.d;
        aVar.getClass();
        return aVar;
    }

    @Override
    public final void onDestroy() {
        while (!this.b.compareAndSet(0, -99999999)) {
            synchronized (this) {
                try {
                    Iterator it = this.c.iterator();
                    while (it.hasNext()) {
                        MediaReader.cancel(((Long) it.next()).longValue());
                    }
                } catch (Throwable th) {
                    throw th;
                }
            }
            Log.i("MX.FFService", "Waiting for " + this.b.get() + " unfinished jobs.");
            SystemClock.sleep(10L);
        }
        Iterator it2 = this.c.iterator();
        while (it2.hasNext()) {
            long longValue = ((Long) it2.next()).longValue();
            Log.i("MX.FFService", "Releasing dead object " + longValue);
            MediaReader.native_release(longValue);
        }
        super.onDestroy();
    }
}