From 60653cc739697f75a6c8ed85bdc9fad5112a0aa2 Mon Sep 17 00:00:00 2001 From: gdlbo <41114720+gdlbo@users.noreply.github.com> Date: Thu, 25 May 2023 23:03:00 +0300 Subject: [PATCH] medianative converted to java --- .../java/com/vk/medianative/MediaNative.java | 502 ++++++ .../ru/vtosters/hooks/other/Preferences.java | 3 + .../MediaNative$EncoderHandler$Callback.smali | 27 - .../MediaNative$EncoderHandler.smali | 157 -- .../com/vk/medianative/MediaNative.smali | 1422 ----------------- .../com/vtosters/lite/VKApplication.smali | 2 +- 6 files changed, 506 insertions(+), 1607 deletions(-) create mode 100644 app/src/main/java/com/vk/medianative/MediaNative.java delete mode 100644 smali/smali_classes3/com/vk/medianative/MediaNative$EncoderHandler$Callback.smali delete mode 100644 smali/smali_classes3/com/vk/medianative/MediaNative$EncoderHandler.smali delete mode 100644 smali/smali_classes3/com/vk/medianative/MediaNative.smali diff --git a/app/src/main/java/com/vk/medianative/MediaNative.java b/app/src/main/java/com/vk/medianative/MediaNative.java new file mode 100644 index 000000000..7952cf50f --- /dev/null +++ b/app/src/main/java/com/vk/medianative/MediaNative.java @@ -0,0 +1,502 @@ +package com.vk.medianative; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Color; +import android.os.Process; +import android.os.*; +import android.util.Log; +import androidx.annotation.Keep; +import androidx.annotation.Nullable; +import com.facebook.soloader.SoLoader; + +import java.io.InputStream; +import java.lang.ref.WeakReference; +import java.nio.ByteBuffer; +import java.util.Scanner; + +public final class MediaNative { + private static final String a = NativeMediaEncoder.class.getSimpleName(); + private static final Object f17443d = new Object(); + @SuppressLint("StaticFieldLeak") + @Keep + public static volatile Context context; + private static boolean isMediaLoaded = false; + private static boolean isMediaMasksLoaded = false; + + public static int HSLToIntRGB(float f2, float f3, float f4) { + int[] iArr = new int[3]; + waitForContext(); + nativeHSLToRGB(f2, f3, f4, iArr); + return Color.argb(255, iArr[0], iArr[1], iArr[2]); + } + + public static void HSLToRGB(float f2, float f3, float f4, int[] iArr) { + waitForContext(); + nativeHSLToRGB(f2, f3, f4, iArr); + } + + public static int HSVToIntRGB(float f2, float f3, float f4) { + int[] iArr = new int[3]; + waitForContext(); + nativeHSVToRGB(f2, f3, f4, iArr); + return Color.argb(255, iArr[0], iArr[1], iArr[2]); + } + + public static void HSVToRGB(float f2, float f3, float f4, int[] iArr) { + waitForContext(); + nativeHSVToRGB(f2, f3, f4, iArr); + } + + public static int LabToIntRGB(float f2, float f3, float f4) { + int[] iArr = new int[3]; + waitForContext(); + nativeLabToRGB(f2, f3, f4, iArr); + return Color.argb(255, iArr[0], iArr[1], iArr[2]); + } + + public static void LabToRGB(float f2, float f3, float f4, int[] iArr) { + waitForContext(); + nativeLabToRGB(f2, f3, f4, iArr); + } + + public static void RGBToHSL(int i, int i2, int i3, float[] fArr) { + waitForContext(); + nativeRGBToHSL(i, i2, i3, fArr); + } + + public static void RGBToHSV(int i, int i2, int i3, float[] fArr) { + waitForContext(); + nativeRGBToHSV(i, i2, i3, fArr); + } + + public static void RGBToLab(int i, int i2, int i3, float[] fArr) { + waitForContext(); + nativeRGBToLab(i, i2, i3, fArr); + } + + public static long animationPlayerCreate(String str, int i, int i2, boolean z) { + waitForContext(); + return nativeAnimationPlayerCreate(str, i, i2, z); + } + + public static int animationPlayerDecode(long j, Bitmap bitmap) { + waitForContext(); + return nativeAnimationPlayerDecode(j, bitmap); + } + + public static int animationPlayerGetSize(long j) { + waitForContext(); + return nativeAnimationPlayerGetSize(j); + } + + public static void animationPlayerRelease(long j) { + waitForContext(); + nativeAnimationPlayerRelease(j); + } + + public static boolean animationPlayerSeek(long j, int i) { + waitForContext(); + return nativeAnimationPlayerSeek(j, i); + } + + public static void applyCurveAndSaturationBitmap(Bitmap bitmap, int[] iArr, float f2) { + waitForContext(); + nativeCurveSaturation(bitmap, iArr, f2, Runtime.getRuntime().availableProcessors()); + } + + public static long audioGetTotalPcmDuration() { + waitForContext(); + return nativeAudioGetTotalPcmDuration(); + } + + public static byte[] audioGetWaveform(short[] sArr, int i) { + waitForContext(); + return nativeAudioGetWaveform(sArr, i); + } + + public static int audioIsOpusFile(String str) { + waitForContext(); + return nativeAudioIsOpusFile(str); + } + + public static void audioReadOpusFile(ByteBuffer byteBuffer, int i, int[] iArr) { + waitForContext(); + nativeAudioReadOpusFile(byteBuffer, i, iArr); + } + + public static int audioSeekOpusFile(float f2) { + waitForContext(); + return nativeAudioSeekOpusFile(f2); + } + + public static int audioStartRecord(String str) { + waitForContext(); + return nativeAudioStartRecord(str); + } + + public static void audioStopRecord() { + waitForContext(); + nativeAudioStopRecord(); + } + + public static int audioWriteFrame(ByteBuffer byteBuffer, int i) { + waitForContext(); + return nativeAudioWriteFrame(byteBuffer, i); + } + + private static void waitForContext() { + synchronized (f17443d) { + if (context == null) { + try { + f17443d.wait(); + } catch (InterruptedException e2) { + Log.e(a, "Interrupted while waiting for context", e2); + } + } + } + } + + public static void blurBitmap(Bitmap bitmap, int i) { + waitForContext(); + nativeBlur(bitmap, i); + } + + private static String c() { + return getProcMaps(String.valueOf(Process.myPid())); + } + + public static void cameraProcessorCreate() { + waitForContext(); + nativeProcessorCreate(); + } + + public static boolean cameraProcessorDo(byte[] bArr, long[] jArr) { + waitForContext(); + return nativeProcessorDo(bArr, jArr); + } + + public static int cameraProcessorGetVersion() { + waitForContext(); + return nativeProcessorGetVersion(); + } + + public static boolean cameraProcessorInit(String str, int i, int i2) { + waitForContext(); + return nativeProcessorInit(str, i, i2); + } + + public static boolean cameraProcessorLoad(String str, boolean z) { + waitForContext(); + return nativeProcessorLoad(str, z); + } + + public static void cameraProcessorMouseTap(int i, float f2, float f3) { + waitForContext(); + nativeProcessorMouseTap(i, f2, f3); + } + + public static void cameraProcessorRelease() { + waitForContext(); + nativeProcessorRelease(); + } + + public static void colorCorrectionBitmap(Bitmap bitmap, Bitmap bitmap2, float[] fArr) { + waitForContext(); + nativeColorCorrection(bitmap, bitmap2, fArr, fArr.length, Runtime.getRuntime().availableProcessors()); + } + + public static byte[] compressBitmapJpeg(Bitmap bitmap, int i) { + waitForContext(); + return nativeJpegTurboCompress(bitmap, i); + } + + public static String createAllInOneShader() { + waitForContext(); + return nativeAllInOneShader(); + } + + public static void createCurve(int[] iArr, int[] iArr2, int[] iArr3, int[] iArr4, int[] iArr5, float f2, float f3, float f4, float f5, float f6) { + waitForContext(); + nativeCreateCurve(iArr, iArr2, iArr3, iArr4, iArr5, f2, f3, f4, f5, f6); + } + + public static String createOneInAllShader() { + waitForContext(); + return nativeOneInAllShader(); + } + + private static String d() { + return getProcMaps("self"); + } + + public static String dump() { + return "LD_LIBRARY_PATH:\n" + SoLoader.makeLdLibraryPath() + "\nSELF_MAPS:\n" + d() + "\nPID_MAPS:\n" + c() + "\n"; + } + + private static void e() { + isMediaMasksLoaded = NativeLibLoader.loadLibrary("vkmediamasks"); + } + + public static void enhanceBitmap(Bitmap bitmap, float f2) { + waitForContext(); + nativeEnhance(bitmap, f2, Runtime.getRuntime().availableProcessors()); + } + + private static void f() { + if (isMediaLoaded) { + return; + } + NativeLibLoader.loadLibrary("ffmpeg"); + isMediaLoaded = NativeLibLoader.loadLibrary("vkmedia"); + isMediaLoaded = NativeLibLoader.loadLibrary("vkmediaencoder"); + } + + public static void flipHorizontallyBitmap(Bitmap bitmap) { + waitForContext(); + nativeFlipHorizontally(bitmap); + } + + public static void flipVerticallyBitmap(Bitmap bitmap) { + waitForContext(); + nativeFlipVertically(bitmap); + } + + public static void generateHistogram(Bitmap bitmap, int[] iArr, int[] iArr2, int[] iArr3, int[] iArr4) { + waitForContext(); + nativeHistogram(bitmap, iArr, iArr2, iArr3, iArr4); + } + + public static void init(Context context2) { + synchronized (f17443d) { + context = context2; + SoLoader.init(context2, false); + NativeLibLoader.loadLibrary("gnustl_shared"); + NativeLibLoader.loadLibrary("vkchronicle"); + f(); + f17443d.notifyAll(); + } + } + + public static void intRGBToHSL(int i, float[] fArr) { + waitForContext(); + nativeRGBToHSL(Color.red(i), Color.green(i), Color.blue(i), fArr); + } + + public static void intRGBToHSV(int i, float[] fArr) { + waitForContext(); + nativeRGBToHSV(Color.red(i), Color.green(i), Color.blue(i), fArr); + } + + public static void intRGBToLab(int i, float[] fArr) { + waitForContext(); + nativeRGBToLab(Color.red(i), Color.green(i), Color.blue(i), fArr); + } + + public static boolean isAsus() { + return "asus".equalsIgnoreCase(Build.MANUFACTURER); + } + + public static boolean isMediaSupported() { + if (!isMediaMasksLoaded) { + e(); + } + return isMediaMasksLoaded; + } + + public static boolean isX86() { + try { + String str = Build.SUPPORTED_ABIS[0]; + if (str != null) { + return str.startsWith("x86"); + } + return false; + } catch (Throwable unused) { + return false; + } + } + + public static void lookupBitmap(Bitmap bitmap, Bitmap bitmap2) { + waitForContext(); + nativeLookup(bitmap, bitmap2, Runtime.getRuntime().availableProcessors()); + } + + public static long mediaEncoderCreate(MediaEncoderSettings mediaEncoderSettings) { + waitForContext(); + return nativeCreateEncoder(mediaEncoderSettings); + } + + public static int mediaEncoderDoEncode(long j) { + waitForContext(); + return nativeDoEncode(j); + } + + public static void mediaEncoderDoRelease(long j) { + waitForContext(); + nativeReleaseEncoder(j); + } + + private static native String nativeAllInOneShader(); + + private static native long nativeAnimationPlayerCreate(String str, int i, int i2, boolean z); + + private static native int nativeAnimationPlayerDecode(long j, Bitmap bitmap); + + private static native int nativeAnimationPlayerGetSize(long j); + + private static native void nativeAnimationPlayerRelease(long j); + + private static native boolean nativeAnimationPlayerSeek(long j, int i); + + private static native long nativeAudioGetTotalPcmDuration(); + + private static native byte[] nativeAudioGetWaveform(short[] sArr, int i); + + private static native int nativeAudioIsOpusFile(String str); + + private static native int nativeAudioOpenOpusFile(String str); + + private static native void nativeAudioReadOpusFile(ByteBuffer byteBuffer, int i, int[] iArr); + + private static native int nativeAudioSeekOpusFile(float f2); + + private static native int nativeAudioStartRecord(String str); + + private static native void nativeAudioStopRecord(); + + private static native int nativeAudioWriteFrame(ByteBuffer byteBuffer, int i); + + private static native void nativeBlur(Bitmap bitmap, int i); + + private static native void nativeColorCorrection(Bitmap bitmap, Bitmap bitmap2, float[] fArr, int i, int i2); + + private static native String nativeCreateColorCorrectionShader(float[] fArr, int i, int i2); + + private static native void nativeCreateCurve(int[] iArr, int[] iArr2, int[] iArr3, int[] iArr4, int[] iArr5, float f2, float f3, float f4, float f5, float f6); + + private static native long nativeCreateEncoder(MediaEncoderSettings mediaEncoderSettings); + + private static native void nativeCurveSaturation(Bitmap bitmap, int[] iArr, double d2, int i); + + private static native int nativeDoEncode(long j); + + private static native void nativeEnhance(Bitmap bitmap, double d2, int i); + + private static native void nativeFlipHorizontally(Bitmap bitmap); + + private static native void nativeFlipVertically(Bitmap bitmap); + + private static native void nativeHSLToRGB(float f2, float f3, float f4, int[] iArr); + + private static native void nativeHSVToRGB(float f2, float f3, float f4, int[] iArr); + + private static native void nativeHistogram(Bitmap bitmap, int[] iArr, int[] iArr2, int[] iArr3, int[] iArr4); + + private static native byte[] nativeJpegTurboCompress(Bitmap bitmap, int i); + + private static native void nativeLabToRGB(float f2, float f3, float f4, int[] iArr); + + private static native void nativeLookup(Bitmap bitmap, Bitmap bitmap2, int i); + + private static native String nativeOneInAllShader(); + + private static native void nativePinBitmap(Bitmap bitmap); + + private static native void nativeProcessorCreate(); + + private static native boolean nativeProcessorDo(byte[] bArr, long[] jArr); + + private static native int nativeProcessorGetVersion(); + + private static native boolean nativeProcessorInit(String str, int i, int i2); + + private static native boolean nativeProcessorLoad(String str, boolean z); + + private static native void nativeProcessorMouseTap(int i, float f2, float f3); + + private static native void nativeProcessorRelease(); + + private static native void nativeRGBToHSL(int i, int i2, int i3, float[] fArr); + + private static native void nativeRGBToHSV(int i, int i2, int i3, float[] fArr); + + private static native void nativeRGBToLab(int i, int i2, int i3, float[] fArr); + + private static native void nativeReleaseEncoder(long j); + + private static native void nativeResize(Bitmap bitmap, Bitmap bitmap2, int i); + + public static int openOpusFile(String str) { + waitForContext(); + return nativeAudioOpenOpusFile(str); + } + + public static void pinBitmap(Bitmap bitmap) { + waitForContext(); + nativePinBitmap(bitmap); + } + + public static void resizeBitmap(Bitmap bitmap, Bitmap bitmap2) { + waitForContext(); + nativeResize(bitmap, bitmap2, Runtime.getRuntime().availableProcessors()); + } + + private static String getProcMaps(String str) { + try (InputStream inputStream = Runtime.getRuntime().exec("cat /proc/" + str + "/maps").getInputStream()) { + return new Scanner(inputStream).useDelimiter("\\A").next(); + } catch (Exception e) { + return "empty"; + } + } + + public static class EncoderHandler extends Handler { + private Callback a; + + public EncoderHandler(Looper looper) { + super(looper); + } + + @Keep + public static Object postEventFromNative(Object obj, int i, int i2, int i3) { + EncoderHandler encoderHandler; + if (obj != null && (encoderHandler = (EncoderHandler) ((WeakReference) obj).get()) != null) { + if (i == 2) { + return encoderHandler.a.getLayerBitmap(i2, i3); + } + encoderHandler.sendMessage(encoderHandler.obtainMessage(i, i2, i3, null)); + } + return null; + } + + @Override // android.os.Handler + public void handleMessage(Message message) { + Callback callback = this.a; + if (callback == null) { + return; + } + int i = message.what; + if (i == 0) { + callback.onBytes(message.arg1); + } else if (i != 1) { + String str = MediaNative.a; + Log.e(str, "Unknown message type " + message.what); + } else { + callback.onProgress(message.arg1); + } + } + + public void setCallback(Callback callback) { + this.a = callback; + } + + public interface Callback { + @Nullable + Bitmap getLayerBitmap(int i, int i2); + + void onBytes(int i); + + void onProgress(int i); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/ru/vtosters/hooks/other/Preferences.java b/app/src/main/java/ru/vtosters/hooks/other/Preferences.java index 14e9ac6d5..3b04c0556 100644 --- a/app/src/main/java/ru/vtosters/hooks/other/Preferences.java +++ b/app/src/main/java/ru/vtosters/hooks/other/Preferences.java @@ -7,6 +7,7 @@ import android.content.pm.PackageManager; import android.os.Build; import android.os.StrictMode; import com.vk.medianative.MediaImageEncoder; +import com.vk.medianative.MediaNative; import com.vtosters.lite.data.Users; import com.vtosters.lite.fragments.SettingsListFragment; import ru.vtosters.hooks.GmsHook; @@ -24,6 +25,8 @@ public class Preferences { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); // fix profiles hide hook + MediaNative.init(application); + GmsHook.fixGapps(); ProxyUtils.setProxy(); NewsFeedFiltersUtils.setupFilters(); diff --git a/smali/smali_classes3/com/vk/medianative/MediaNative$EncoderHandler$Callback.smali b/smali/smali_classes3/com/vk/medianative/MediaNative$EncoderHandler$Callback.smali deleted file mode 100644 index 55a7ee39c..000000000 --- a/smali/smali_classes3/com/vk/medianative/MediaNative$EncoderHandler$Callback.smali +++ /dev/null @@ -1,27 +0,0 @@ -.class public interface abstract Lcom/vk/medianative/MediaNative$EncoderHandler$Callback; -.super Ljava/lang/Object; -.source "MediaNative.java" - - -# annotations -.annotation system Ldalvik/annotation/EnclosingClass; - value = Lcom/vk/medianative/MediaNative$EncoderHandler; -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x609 - name = "Callback" -.end annotation - - -# virtual methods -.method public abstract getLayerBitmap(II)Landroid/graphics/Bitmap; - .annotation build Landroidx/annotation/Nullable; - .end annotation -.end method - -.method public abstract onBytes(I)V -.end method - -.method public abstract onProgress(I)V -.end method diff --git a/smali/smali_classes3/com/vk/medianative/MediaNative$EncoderHandler.smali b/smali/smali_classes3/com/vk/medianative/MediaNative$EncoderHandler.smali deleted file mode 100644 index 5acdd7047..000000000 --- a/smali/smali_classes3/com/vk/medianative/MediaNative$EncoderHandler.smali +++ /dev/null @@ -1,157 +0,0 @@ -.class public Lcom/vk/medianative/MediaNative$EncoderHandler; -.super Landroid/os/Handler; -.source "MediaNative.java" - - -# annotations -.annotation system Ldalvik/annotation/EnclosingClass; - value = Lcom/vk/medianative/MediaNative; -.end annotation - -.annotation system Ldalvik/annotation/InnerClass; - accessFlags = 0x9 - name = "EncoderHandler" -.end annotation - -.annotation system Ldalvik/annotation/MemberClasses; - value = { - Lcom/vk/medianative/MediaNative$EncoderHandler$Callback; - } -.end annotation - - -# instance fields -.field private a:Lcom/vk/medianative/MediaNative$EncoderHandler$Callback; - - -# direct methods -.method constructor (Landroid/os/Looper;)V - .locals 0 - - .line 1 - invoke-direct {p0, p1}, Landroid/os/Handler;->(Landroid/os/Looper;)V - - return-void -.end method - -.method public static postEventFromNative(Ljava/lang/Object;III)Ljava/lang/Object; - .locals 2 - .annotation build Landroidx/annotation/Keep; - .end annotation - - const/4 v0, 0x0 - - if-nez p0, :cond_0 - - return-object v0 - - .line 1 - :cond_0 - check-cast p0, Ljava/lang/ref/WeakReference; - - invoke-virtual {p0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; - - move-result-object p0 - - check-cast p0, Lcom/vk/medianative/MediaNative$EncoderHandler; - - if-eqz p0, :cond_2 - - const/4 v1, 0x2 - - if-ne p1, v1, :cond_1 - - .line 2 - iget-object p0, p0, Lcom/vk/medianative/MediaNative$EncoderHandler;->a:Lcom/vk/medianative/MediaNative$EncoderHandler$Callback; - - invoke-interface {p0, p2, p3}, Lcom/vk/medianative/MediaNative$EncoderHandler$Callback;->getLayerBitmap(II)Landroid/graphics/Bitmap; - - move-result-object p0 - - return-object p0 - - .line 3 - :cond_1 - invoke-virtual {p0, p1, p2, p3, v0}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message; - - move-result-object p1 - - .line 4 - invoke-virtual {p0, p1}, Landroid/os/Handler;->sendMessage(Landroid/os/Message;)Z - - :cond_2 - return-object v0 -.end method - - -# virtual methods -.method public handleMessage(Landroid/os/Message;)V - .locals 3 - - .line 1 - iget-object v0, p0, Lcom/vk/medianative/MediaNative$EncoderHandler;->a:Lcom/vk/medianative/MediaNative$EncoderHandler$Callback; - - if-nez v0, :cond_0 - - return-void - - .line 2 - :cond_0 - iget v1, p1, Landroid/os/Message;->what:I - - if-eqz v1, :cond_2 - - const/4 v2, 0x1 - - if-eq v1, v2, :cond_1 - - .line 3 - invoke-static {}, Lcom/vk/medianative/MediaNative;->a()Ljava/lang/String; - - move-result-object v0 - - new-instance v1, Ljava/lang/StringBuilder; - - invoke-direct {v1}, Ljava/lang/StringBuilder;->()V - - const-string v2, "Unknown message type " - - invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - iget p1, p1, Landroid/os/Message;->what:I - - invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; - - invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; - - move-result-object p1 - - invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I - - return-void - - .line 4 - :cond_1 - iget p1, p1, Landroid/os/Message;->arg1:I - - invoke-interface {v0, p1}, Lcom/vk/medianative/MediaNative$EncoderHandler$Callback;->onProgress(I)V - - return-void - - .line 5 - :cond_2 - iget p1, p1, Landroid/os/Message;->arg1:I - - invoke-interface {v0, p1}, Lcom/vk/medianative/MediaNative$EncoderHandler$Callback;->onBytes(I)V - - return-void -.end method - -.method public setCallback(Lcom/vk/medianative/MediaNative$EncoderHandler$Callback;)V - .locals 0 - - .line 1 - iput-object p1, p0, Lcom/vk/medianative/MediaNative$EncoderHandler;->a:Lcom/vk/medianative/MediaNative$EncoderHandler$Callback; - - return-void -.end method diff --git a/smali/smali_classes3/com/vk/medianative/MediaNative.smali b/smali/smali_classes3/com/vk/medianative/MediaNative.smali deleted file mode 100644 index 885cb45a4..000000000 --- a/smali/smali_classes3/com/vk/medianative/MediaNative.smali +++ /dev/null @@ -1,1422 +0,0 @@ -.class public final Lcom/vk/medianative/MediaNative; -.super Ljava/lang/Object; -.source "MediaNative.java" - - -# annotations -.annotation system Ldalvik/annotation/MemberClasses; - value = { - Lcom/vk/medianative/MediaNative$EncoderHandler; - } -.end annotation - - -# static fields -.field private static final a:Ljava/lang/String; - -.field private static b:Z - -.field private static c:Z - -.field public static volatile context:Landroid/content/Context; - .annotation build Landroidx/annotation/Keep; - .end annotation -.end field - -.field private static final d:Ljava/lang/Object; - - -# direct methods -.method static constructor ()V - .locals 1 - - .line 1 - const-class v0, Lcom/vk/medianative/NativeMediaEncoder; - - invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; - - move-result-object v0 - - sput-object v0, Lcom/vk/medianative/MediaNative;->a:Ljava/lang/String; - - const/4 v0, 0x0 - - .line 2 - sput-boolean v0, Lcom/vk/medianative/MediaNative;->b:Z - - .line 3 - sput-boolean v0, Lcom/vk/medianative/MediaNative;->c:Z - - .line 4 - new-instance v0, Ljava/lang/Object; - - invoke-direct {v0}, Ljava/lang/Object;->()V - - sput-object v0, Lcom/vk/medianative/MediaNative;->d:Ljava/lang/Object; - - return-void -.end method - -.method public constructor ()V - .locals 0 - - .line 1 - invoke-direct {p0}, Ljava/lang/Object;->()V - - return-void -.end method - -.method public static HSLToIntRGB(FFF)I - .locals 1 - - const/4 v0, 0x3 - - new-array v0, v0, [I - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, v0}, Lcom/vk/medianative/MediaNative;->nativeHSLToRGB(FFF[I)V - - const/4 p0, 0x0 - - .line 3 - aget p0, v0, p0 - - const/4 p1, 0x1 - - aget p1, v0, p1 - - const/4 p2, 0x2 - - aget p2, v0, p2 - - const/16 v0, 0xff - - invoke-static {v0, p0, p1, p2}, Landroid/graphics/Color;->argb(IIII)I - - move-result p0 - - return p0 -.end method - -.method public static HSLToRGB(FFF[I)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, p3}, Lcom/vk/medianative/MediaNative;->nativeHSLToRGB(FFF[I)V - - return-void -.end method - -.method public static HSVToIntRGB(FFF)I - .locals 1 - - const/4 v0, 0x3 - - new-array v0, v0, [I - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, v0}, Lcom/vk/medianative/MediaNative;->nativeHSVToRGB(FFF[I)V - - const/4 p0, 0x0 - - .line 3 - aget p0, v0, p0 - - const/4 p1, 0x1 - - aget p1, v0, p1 - - const/4 p2, 0x2 - - aget p2, v0, p2 - - const/16 v0, 0xff - - invoke-static {v0, p0, p1, p2}, Landroid/graphics/Color;->argb(IIII)I - - move-result p0 - - return p0 -.end method - -.method public static HSVToRGB(FFF[I)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, p3}, Lcom/vk/medianative/MediaNative;->nativeHSVToRGB(FFF[I)V - - return-void -.end method - -.method public static LabToIntRGB(FFF)I - .locals 1 - - const/4 v0, 0x3 - - new-array v0, v0, [I - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, v0}, Lcom/vk/medianative/MediaNative;->nativeLabToRGB(FFF[I)V - - const/4 p0, 0x0 - - .line 3 - aget p0, v0, p0 - - const/4 p1, 0x1 - - aget p1, v0, p1 - - const/4 p2, 0x2 - - aget p2, v0, p2 - - const/16 v0, 0xff - - invoke-static {v0, p0, p1, p2}, Landroid/graphics/Color;->argb(IIII)I - - move-result p0 - - return p0 -.end method - -.method public static LabToRGB(FFF[I)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, p3}, Lcom/vk/medianative/MediaNative;->nativeLabToRGB(FFF[I)V - - return-void -.end method - -.method public static RGBToHSL(III[F)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, p3}, Lcom/vk/medianative/MediaNative;->nativeRGBToHSL(III[F)V - - return-void -.end method - -.method public static RGBToHSV(III[F)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, p3}, Lcom/vk/medianative/MediaNative;->nativeRGBToHSV(III[F)V - - return-void -.end method - -.method public static RGBToLab(III[F)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, p3}, Lcom/vk/medianative/MediaNative;->nativeRGBToLab(III[F)V - - return-void -.end method - -.method static synthetic a()Ljava/lang/String; - .locals 1 - - .line 1 - sget-object v0, Lcom/vk/medianative/MediaNative;->a:Ljava/lang/String; - - return-object v0 -.end method - -.method private static a(Ljava/lang/String;)Ljava/lang/String; - .locals 5 - - const-string v0, "empty" - - const/4 v1, 0x0 - - .line 2 - :try_start_0 - invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; - - move-result-object v2 - - new-instance v3, Ljava/lang/StringBuilder; - - invoke-direct {v3}, Ljava/lang/StringBuilder;->()V - - const-string v4, "cat /proc/" - - invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - const-string p0, "/maps" - - invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; - - move-result-object p0 - - invoke-virtual {v2, p0}, Ljava/lang/Runtime;->exec(Ljava/lang/String;)Ljava/lang/Process; - - move-result-object p0 - - if-eqz p0, :cond_3 - - .line 3 - invoke-virtual {p0}, Ljava/lang/Process;->getInputStream()Ljava/io/InputStream; - - move-result-object v1 - - .line 4 - new-instance p0, Ljava/util/Scanner; - - invoke-direct {p0, v1}, Ljava/util/Scanner;->(Ljava/io/InputStream;)V - - const-string v2, "\\A" - - invoke-virtual {p0, v2}, Ljava/util/Scanner;->useDelimiter(Ljava/lang/String;)Ljava/util/Scanner; - - move-result-object p0 - - .line 5 - invoke-virtual {p0}, Ljava/util/Scanner;->hasNext()Z - - move-result v2 - - if-eqz v2, :cond_0 - - invoke-virtual {p0}, Ljava/util/Scanner;->next()Ljava/lang/String; - - move-result-object v0 - :try_end_0 - .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_2 - .catchall {:try_start_0 .. :try_end_0} :catchall_0 - - :cond_0 - if-eqz v1, :cond_1 - - .line 6 - :try_start_1 - invoke-virtual {v1}, Ljava/io/InputStream;->close()V - :try_end_1 - .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0 - - :catch_0 - :cond_1 - return-object v0 - - :catchall_0 - move-exception p0 - - if-eqz v1, :cond_2 - - :try_start_2 - invoke-virtual {v1}, Ljava/io/InputStream;->close()V - :try_end_2 - .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_1 - - .line 7 - :catch_1 - :cond_2 - throw p0 - - :catch_2 - nop - - if-eqz v1, :cond_3 - - .line 8 - :try_start_3 - invoke-virtual {v1}, Ljava/io/InputStream;->close()V - :try_end_3 - .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_3} :catch_3 - - :catch_3 - :cond_3 - return-object v0 -.end method - -.method public static animationPlayerCreate(Ljava/lang/String;IIZ)J - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, p3}, Lcom/vk/medianative/MediaNative;->nativeAnimationPlayerCreate(Ljava/lang/String;IIZ)J - - move-result-wide p0 - - return-wide p0 -.end method - -.method public static animationPlayerDecode(JLandroid/graphics/Bitmap;)I - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2}, Lcom/vk/medianative/MediaNative;->nativeAnimationPlayerDecode(JLandroid/graphics/Bitmap;)I - - move-result p0 - - return p0 -.end method - -.method public static animationPlayerGetSize(J)I - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1}, Lcom/vk/medianative/MediaNative;->nativeAnimationPlayerGetSize(J)I - - move-result p0 - - return p0 -.end method - -.method public static animationPlayerRelease(J)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1}, Lcom/vk/medianative/MediaNative;->nativeAnimationPlayerRelease(J)V - - return-void -.end method - -.method public static animationPlayerSeek(JI)Z - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2}, Lcom/vk/medianative/MediaNative;->nativeAnimationPlayerSeek(JI)Z - - move-result p0 - - return p0 -.end method - -.method public static applyCurveAndSaturationBitmap(Landroid/graphics/Bitmap;[IF)V - .locals 2 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - float-to-double v0, p2 - - .line 2 - invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; - - move-result-object p2 - - invoke-virtual {p2}, Ljava/lang/Runtime;->availableProcessors()I - - move-result p2 - - invoke-static {p0, p1, v0, v1, p2}, Lcom/vk/medianative/MediaNative;->nativeCurveSaturation(Landroid/graphics/Bitmap;[IDI)V - - return-void -.end method - -.method public static audioGetTotalPcmDuration()J - .locals 2 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {}, Lcom/vk/medianative/MediaNative;->nativeAudioGetTotalPcmDuration()J - - move-result-wide v0 - - return-wide v0 -.end method - -.method public static audioGetWaveform([SI)[B - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1}, Lcom/vk/medianative/MediaNative;->nativeAudioGetWaveform([SI)[B - - move-result-object p0 - - return-object p0 -.end method - -.method public static audioIsOpusFile(Ljava/lang/String;)I - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Lcom/vk/medianative/MediaNative;->nativeAudioIsOpusFile(Ljava/lang/String;)I - - move-result p0 - - return p0 -.end method - -.method public static audioReadOpusFile(Ljava/nio/ByteBuffer;I[I)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2}, Lcom/vk/medianative/MediaNative;->nativeAudioReadOpusFile(Ljava/nio/ByteBuffer;I[I)V - - return-void -.end method - -.method public static audioSeekOpusFile(F)I - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Lcom/vk/medianative/MediaNative;->nativeAudioSeekOpusFile(F)I - - move-result p0 - - return p0 -.end method - -.method public static audioStartRecord(Ljava/lang/String;)I - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Lcom/vk/medianative/MediaNative;->nativeAudioStartRecord(Ljava/lang/String;)I - - move-result p0 - - return p0 -.end method - -.method public static audioStopRecord()V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {}, Lcom/vk/medianative/MediaNative;->nativeAudioStopRecord()V - - return-void -.end method - -.method public static audioWriteFrame(Ljava/nio/ByteBuffer;I)I - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1}, Lcom/vk/medianative/MediaNative;->nativeAudioWriteFrame(Ljava/nio/ByteBuffer;I)I - - move-result p0 - - return p0 -.end method - -.method private static b()V - .locals 4 - - .line 1 - sget-object v0, Lcom/vk/medianative/MediaNative;->d:Ljava/lang/Object; - - monitor-enter v0 - - .line 2 - :try_start_0 - sget-object v1, Lcom/vk/medianative/MediaNative;->context:Landroid/content/Context; - :try_end_0 - .catchall {:try_start_0 .. :try_end_0} :catchall_0 - - if-nez v1, :cond_0 - - .line 3 - :try_start_1 - sget-object v1, Lcom/vk/medianative/MediaNative;->d:Ljava/lang/Object; - - invoke-virtual {v1}, Ljava/lang/Object;->wait()V - :try_end_1 - .catch Ljava/lang/InterruptedException; {:try_start_1 .. :try_end_1} :catch_0 - .catchall {:try_start_1 .. :try_end_1} :catchall_0 - - goto :goto_0 - - :catch_0 - move-exception v1 - - .line 4 - :try_start_2 - sget-object v2, Lcom/vk/medianative/MediaNative;->a:Ljava/lang/String; - - const-string v3, "wtf" - - invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I - - .line 5 - :cond_0 - :goto_0 - monitor-exit v0 - - return-void - - :catchall_0 - move-exception v1 - - monitor-exit v0 - :try_end_2 - .catchall {:try_start_2 .. :try_end_2} :catchall_0 - - throw v1 -.end method - -.method public static blurBitmap(Landroid/graphics/Bitmap;I)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1}, Lcom/vk/medianative/MediaNative;->nativeBlur(Landroid/graphics/Bitmap;I)V - - return-void -.end method - -.method private static c()Ljava/lang/String; - .locals 1 - - .line 1 - invoke-static {}, Landroid/os/Process;->myPid()I - - move-result v0 - - invoke-static {v0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; - - move-result-object v0 - - invoke-static {v0}, Lcom/vk/medianative/MediaNative;->a(Ljava/lang/String;)Ljava/lang/String; - - move-result-object v0 - - return-object v0 -.end method - -.method public static cameraProcessorCreate()V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {}, Lcom/vk/medianative/MediaNative;->nativeProcessorCreate()V - - return-void -.end method - -.method public static cameraProcessorDo([B[J)Z - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1}, Lcom/vk/medianative/MediaNative;->nativeProcessorDo([B[J)Z - - move-result p0 - - return p0 -.end method - -.method public static cameraProcessorGetVersion()I - .locals 1 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {}, Lcom/vk/medianative/MediaNative;->nativeProcessorGetVersion()I - - move-result v0 - - return v0 -.end method - -.method public static cameraProcessorInit(Ljava/lang/String;II)Z - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2}, Lcom/vk/medianative/MediaNative;->nativeProcessorInit(Ljava/lang/String;II)Z - - move-result p0 - - return p0 -.end method - -.method public static cameraProcessorLoad(Ljava/lang/String;Z)Z - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1}, Lcom/vk/medianative/MediaNative;->nativeProcessorLoad(Ljava/lang/String;Z)Z - - move-result p0 - - return p0 -.end method - -.method public static cameraProcessorMouseTap(IFF)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2}, Lcom/vk/medianative/MediaNative;->nativeProcessorMouseTap(IFF)V - - return-void -.end method - -.method public static cameraProcessorRelease()V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {}, Lcom/vk/medianative/MediaNative;->nativeProcessorRelease()V - - return-void -.end method - -.method public static colorCorrectionBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;[F)V - .locals 2 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - array-length v0, p2 - - invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; - - move-result-object v1 - - invoke-virtual {v1}, Ljava/lang/Runtime;->availableProcessors()I - - move-result v1 - - invoke-static {p0, p1, p2, v0, v1}, Lcom/vk/medianative/MediaNative;->nativeColorCorrection(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;[FII)V - - return-void -.end method - -.method public static compressBitmapJpeg(Landroid/graphics/Bitmap;I)[B - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1}, Lcom/vk/medianative/MediaNative;->nativeJpegTurboCompress(Landroid/graphics/Bitmap;I)[B - - move-result-object p0 - - return-object p0 -.end method - -.method public static createAllInOneShader()Ljava/lang/String; - .locals 1 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {}, Lcom/vk/medianative/MediaNative;->nativeAllInOneShader()Ljava/lang/String; - - move-result-object v0 - - return-object v0 -.end method - -.method public static createCurve([I[I[I[I[IFFFFF)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static/range {p0 .. p9}, Lcom/vk/medianative/MediaNative;->nativeCreateCurve([I[I[I[I[IFFFFF)V - - return-void -.end method - -.method public static createOneInAllShader()Ljava/lang/String; - .locals 1 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {}, Lcom/vk/medianative/MediaNative;->nativeOneInAllShader()Ljava/lang/String; - - move-result-object v0 - - return-object v0 -.end method - -.method private static d()Ljava/lang/String; - .locals 1 - - const-string v0, "self" - - .line 1 - invoke-static {v0}, Lcom/vk/medianative/MediaNative;->a(Ljava/lang/String;)Ljava/lang/String; - - move-result-object v0 - - return-object v0 -.end method - -.method public static dump()Ljava/lang/String; - .locals 3 - - .line 1 - new-instance v0, Ljava/lang/StringBuilder; - - invoke-direct {v0}, Ljava/lang/StringBuilder;->()V - - const-string v1, "LD_LIBRARY_PATH:\n" - - .line 2 - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-static {}, Lcom/facebook/soloader/SoLoader;->makeLdLibraryPath()Ljava/lang/String; - - move-result-object v1 - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - const-string v1, "\n" - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - const-string v2, "SELF_MAPS:\n" - - .line 3 - invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-static {}, Lcom/vk/medianative/MediaNative;->d()Ljava/lang/String; - - move-result-object v2 - - invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - const-string v2, "PID_MAPS:\n" - - .line 4 - invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-static {}, Lcom/vk/medianative/MediaNative;->c()Ljava/lang/String; - - move-result-object v2 - - invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; - - .line 5 - invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; - - move-result-object v0 - - return-object v0 -.end method - -.method private static e()V - .locals 1 - - const-string v0, "vkmediamasks" - - .line 1 - invoke-static {v0}, Lcom/vk/medianative/NativeLibLoader;->loadLibrary(Ljava/lang/String;)Z - - move-result v0 - - sput-boolean v0, Lcom/vk/medianative/MediaNative;->c:Z - - return-void -.end method - -.method public static enhanceBitmap(Landroid/graphics/Bitmap;F)V - .locals 2 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - float-to-double v0, p1 - - .line 2 - invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; - - move-result-object p1 - - invoke-virtual {p1}, Ljava/lang/Runtime;->availableProcessors()I - - move-result p1 - - invoke-static {p0, v0, v1, p1}, Lcom/vk/medianative/MediaNative;->nativeEnhance(Landroid/graphics/Bitmap;DI)V - - return-void -.end method - -.method private static f()V - .locals 1 - - .line 1 - sget-boolean v0, Lcom/vk/medianative/MediaNative;->b:Z - - if-nez v0, :cond_0 - - const-string v0, "ffmpeg" - - .line 2 - invoke-static {v0}, Lcom/vk/medianative/NativeLibLoader;->loadLibrary(Ljava/lang/String;)Z - - const-string v0, "vkmedia" - - .line 3 - invoke-static {v0}, Lcom/vk/medianative/NativeLibLoader;->loadLibrary(Ljava/lang/String;)Z - - move-result v0 - - sput-boolean v0, Lcom/vk/medianative/MediaNative;->b:Z - - const-string v0, "vkmediaencoder" - - .line 4 - invoke-static {v0}, Lcom/vk/medianative/NativeLibLoader;->loadLibrary(Ljava/lang/String;)Z - - move-result v0 - - sput-boolean v0, Lcom/vk/medianative/MediaNative;->b:Z - - :cond_0 - return-void -.end method - -.method public static flipHorizontallyBitmap(Landroid/graphics/Bitmap;)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Lcom/vk/medianative/MediaNative;->nativeFlipHorizontally(Landroid/graphics/Bitmap;)V - - return-void -.end method - -.method public static flipVerticallyBitmap(Landroid/graphics/Bitmap;)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Lcom/vk/medianative/MediaNative;->nativeFlipVertically(Landroid/graphics/Bitmap;)V - - return-void -.end method - -.method public static generateHistogram(Landroid/graphics/Bitmap;[I[I[I[I)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1, p2, p3, p4}, Lcom/vk/medianative/MediaNative;->nativeHistogram(Landroid/graphics/Bitmap;[I[I[I[I)V - - return-void -.end method - -.method public static init(Landroid/content/Context;)V - .locals 2 - - .line 1 - sget-object v0, Lcom/vk/medianative/MediaNative;->d:Ljava/lang/Object; - - monitor-enter v0 - - .line 2 - :try_start_0 - sput-object p0, Lcom/vk/medianative/MediaNative;->context:Landroid/content/Context; - - const/4 v1, 0x0 - - .line 3 - invoke-static {p0, v1}, Lcom/facebook/soloader/SoLoader;->init(Landroid/content/Context;Z)V - - const-string p0, "gnustl_shared" - - .line 4 - invoke-static {p0}, Lcom/vk/medianative/NativeLibLoader;->loadLibrary(Ljava/lang/String;)Z - - const-string p0, "vkchronicle" - - .line 5 - invoke-static {p0}, Lcom/vk/medianative/NativeLibLoader;->loadLibrary(Ljava/lang/String;)Z - - .line 6 - invoke-static {}, Lcom/vk/medianative/MediaNative;->f()V - - .line 7 - sget-object p0, Lcom/vk/medianative/MediaNative;->d:Ljava/lang/Object; - - invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V - - .line 8 - monitor-exit v0 - - return-void - - :catchall_0 - move-exception p0 - - monitor-exit v0 - :try_end_0 - .catchall {:try_start_0 .. :try_end_0} :catchall_0 - - throw p0 -.end method - -.method public static intRGBToHSL(I[F)V - .locals 2 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Landroid/graphics/Color;->red(I)I - - move-result v0 - - invoke-static {p0}, Landroid/graphics/Color;->green(I)I - - move-result v1 - - invoke-static {p0}, Landroid/graphics/Color;->blue(I)I - - move-result p0 - - invoke-static {v0, v1, p0, p1}, Lcom/vk/medianative/MediaNative;->nativeRGBToHSL(III[F)V - - return-void -.end method - -.method public static intRGBToHSV(I[F)V - .locals 2 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Landroid/graphics/Color;->red(I)I - - move-result v0 - - invoke-static {p0}, Landroid/graphics/Color;->green(I)I - - move-result v1 - - invoke-static {p0}, Landroid/graphics/Color;->blue(I)I - - move-result p0 - - invoke-static {v0, v1, p0, p1}, Lcom/vk/medianative/MediaNative;->nativeRGBToHSV(III[F)V - - return-void -.end method - -.method public static intRGBToLab(I[F)V - .locals 2 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Landroid/graphics/Color;->red(I)I - - move-result v0 - - invoke-static {p0}, Landroid/graphics/Color;->green(I)I - - move-result v1 - - invoke-static {p0}, Landroid/graphics/Color;->blue(I)I - - move-result p0 - - invoke-static {v0, v1, p0, p1}, Lcom/vk/medianative/MediaNative;->nativeRGBToLab(III[F)V - - return-void -.end method - -.method public static isAsus()Z - .locals 2 - - .line 1 - sget-object v0, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String; - - const-string v1, "asus" - - .line 2 - invoke-virtual {v1, v0}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z - - move-result v0 - - return v0 -.end method - -.method public static isMediaSupported()Z - .locals 1 - - .line 1 - sget-boolean v0, Lcom/vk/medianative/MediaNative;->c:Z - - if-nez v0, :cond_0 - - .line 2 - invoke-static {}, Lcom/vk/medianative/MediaNative;->e()V - - .line 3 - :cond_0 - sget-boolean v0, Lcom/vk/medianative/MediaNative;->c:Z - - return v0 -.end method - -.method public static isX86()Z - .locals 3 - - const/4 v0, 0x0 - - .line 1 - :try_start_0 - sget-object v1, Landroid/os/Build;->SUPPORTED_ABIS:[Ljava/lang/String; - - aget-object v1, v1, v0 - - if-eqz v1, :cond_0 - - const-string v2, "x86" - - .line 2 - invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z - - move-result v1 - :try_end_0 - .catchall {:try_start_0 .. :try_end_0} :catchall_0 - - if-eqz v1, :cond_0 - - const/4 v0, 0x1 - - :catchall_0 - :cond_0 - return v0 -.end method - -.method public static lookupBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;)V - .locals 1 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; - - move-result-object v0 - - invoke-virtual {v0}, Ljava/lang/Runtime;->availableProcessors()I - - move-result v0 - - invoke-static {p0, p1, v0}, Lcom/vk/medianative/MediaNative;->nativeLookup(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;I)V - - return-void -.end method - -.method public static mediaEncoderCreate(Lcom/vk/medianative/MediaEncoderSettings;)J - .locals 2 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Lcom/vk/medianative/MediaNative;->nativeCreateEncoder(Lcom/vk/medianative/MediaEncoderSettings;)J - - move-result-wide v0 - - return-wide v0 -.end method - -.method public static mediaEncoderDoEncode(J)I - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1}, Lcom/vk/medianative/MediaNative;->nativeDoEncode(J)I - - move-result p0 - - return p0 -.end method - -.method public static mediaEncoderDoRelease(J)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0, p1}, Lcom/vk/medianative/MediaNative;->nativeReleaseEncoder(J)V - - return-void -.end method - -.method private static native nativeAllInOneShader()Ljava/lang/String; -.end method - -.method private static native nativeAnimationPlayerCreate(Ljava/lang/String;IIZ)J -.end method - -.method private static native nativeAnimationPlayerDecode(JLandroid/graphics/Bitmap;)I -.end method - -.method private static native nativeAnimationPlayerGetSize(J)I -.end method - -.method private static native nativeAnimationPlayerRelease(J)V -.end method - -.method private static native nativeAnimationPlayerSeek(JI)Z -.end method - -.method private static native nativeAudioGetTotalPcmDuration()J -.end method - -.method private static native nativeAudioGetWaveform([SI)[B -.end method - -.method private static native nativeAudioIsOpusFile(Ljava/lang/String;)I -.end method - -.method private static native nativeAudioOpenOpusFile(Ljava/lang/String;)I -.end method - -.method private static native nativeAudioReadOpusFile(Ljava/nio/ByteBuffer;I[I)V -.end method - -.method private static native nativeAudioSeekOpusFile(F)I -.end method - -.method private static native nativeAudioStartRecord(Ljava/lang/String;)I -.end method - -.method private static native nativeAudioStopRecord()V -.end method - -.method private static native nativeAudioWriteFrame(Ljava/nio/ByteBuffer;I)I -.end method - -.method private static native nativeBlur(Landroid/graphics/Bitmap;I)V -.end method - -.method private static native nativeColorCorrection(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;[FII)V -.end method - -.method private static native nativeCreateColorCorrectionShader([FII)Ljava/lang/String; -.end method - -.method private static native nativeCreateCurve([I[I[I[I[IFFFFF)V -.end method - -.method private static native nativeCreateEncoder(Lcom/vk/medianative/MediaEncoderSettings;)J -.end method - -.method private static native nativeCurveSaturation(Landroid/graphics/Bitmap;[IDI)V -.end method - -.method private static native nativeDoEncode(J)I -.end method - -.method private static native nativeEnhance(Landroid/graphics/Bitmap;DI)V -.end method - -.method private static native nativeFlipHorizontally(Landroid/graphics/Bitmap;)V -.end method - -.method private static native nativeFlipVertically(Landroid/graphics/Bitmap;)V -.end method - -.method private static native nativeHSLToRGB(FFF[I)V -.end method - -.method private static native nativeHSVToRGB(FFF[I)V -.end method - -.method private static native nativeHistogram(Landroid/graphics/Bitmap;[I[I[I[I)V -.end method - -.method private static native nativeJpegTurboCompress(Landroid/graphics/Bitmap;I)[B -.end method - -.method private static native nativeLabToRGB(FFF[I)V -.end method - -.method private static native nativeLookup(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;I)V -.end method - -.method private static native nativeOneInAllShader()Ljava/lang/String; -.end method - -.method private static native nativePinBitmap(Landroid/graphics/Bitmap;)V -.end method - -.method private static native nativeProcessorCreate()V -.end method - -.method private static native nativeProcessorDo([B[J)Z -.end method - -.method private static native nativeProcessorGetVersion()I -.end method - -.method private static native nativeProcessorInit(Ljava/lang/String;II)Z -.end method - -.method private static native nativeProcessorLoad(Ljava/lang/String;Z)Z -.end method - -.method private static native nativeProcessorMouseTap(IFF)V -.end method - -.method private static native nativeProcessorRelease()V -.end method - -.method private static native nativeRGBToHSL(III[F)V -.end method - -.method private static native nativeRGBToHSV(III[F)V -.end method - -.method private static native nativeRGBToLab(III[F)V -.end method - -.method private static native nativeReleaseEncoder(J)V -.end method - -.method private static native nativeResize(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;I)V -.end method - -.method public static openOpusFile(Ljava/lang/String;)I - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Lcom/vk/medianative/MediaNative;->nativeAudioOpenOpusFile(Ljava/lang/String;)I - - move-result p0 - - return p0 -.end method - -.method public static pinBitmap(Landroid/graphics/Bitmap;)V - .locals 0 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {p0}, Lcom/vk/medianative/MediaNative;->nativePinBitmap(Landroid/graphics/Bitmap;)V - - return-void -.end method - -.method public static resizeBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;)V - .locals 1 - - .line 1 - invoke-static {}, Lcom/vk/medianative/MediaNative;->b()V - - .line 2 - invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime; - - move-result-object v0 - - invoke-virtual {v0}, Ljava/lang/Runtime;->availableProcessors()I - - move-result v0 - - invoke-static {p0, p1, v0}, Lcom/vk/medianative/MediaNative;->nativeResize(Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;I)V - - return-void -.end method diff --git a/smali/smali_classes4/com/vtosters/lite/VKApplication.smali b/smali/smali_classes4/com/vtosters/lite/VKApplication.smali index 300ebeeb7..bd2288853 100644 --- a/smali/smali_classes4/com/vtosters/lite/VKApplication.smali +++ b/smali/smali_classes4/com/vtosters/lite/VKApplication.smali @@ -758,7 +758,7 @@ .line 3 sget-object v0, Lcom/vk/core/util/AppContextHolder;->a:Landroid/content/Context; - invoke-static {v0}, Lcom/vk/medianative/MediaNative;->init(Landroid/content/Context;)V + # invoke-static {v0}, Lcom/vk/medianative/MediaNative;->init(Landroid/content/Context;)V .line 4 sget-object v0, Lcom/vk/libvideo/storage/VideoPositionStorage;->e:Lcom/vk/libvideo/storage/VideoPositionStorage$c;