SoftwareEncoderWrapper.smali

.class public Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;
.super Ljava/lang/Object;
.source "SourceFile"


# annotations
.annotation runtime Lcom/tencent/liteav/base/annotations/JNINamespace;
    value = "liteav::video"
.end annotation


# static fields
.field private static final MAX_CACHE_SIZE:I = 0x1


# instance fields
.field private final mFrameQueue:Lcom/tencent/liteav/videobase/utils/m;

.field private mListener:Lcom/tencent/liteav/videoproducer/encoder/bp$a;

.field private mNativeEncodeWrapper:J

.field private final mReporter:Lcom/tencent/liteav/videobase/videobase/IVideoReporter;

.field private final mStreamType:Lcom/tencent/liteav/videoproducer/producer/VideoProducerDef$StreamType;

.field private final mTAG:Ljava/lang/String;

.field private mWorkHandler:Lcom/tencent/liteav/base/util/CustomHandler;


# direct methods
.method public constructor <init>(Lcom/tencent/liteav/videobase/videobase/IVideoReporter;Lcom/tencent/liteav/videoproducer/producer/VideoProducerDef$StreamType;)V
    .registers 5

    .line 42
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 33
    new-instance v0, Ljava/lang/StringBuilder;

    const-string v1, "SoftwareEncoderWrapper@"

    invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    invoke-virtual {p0}, Ljava/lang/Object;->hashCode()I

    move-result v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mTAG:Ljava/lang/String;

    .line 36
    new-instance v0, Lcom/tencent/liteav/videobase/utils/m;

    invoke-direct {v0}, Lcom/tencent/liteav/videobase/utils/m;-><init>()V

    iput-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mFrameQueue:Lcom/tencent/liteav/videobase/utils/m;

    const-wide/16 v0, 0x0

    .line 39
    iput-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    .line 43
    iput-object p1, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mReporter:Lcom/tencent/liteav/videobase/videobase/IVideoReporter;

    .line 44
    iput-object p2, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mStreamType:Lcom/tencent/liteav/videoproducer/producer/VideoProducerDef$StreamType;

    return-void
.end method

.method private static createEncodedVideoFrameCallFromNative(Ljava/nio/ByteBuffer;IIIIJJJIIJJJZI)Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;
    .registers 24

    .line 222
    new-instance v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;

    invoke-direct {v0}, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;-><init>()V

    .line 223
    invoke-static {p1}, Lcom/tencent/liteav/videobase/common/a;->a(I)Lcom/tencent/liteav/videobase/common/a;

    move-result-object v1

    iput-object v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->nalType:Lcom/tencent/liteav/videobase/common/a;

    .line 224
    invoke-static {p2}, Lcom/tencent/liteav/videobase/common/CodecType;->a(I)Lcom/tencent/liteav/videobase/common/CodecType;

    move-result-object v1

    iput-object v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->codecType:Lcom/tencent/liteav/videobase/common/CodecType;

    .line 225
    invoke-static {p3}, Lcom/tencent/liteav/videobase/common/b;->a(I)Lcom/tencent/liteav/videobase/common/b;

    move-result-object v1

    iput-object v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->profileType:Lcom/tencent/liteav/videobase/common/b;

    move-object v1, p0

    .line 226
    iput-object v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->data:Ljava/nio/ByteBuffer;

    move-wide v1, p5

    .line 227
    iput-wide v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->dts:J

    move-wide v1, p7

    .line 228
    iput-wide v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->pts:J

    move v1, p4

    .line 229
    iput v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->rotation:I

    move-wide/from16 v1, p13

    .line 230
    iput-wide v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->frameIndex:J

    const-wide/16 v1, 0x0

    .line 231
    iput-wide v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->gopFrameIndex:J

    move-wide/from16 v1, p15

    .line 232
    iput-wide v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->gopIndex:J

    move-wide/from16 v1, p17

    .line 233
    iput-wide v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->refFrameIndex:J

    move-wide v1, p9

    .line 234
    iput-wide v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->nativePtr:J

    move v1, p11

    .line 235
    iput v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->width:I

    move v1, p12

    .line 236
    iput v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->height:I

    if-eqz p19, :cond_45

    .line 238
    invoke-static/range {p20 .. p20}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    iput-object v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->svcInfo:Ljava/lang/Integer;

    goto :goto_48

    :cond_45
    const/4 v1, 0x0

    .line 240
    iput-object v1, v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;->svcInfo:Ljava/lang/Integer;

    :goto_48
    return-object v0
.end method

.method static synthetic lambda$ackRPSRecvFrameIndex$5(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;II)V
    .registers 7

    .line 124
    iget-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    const-wide/16 v2, 0x0

    cmp-long p0, v0, v2

    if-eqz p0, :cond_b

    .line 125
    invoke-static {v0, v1, p1, p2}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeSetRPSRefBitmap(JII)I

    :cond_b
    return-void
.end method

.method static synthetic lambda$encodeFrame$2(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)V
    .registers 11

    .line 85
    invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J

    move-result-wide v0

    .line 86
    iget-object v2, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mFrameQueue:Lcom/tencent/liteav/videobase/utils/m;

    invoke-virtual {v2}, Lcom/tencent/liteav/videobase/utils/m;->a()Lcom/tencent/liteav/videobase/frame/PixelFrame;

    move-result-object v2

    if-nez v2, :cond_d

    return-void

    .line 90
    :cond_d
    iget-wide v3, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    const-wide/16 v5, 0x0

    cmp-long v5, v3, v5

    if-eqz v5, :cond_28

    .line 91
    invoke-virtual {v2}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getBuffer()Ljava/nio/ByteBuffer;

    move-result-object v5

    .line 92
    invoke-virtual {v2}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getWidth()I

    move-result v6

    invoke-virtual {v2}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getHeight()I

    move-result v7

    .line 93
    invoke-virtual {v2}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getTimestamp()J

    move-result-wide v8

    .line 91
    invoke-static/range {v3 .. v9}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeEncodeFrame(JLjava/nio/ByteBuffer;IIJ)I

    .line 95
    :cond_28
    invoke-virtual {v2}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->release()V

    .line 96
    invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J

    move-result-wide v2

    sub-long/2addr v2, v0

    long-to-int v0, v2

    .line 97
    iget-object v1, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mReporter:Lcom/tencent/liteav/videobase/videobase/IVideoReporter;

    sget-object v2, Lcom/tencent/liteav/videobase/videobase/i;->A:Lcom/tencent/liteav/videobase/videobase/i;

    iget-object p0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mStreamType:Lcom/tencent/liteav/videoproducer/producer/VideoProducerDef$StreamType;

    .line 1020
    iget p0, p0, Lcom/tencent/liteav/videoproducer/producer/VideoProducerDef$StreamType;->mValue:I

    .line 98
    invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v0

    .line 97
    invoke-interface {v1, v2, p0, v0}, Lcom/tencent/liteav/videobase/videobase/IVideoReporter;->updateStatus(Lcom/tencent/liteav/videobase/videobase/i;ILjava/lang/Object;)V

    return-void
.end method

.method static synthetic lambda$initialize$0(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)V
    .registers 5

    .line 56
    invoke-static {p0}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeCreate(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)J

    move-result-wide v0

    iput-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    .line 57
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mTAG:Ljava/lang/String;

    new-instance v1, Ljava/lang/StringBuilder;

    const-string v2, "initialize "

    invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V

    iget-wide v2, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p0

    invoke-static {v0, p0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method

.method static synthetic lambda$restartIDRFrame$6(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)V
    .registers 5

    .line 132
    iget-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    const-wide/16 v2, 0x0

    cmp-long p0, v0, v2

    if-eqz p0, :cond_b

    .line 133
    invoke-static {v0, v1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeRestartIDR(J)V

    :cond_b
    return-void
.end method

.method static synthetic lambda$setBitrate$7(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;I)V
    .registers 6

    .line 140
    iget-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    const-wide/16 v2, 0x0

    cmp-long p0, v0, v2

    if-eqz p0, :cond_b

    .line 141
    invoke-static {v0, v1, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeSetBitrate(JI)V

    :cond_b
    return-void
.end method

.method static synthetic lambda$setFps$8(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;I)V
    .registers 6

    .line 148
    iget-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    const-wide/16 v2, 0x0

    cmp-long p0, v0, v2

    if-eqz p0, :cond_b

    .line 149
    invoke-static {v0, v1, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeSetFps(JI)V

    :cond_b
    return-void
.end method

.method static synthetic lambda$setRPSIFrameFPS$3(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;I)V
    .registers 6

    .line 108
    iget-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    const-wide/16 v2, 0x0

    cmp-long p0, v0, v2

    if-eqz p0, :cond_b

    .line 109
    invoke-static {v0, v1, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeSetRpsIdrFps(JI)V

    :cond_b
    return-void
.end method

.method static synthetic lambda$setRPSNearestREFSize$4(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;I)V
    .registers 6

    .line 116
    iget-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    const-wide/16 v2, 0x0

    cmp-long p0, v0, v2

    if-eqz p0, :cond_b

    .line 117
    invoke-static {v0, v1, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeSetNearestRPS(JI)I

    :cond_b
    return-void
.end method

.method static synthetic lambda$signalEndOfStream$9(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)V
    .registers 3

    .line 157
    iget-object p0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mListener:Lcom/tencent/liteav/videoproducer/encoder/bp$a;

    if-eqz p0, :cond_d

    .line 158
    new-instance v0, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;

    invoke-direct {v0}, Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;-><init>()V

    const/4 v1, 0x1

    invoke-virtual {p0, v0, v1}, Lcom/tencent/liteav/videoproducer/encoder/bp$a;->onEncodedNAL(Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;Z)V

    :cond_d
    return-void
.end method

.method static synthetic lambda$start$1(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;Lcom/tencent/liteav/videoproducer/encoder/bp$a;Lcom/tencent/liteav/videoproducer/encoder/VideoEncodeParams;)V
    .registers 7

    .line 64
    iput-object p1, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mListener:Lcom/tencent/liteav/videoproducer/encoder/bp$a;

    .line 65
    iget-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    const-wide/16 v2, 0x0

    cmp-long p1, v0, v2

    if-eqz p1, :cond_d

    .line 66
    invoke-static {v0, v1, p2}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeStart(JLcom/tencent/liteav/videoproducer/encoder/VideoEncodeParams;)I

    .line 68
    :cond_d
    iget-object p0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mTAG:Ljava/lang/String;

    const-string p1, "start encoder"

    invoke-static {p0, p1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method

.method static synthetic lambda$stopSync$10(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)V
    .registers 5

    .line 165
    iget-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-eqz v2, :cond_b

    .line 166
    invoke-static {v0, v1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeStop(J)I

    :cond_b
    const/4 v0, 0x0

    .line 168
    iput-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mListener:Lcom/tencent/liteav/videoproducer/encoder/bp$a;

    .line 169
    iget-object p0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mTAG:Ljava/lang/String;

    const-string v0, "stop encoder"

    invoke-static {p0, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method

.method static synthetic lambda$uninitialize$11(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)V
    .registers 6

    .line 178
    iget-wide v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    const-wide/16 v2, 0x0

    cmp-long v4, v0, v2

    if-eqz v4, :cond_d

    .line 179
    invoke-static {v0, v1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->nativeDestroy(J)V

    .line 180
    iput-wide v2, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mNativeEncodeWrapper:J

    .line 182
    :cond_d
    iget-object p0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mTAG:Ljava/lang/String;

    const-string v0, "destroy encode wrapper"

    invoke-static {p0, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method

.method private static native nativeCreate(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)J
.end method

.method private static native nativeDestroy(J)V
.end method

.method private static native nativeEncodeFrame(JLjava/nio/ByteBuffer;IIJ)I
.end method

.method public static native nativeIsSoftwareHevcEncoderSupport()Z
.end method

.method private static native nativeRestartIDR(J)V
.end method

.method private static native nativeSetBitrate(JI)V
.end method

.method private static native nativeSetFps(JI)V
.end method

.method private static native nativeSetNearestRPS(JI)I
.end method

.method private static native nativeSetRPSRefBitmap(JII)I
.end method

.method private static native nativeSetRpsIdrFps(JI)V
.end method

.method private static native nativeStart(JLcom/tencent/liteav/videoproducer/encoder/VideoEncodeParams;)I
.end method

.method private static native nativeStop(J)I
.end method

.method private onEncodedFail()V
    .registers 3

    .line 204
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mListener:Lcom/tencent/liteav/videoproducer/encoder/bp$a;

    if-eqz v0, :cond_9

    .line 205
    sget-object v1, Lcom/tencent/liteav/videobase/videobase/h$a;->j:Lcom/tencent/liteav/videobase/videobase/h$a;

    invoke-virtual {v0, v1}, Lcom/tencent/liteav/videoproducer/encoder/bp$a;->onEncodedFail(Lcom/tencent/liteav/videobase/videobase/h$a;)V

    :cond_9
    return-void
.end method

.method private onEncodedNAL(Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;)V
    .registers 4

    .line 197
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mListener:Lcom/tencent/liteav/videoproducer/encoder/bp$a;

    if-eqz v0, :cond_8

    const/4 v1, 0x0

    .line 198
    invoke-virtual {v0, p1, v1}, Lcom/tencent/liteav/videoproducer/encoder/bp$a;->onEncodedNAL(Lcom/tencent/liteav/videobase/common/EncodedVideoFrame;Z)V

    :cond_8
    return-void
.end method

.method private onRpsFrameRateChanged(ZI)V
    .registers 4

    .line 211
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mListener:Lcom/tencent/liteav/videoproducer/encoder/bp$a;

    if-eqz v0, :cond_7

    .line 212
    invoke-virtual {v0, p1, p2}, Lcom/tencent/liteav/videoproducer/encoder/bp$a;->a(ZI)V

    :cond_7
    return-void
.end method

.method private runOrPostToWorkThread(Ljava/lang/Runnable;)V
    .registers 3

    .line 189
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mWorkHandler:Lcom/tencent/liteav/base/util/CustomHandler;

    if-eqz v0, :cond_7

    .line 191
    invoke-virtual {v0, p1}, Lcom/tencent/liteav/base/util/CustomHandler;->runOrPost(Ljava/lang/Runnable;)Z

    :cond_7
    return-void
.end method


# virtual methods
.method public ackRPSRecvFrameIndex(II)V
    .registers 3

    .line 123
    invoke-static {p0, p1, p2}, Lcom/tencent/liteav/videoproducer/encoder/af;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;II)Ljava/lang/Runnable;

    move-result-object p1

    invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    return-void
.end method

.method public encodeFrame(Lcom/tencent/liteav/videobase/frame/PixelFrame;)V
    .registers 4

    .line 77
    invoke-virtual {p1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getPixelFormatType()Lcom/tencent/liteav/videobase/base/GLConstants$PixelFormatType;

    move-result-object v0

    sget-object v1, Lcom/tencent/liteav/videobase/base/GLConstants$PixelFormatType;->a:Lcom/tencent/liteav/videobase/base/GLConstants$PixelFormatType;

    if-ne v0, v1, :cond_1e

    .line 78
    invoke-virtual {p1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->getPixelBufferType()Lcom/tencent/liteav/videobase/base/GLConstants$PixelBufferType;

    move-result-object v0

    sget-object v1, Lcom/tencent/liteav/videobase/base/GLConstants$PixelBufferType;->a:Lcom/tencent/liteav/videobase/base/GLConstants$PixelBufferType;

    if-eq v0, v1, :cond_11

    goto :goto_1e

    .line 83
    :cond_11
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mFrameQueue:Lcom/tencent/liteav/videobase/utils/m;

    invoke-virtual {v0, p1}, Lcom/tencent/liteav/videobase/utils/m;->a(Lcom/tencent/liteav/videobase/frame/PixelFrame;)V

    .line 84
    invoke-static {p0}, Lcom/tencent/liteav/videoproducer/encoder/ac;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)Ljava/lang/Runnable;

    move-result-object p1

    invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    return-void

    .line 79
    :cond_1e
    :goto_1e
    iget-object p1, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mTAG:Ljava/lang/String;

    const-string v0, "pixelFrame pixelFormat not I420 "

    invoke-static {p1, v0}, Lcom/tencent/liteav/base/util/LiteavLog;->d(Ljava/lang/String;Ljava/lang/String;)V

    return-void
.end method

.method public declared-synchronized initialize()V
    .registers 3

    monitor-enter p0

    .line 48
    :try_start_1
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mWorkHandler:Lcom/tencent/liteav/base/util/CustomHandler;
    :try_end_3
    .catchall {:try_start_1 .. :try_end_3} :catchall_25

    if-eqz v0, :cond_7

    .line 49
    monitor-exit p0

    return-void

    .line 52
    :cond_7
    :try_start_7
    new-instance v0, Landroid/os/HandlerThread;

    const-string v1, "software-encoder"

    invoke-direct {v0, v1}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V

    .line 53
    invoke-virtual {v0}, Landroid/os/HandlerThread;->start()V

    .line 54
    new-instance v1, Lcom/tencent/liteav/base/util/CustomHandler;

    invoke-virtual {v0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;

    move-result-object v0

    invoke-direct {v1, v0}, Lcom/tencent/liteav/base/util/CustomHandler;-><init>(Landroid/os/Looper;)V

    iput-object v1, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mWorkHandler:Lcom/tencent/liteav/base/util/CustomHandler;

    .line 55
    invoke-static {p0}, Lcom/tencent/liteav/videoproducer/encoder/x;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)Ljava/lang/Runnable;

    move-result-object v0

    invoke-virtual {v1, v0}, Lcom/tencent/liteav/base/util/CustomHandler;->runOrPost(Ljava/lang/Runnable;)Z
    :try_end_23
    .catchall {:try_start_7 .. :try_end_23} :catchall_25

    .line 59
    monitor-exit p0

    return-void

    :catchall_25
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public isInputQueueFull()Z
    .registers 2

    .line 103
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mFrameQueue:Lcom/tencent/liteav/videobase/utils/m;

    invoke-virtual {v0}, Lcom/tencent/liteav/videobase/utils/m;->c()I

    move-result v0

    if-lez v0, :cond_a

    const/4 v0, 0x1

    return v0

    :cond_a
    const/4 v0, 0x0

    return v0
.end method

.method public restartIDRFrame()V
    .registers 2

    .line 131
    invoke-static {p0}, Lcom/tencent/liteav/videoproducer/encoder/ag;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)Ljava/lang/Runnable;

    move-result-object v0

    invoke-direct {p0, v0}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    return-void
.end method

.method public setBitrate(I)V
    .registers 2

    .line 139
    invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/ah;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;I)Ljava/lang/Runnable;

    move-result-object p1

    invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    return-void
.end method

.method public setFps(I)V
    .registers 2

    .line 147
    invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/ai;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;I)Ljava/lang/Runnable;

    move-result-object p1

    invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    return-void
.end method

.method public setRPSIFrameFPS(I)V
    .registers 2

    .line 107
    invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/ad;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;I)Ljava/lang/Runnable;

    move-result-object p1

    invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    return-void
.end method

.method public setRPSNearestREFSize(I)V
    .registers 2

    .line 115
    invoke-static {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/ae;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;I)Ljava/lang/Runnable;

    move-result-object p1

    invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    return-void
.end method

.method public signalEndOfStream()V
    .registers 3

    .line 155
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mTAG:Ljava/lang/String;

    const-string v1, "signalEndOfStream"

    invoke-static {v0, v1}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V

    .line 156
    invoke-static {p0}, Lcom/tencent/liteav/videoproducer/encoder/y;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)Ljava/lang/Runnable;

    move-result-object v0

    invoke-direct {p0, v0}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    return-void
.end method

.method public start(Lcom/tencent/liteav/videoproducer/encoder/VideoEncodeParams;Lcom/tencent/liteav/videoproducer/encoder/bp$a;)V
    .registers 4

    .line 62
    new-instance v0, Lcom/tencent/liteav/videoproducer/encoder/VideoEncodeParams;

    invoke-direct {v0, p1}, Lcom/tencent/liteav/videoproducer/encoder/VideoEncodeParams;-><init>(Lcom/tencent/liteav/videoproducer/encoder/VideoEncodeParams;)V

    .line 63
    invoke-static {p0, p2, v0}, Lcom/tencent/liteav/videoproducer/encoder/ab;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;Lcom/tencent/liteav/videoproducer/encoder/bp$a;Lcom/tencent/liteav/videoproducer/encoder/VideoEncodeParams;)Ljava/lang/Runnable;

    move-result-object p1

    invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    return-void
.end method

.method public stopSync(J)V
    .registers 3

    .line 164
    invoke-static {p0}, Lcom/tencent/liteav/videoproducer/encoder/z;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)Ljava/lang/Runnable;

    move-result-object p1

    invoke-direct {p0, p1}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    return-void
.end method

.method public declared-synchronized uninitialize()V
    .registers 2

    monitor-enter p0

    .line 174
    :try_start_1
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mWorkHandler:Lcom/tencent/liteav/base/util/CustomHandler;
    :try_end_3
    .catchall {:try_start_1 .. :try_end_3} :catchall_18

    if-nez v0, :cond_7

    .line 175
    monitor-exit p0

    return-void

    .line 177
    :cond_7
    :try_start_7
    invoke-static {p0}, Lcom/tencent/liteav/videoproducer/encoder/aa;->a(Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;)Ljava/lang/Runnable;

    move-result-object v0

    invoke-direct {p0, v0}, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->runOrPostToWorkThread(Ljava/lang/Runnable;)V

    .line 184
    iget-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mWorkHandler:Lcom/tencent/liteav/base/util/CustomHandler;

    invoke-virtual {v0}, Lcom/tencent/liteav/base/util/CustomHandler;->quitLooper()V

    const/4 v0, 0x0

    .line 185
    iput-object v0, p0, Lcom/tencent/liteav/videoproducer/encoder/SoftwareEncoderWrapper;->mWorkHandler:Lcom/tencent/liteav/base/util/CustomHandler;
    :try_end_16
    .catchall {:try_start_7 .. :try_end_16} :catchall_18

    .line 186
    monitor-exit p0

    return-void

    :catchall_18
    move-exception v0

    monitor-exit p0

    throw v0
.end method