正在查看: MX Player v1.97.8 应用的 FFService.java JAVA 源代码文件
本页面展示 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();
}
}