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