H264SupportStatus.smali
.class public Lcom/facebook/common/h264/H264SupportStatus;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field private static final H264_HEADER:[B
.field private static final H264_HEADER_LENGTH:I
.field private static sH264BitmapFactory:Lcom/facebook/common/h264/H264BitmapFactory;
.field private static sH264Checked:Z
# direct methods
.method static constructor <clinit>()V
.registers 2
const/4 v0, 0x4
new-array v1, v0, [B
.line 12
fill-array-data v1, :array_12
.line 15
sput-object v1, Lcom/facebook/common/h264/H264SupportStatus;->H264_HEADER:[B
sput v0, Lcom/facebook/common/h264/H264SupportStatus;->H264_HEADER_LENGTH:I
const/4 v0, 0x0
.line 17
sput-boolean v0, Lcom/facebook/common/h264/H264SupportStatus;->sH264Checked:Z
const/4 v0, 0x0
.line 19
sput-object v0, Lcom/facebook/common/h264/H264SupportStatus;->sH264BitmapFactory:Lcom/facebook/common/h264/H264BitmapFactory;
return-void
nop
:array_12
.array-data 1
0x0t
0x0t
0x0t
0x1t
.end array-data
.end method
.method public constructor <init>()V
.registers 1
.line 10
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static isH264Header([BI)Z
.registers 3
.line 43
sget v0, Lcom/facebook/common/h264/H264SupportStatus;->H264_HEADER_LENGTH:I
if-ge p1, v0, :cond_6
const/4 p0, 0x0
return p0
.line 46
:cond_6
sget-object p1, Lcom/facebook/common/h264/H264SupportStatus;->H264_HEADER:[B
invoke-static {p0, p1}, Lcom/facebook/common/h264/H264SupportStatus;->startsWithPattern([B[B)Z
move-result p0
return p0
.end method
.method public static loadH264BitmapFactoryIfExists()Lcom/facebook/common/h264/H264BitmapFactory;
.registers 2
.line 23
sget-boolean v0, Lcom/facebook/common/h264/H264SupportStatus;->sH264Checked:Z
if-eqz v0, :cond_7
.line 24
sget-object v0, Lcom/facebook/common/h264/H264SupportStatus;->sH264BitmapFactory:Lcom/facebook/common/h264/H264BitmapFactory;
return-object v0
:cond_7
const/4 v0, 0x0
:try_start_8
const-string v1, "com.facebook.h264.H264BitmapFactoryImpl"
.line 29
invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v1
.line 30
invoke-virtual {v1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/facebook/common/h264/H264BitmapFactory;
:try_end_14
.catchall {:try_start_8 .. :try_end_14} :catchall_16
move-object v0, v1
goto :goto_17
:catchall_16
nop
:goto_17
const/4 v1, 0x1
.line 34
sput-boolean v1, Lcom/facebook/common/h264/H264SupportStatus;->sH264Checked:Z
.line 35
sget-object v1, Lcom/facebook/common/h264/H264SupportStatus;->sH264BitmapFactory:Lcom/facebook/common/h264/H264BitmapFactory;
if-nez v1, :cond_20
.line 36
sput-object v0, Lcom/facebook/common/h264/H264SupportStatus;->sH264BitmapFactory:Lcom/facebook/common/h264/H264BitmapFactory;
:cond_20
return-object v0
.end method
.method public static startsWithPattern([B[B)Z
.registers 6
.line 52
invoke-static {p0}, Lcom/facebook/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 53
invoke-static {p1}, Lcom/facebook/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 54
array-length v0, p1
array-length v1, p0
const/4 v2, 0x0
if-le v0, v1, :cond_c
return v2
:cond_c
const/4 v0, 0x0
.line 58
:goto_d
array-length v1, p1
if-ge v0, v1, :cond_1a
.line 59
aget-byte v1, p0, v0
aget-byte v3, p1, v0
if-eq v1, v3, :cond_17
return v2
:cond_17
add-int/lit8 v0, v0, 0x1
goto :goto_d
:cond_1a
const/4 p0, 0x1
return p0
.end method