m.smali
.class public final Lcom/tencent/liteav/videobase/utils/m;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/tencent/liteav/videobase/utils/k;
# instance fields
.field private final a:Ljava/util/Deque;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Deque<",
"Lcom/tencent/liteav/videobase/frame/PixelFrame;",
">;"
}
.end annotation
.end field
.field private b:I
# direct methods
.method public constructor <init>()V
.registers 2
.line 23
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 20
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lcom/tencent/liteav/videobase/utils/m;->a:Ljava/util/Deque;
const/4 v0, 0x1
.line 24
iput v0, p0, Lcom/tencent/liteav/videobase/utils/m;->b:I
return-void
.end method
# virtual methods
.method public final a()Lcom/tencent/liteav/videobase/frame/PixelFrame;
.registers 2
.line 29
monitor-enter p0
.line 30
:try_start_1
iget-object v0, p0, Lcom/tencent/liteav/videobase/utils/m;->a:Ljava/util/Deque;
invoke-interface {v0}, Ljava/util/Deque;->pollFirst()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/tencent/liteav/videobase/frame/PixelFrame;
monitor-exit p0
return-object v0
:catchall_b
move-exception v0
.line 31
monitor-exit p0
:try_end_d
.catchall {:try_start_1 .. :try_end_d} :catchall_b
throw v0
.end method
.method public final a(Lcom/tencent/liteav/videobase/frame/PixelFrame;)V
.registers 4
.line 36
invoke-virtual {p1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->retain()I
.line 38
monitor-enter p0
.line 39
:try_start_4
iget-object v0, p0, Lcom/tencent/liteav/videobase/utils/m;->a:Ljava/util/Deque;
invoke-interface {v0}, Ljava/util/Deque;->size()I
move-result v0
iget v1, p0, Lcom/tencent/liteav/videobase/utils/m;->b:I
if-lt v0, v1, :cond_17
.line 40
iget-object v0, p0, Lcom/tencent/liteav/videobase/utils/m;->a:Ljava/util/Deque;
invoke-interface {v0}, Ljava/util/Deque;->removeFirst()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/tencent/liteav/videobase/frame/PixelFrame;
goto :goto_18
:cond_17
const/4 v0, 0x0
.line 42
:goto_18
iget-object v1, p0, Lcom/tencent/liteav/videobase/utils/m;->a:Ljava/util/Deque;
invoke-interface {v1, p1}, Ljava/util/Deque;->addLast(Ljava/lang/Object;)V
.line 43
monitor-exit p0
:try_end_1e
.catchall {:try_start_4 .. :try_end_1e} :catchall_24
if-eqz v0, :cond_23
.line 45
invoke-virtual {v0}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->release()V
:cond_23
return-void
:catchall_24
move-exception p1
.line 43
:try_start_25
monitor-exit p0
:try_end_26
.catchall {:try_start_25 .. :try_end_26} :catchall_24
throw p1
.end method
.method public final b()V
.registers 4
.line 52
monitor-enter p0
.line 53
:try_start_1
new-instance v0, Ljava/util/ArrayList;
iget-object v1, p0, Lcom/tencent/liteav/videobase/utils/m;->a:Ljava/util/Deque;
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(Ljava/util/Collection;)V
.line 54
iget-object v1, p0, Lcom/tencent/liteav/videobase/utils/m;->a:Ljava/util/Deque;
invoke-interface {v1}, Ljava/util/Deque;->clear()V
.line 55
monitor-exit p0
:try_end_e
.catchall {:try_start_1 .. :try_end_e} :catchall_19
const-string v1, "RingFrameQueue"
const-string v2, "evictAll pixelFrame."
.line 56
invoke-static {v1, v2}, Lcom/tencent/liteav/base/util/LiteavLog;->i(Ljava/lang/String;Ljava/lang/String;)V
.line 57
invoke-static {v0}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->releasePixelFrames(Ljava/util/Collection;)V
return-void
:catchall_19
move-exception v0
.line 55
:try_start_1a
monitor-exit p0
:try_end_1b
.catchall {:try_start_1a .. :try_end_1b} :catchall_19
throw v0
.end method
.method public final b(Lcom/tencent/liteav/videobase/frame/PixelFrame;)Z
.registers 4
const/4 v0, 0x0
if-nez p1, :cond_4
return v0
.line 66
:cond_4
monitor-enter p0
.line 67
:try_start_5
iget-object v1, p0, Lcom/tencent/liteav/videobase/utils/m;->a:Ljava/util/Deque;
invoke-interface {v1}, Ljava/util/Deque;->size()I
move-result v1
if-lez v1, :cond_13
.line 68
iget-object v0, p0, Lcom/tencent/liteav/videobase/utils/m;->a:Ljava/util/Deque;
invoke-interface {v0, p1}, Ljava/util/Deque;->removeFirstOccurrence(Ljava/lang/Object;)Z
move-result v0
.line 70
:cond_13
monitor-exit p0
:try_end_14
.catchall {:try_start_5 .. :try_end_14} :catchall_1a
if-eqz v0, :cond_19
.line 73
invoke-virtual {p1}, Lcom/tencent/liteav/videobase/frame/PixelFrame;->release()V
:cond_19
return v0
:catchall_1a
move-exception p1
.line 70
:try_start_1b
monitor-exit p0
:try_end_1c
.catchall {:try_start_1b .. :try_end_1c} :catchall_1a
throw p1
.end method
.method public final c()I
.registers 2
.line 80
monitor-enter p0
.line 81
:try_start_1
iget-object v0, p0, Lcom/tencent/liteav/videobase/utils/m;->a:Ljava/util/Deque;
invoke-interface {v0}, Ljava/util/Deque;->size()I
move-result v0
monitor-exit p0
return v0
:catchall_9
move-exception v0
.line 82
monitor-exit p0
:try_end_b
.catchall {:try_start_1 .. :try_end_b} :catchall_9
throw v0
.end method