This commit is contained in:
2022-06-10 21:38:30 +09:00
commit 27f5152838
51323 changed files with 12934539 additions and 0 deletions
@@ -0,0 +1,68 @@
.class public Lorg/kc7bfi/jflac/ChannelData;
.super Ljava/lang/Object;
.source "ChannelData.java"
# instance fields
.field private output:[I
.field private partitionedRiceContents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
.field private residual:[I
# direct methods
.method public constructor <init>(I)V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-array v0, p1, [I
iput-object v0, p0, Lorg/kc7bfi/jflac/ChannelData;->output:[I
.line 3
new-array p1, p1, [I
iput-object p1, p0, Lorg/kc7bfi/jflac/ChannelData;->residual:[I
.line 4
new-instance p1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
invoke-direct {p1}, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;-><init>()V
iput-object p1, p0, Lorg/kc7bfi/jflac/ChannelData;->partitionedRiceContents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
return-void
.end method
# virtual methods
.method public getOutput()[I
.locals 1
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/ChannelData;->output:[I
return-object v0
.end method
.method public getPartitionedRiceContents()Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
.locals 1
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/ChannelData;->partitionedRiceContents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
return-object v0
.end method
.method public getResidual()[I
.locals 1
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/ChannelData;->residual:[I
return-object v0
.end method
@@ -0,0 +1,57 @@
.class public Lorg/kc7bfi/jflac/Constants;
.super Ljava/lang/Object;
.source "Constants.java"
# static fields
.field public static final CHANNEL_ASSIGNMENT_INDEPENDENT:I = 0x0
.field public static final CHANNEL_ASSIGNMENT_LEFT_SIDE:I = 0x1
.field public static final CHANNEL_ASSIGNMENT_MID_SIDE:I = 0x3
.field public static final CHANNEL_ASSIGNMENT_RIGHT_SIDE:I = 0x2
.field public static final MAX_BLOCK_SIZE:I = 0xffff
.field public static final MAX_CHANNELS:I = 0x8
.field public static final MAX_RICE_PARTITION_ORDER:I = 0xf
.field public static final STREAM_SYNC_STRING:[B
# direct methods
.method public static constructor <clinit>()V
.locals 1
const/4 v0, 0x4
new-array v0, v0, [B
.line 1
fill-array-data v0, :array_0
sput-object v0, Lorg/kc7bfi/jflac/Constants;->STREAM_SYNC_STRING:[B
return-void
nop
:array_0
.array-data 1
0x66t
0x4ct
0x61t
0x43t
.end array-data
.end method
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,41 @@
.class public Lorg/kc7bfi/jflac/FrameDecodeException;
.super Ljava/lang/Exception;
.source "FrameDecodeException.java"
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Exception;-><init>()V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.locals 0
.line 2
invoke-direct {p0, p1}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Ljava/lang/Throwable;)V
.locals 0
.line 4
invoke-direct {p0, p1, p2}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.end method
.method public constructor <init>(Ljava/lang/Throwable;)V
.locals 0
.line 3
invoke-direct {p0, p1}, Ljava/lang/Exception;-><init>(Ljava/lang/Throwable;)V
return-void
.end method
@@ -0,0 +1,14 @@
.class public interface abstract Lorg/kc7bfi/jflac/FrameListener;
.super Ljava/lang/Object;
.source "FrameListener.java"
# virtual methods
.method public abstract processError(Ljava/lang/String;)V
.end method
.method public abstract processFrame(Lorg/kc7bfi/jflac/frame/Frame;)V
.end method
.method public abstract processMetadata(Lorg/kc7bfi/jflac/metadata/Metadata;)V
.end method
@@ -0,0 +1,244 @@
.class Lorg/kc7bfi/jflac/FrameListeners;
.super Ljava/lang/Object;
.source "FrameListeners.java"
# interfaces
.implements Lorg/kc7bfi/jflac/FrameListener;
# instance fields
.field private frameListeners:Ljava/util/HashSet;
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
iput-object v0, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
return-void
.end method
# virtual methods
.method public addFrameListener(Lorg/kc7bfi/jflac/FrameListener;)V
.locals 2
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
monitor-enter v0
.line 2
:try_start_0
iget-object v1, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
invoke-virtual {v1, p1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
.line 3
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public processError(Ljava/lang/String;)V
.locals 3
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
monitor-enter v0
.line 2
:try_start_0
iget-object v1, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
invoke-virtual {v1}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
move-result-object v1
.line 3
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_0
.line 4
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lorg/kc7bfi/jflac/FrameListener;
.line 5
invoke-interface {v2, p1}, Lorg/kc7bfi/jflac/FrameListener;->processError(Ljava/lang/String;)V
goto :goto_0
.line 6
:cond_0
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public processFrame(Lorg/kc7bfi/jflac/frame/Frame;)V
.locals 3
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
monitor-enter v0
.line 2
:try_start_0
iget-object v1, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
invoke-virtual {v1}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
move-result-object v1
.line 3
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_0
.line 4
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lorg/kc7bfi/jflac/FrameListener;
.line 5
invoke-interface {v2, p1}, Lorg/kc7bfi/jflac/FrameListener;->processFrame(Lorg/kc7bfi/jflac/frame/Frame;)V
goto :goto_0
.line 6
:cond_0
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public processMetadata(Lorg/kc7bfi/jflac/metadata/Metadata;)V
.locals 3
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
monitor-enter v0
.line 2
:try_start_0
iget-object v1, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
invoke-virtual {v1}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
move-result-object v1
.line 3
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_0
.line 4
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lorg/kc7bfi/jflac/FrameListener;
.line 5
invoke-interface {v2, p1}, Lorg/kc7bfi/jflac/FrameListener;->processMetadata(Lorg/kc7bfi/jflac/metadata/Metadata;)V
goto :goto_0
.line 6
:cond_0
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public removeFrameListener(Lorg/kc7bfi/jflac/FrameListener;)V
.locals 2
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
monitor-enter v0
.line 2
:try_start_0
iget-object v1, p0, Lorg/kc7bfi/jflac/FrameListeners;->frameListeners:Ljava/util/HashSet;
invoke-virtual {v1, p1}, Ljava/util/HashSet;->remove(Ljava/lang/Object;)Z
.line 3
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
@@ -0,0 +1,132 @@
.class public Lorg/kc7bfi/jflac/LPCPredictor;
.super Ljava/lang/Object;
.source "LPCPredictor.java"
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static restoreSignal([II[III[II)V
.locals 6
const/4 v0, 0x0
move v1, v0
:goto_0
if-ge v1, p1, :cond_1
move v2, v0
move v3, v2
:goto_1
if-ge v2, p3, :cond_0
.line 1
aget v4, p2, v2
add-int v5, p6, v1
sub-int/2addr v5, v2
add-int/lit8 v5, v5, -0x1
aget v5, p5, v5
mul-int/2addr v4, v5
add-int/2addr v3, v4
add-int/lit8 v2, v2, 0x1
goto :goto_1
:cond_0
add-int v2, p6, v1
.line 2
aget v4, p0, v1
shr-int/2addr v3, p4
add-int/2addr v4, v3
aput v4, p5, v2
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_1
return-void
.end method
.method public static restoreSignalWide([II[III[II)V
.locals 9
const/4 v0, 0x0
move v1, v0
:goto_0
if-ge v1, p1, :cond_1
const-wide/16 v2, 0x0
move v4, v0
:goto_1
if-ge v4, p3, :cond_0
.line 1
aget v5, p2, v4
int-to-long v5, v5
add-int v7, p6, v1
sub-int/2addr v7, v4
add-int/lit8 v7, v7, -0x1
aget v7, p5, v7
int-to-long v7, v7
mul-long/2addr v5, v7
add-long/2addr v2, v5
add-int/lit8 v4, v4, 0x1
goto :goto_1
:cond_0
add-int v4, p6, v1
.line 2
aget v5, p0, v1
shr-long/2addr v2, p4
long-to-int v2, v2
add-int/2addr v5, v2
aput v5, p5, v4
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_1
return-void
.end method
@@ -0,0 +1,11 @@
.class public interface abstract Lorg/kc7bfi/jflac/PCMProcessor;
.super Ljava/lang/Object;
.source "PCMProcessor.java"
# virtual methods
.method public abstract processPCM(Lorg/kc7bfi/jflac/util/ByteData;)V
.end method
.method public abstract processStreamInfo(Lorg/kc7bfi/jflac/metadata/StreamInfo;)V
.end method
@@ -0,0 +1,192 @@
.class Lorg/kc7bfi/jflac/PCMProcessors;
.super Ljava/lang/Object;
.source "PCMProcessors.java"
# interfaces
.implements Lorg/kc7bfi/jflac/PCMProcessor;
# instance fields
.field private pcmProcessors:Ljava/util/HashSet;
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
iput-object v0, p0, Lorg/kc7bfi/jflac/PCMProcessors;->pcmProcessors:Ljava/util/HashSet;
return-void
.end method
# virtual methods
.method public addPCMProcessor(Lorg/kc7bfi/jflac/PCMProcessor;)V
.locals 2
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/PCMProcessors;->pcmProcessors:Ljava/util/HashSet;
monitor-enter v0
.line 2
:try_start_0
iget-object v1, p0, Lorg/kc7bfi/jflac/PCMProcessors;->pcmProcessors:Ljava/util/HashSet;
invoke-virtual {v1, p1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
.line 3
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public processPCM(Lorg/kc7bfi/jflac/util/ByteData;)V
.locals 3
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/PCMProcessors;->pcmProcessors:Ljava/util/HashSet;
monitor-enter v0
.line 2
:try_start_0
iget-object v1, p0, Lorg/kc7bfi/jflac/PCMProcessors;->pcmProcessors:Ljava/util/HashSet;
invoke-virtual {v1}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
move-result-object v1
.line 3
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_0
.line 4
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lorg/kc7bfi/jflac/PCMProcessor;
.line 5
invoke-interface {v2, p1}, Lorg/kc7bfi/jflac/PCMProcessor;->processPCM(Lorg/kc7bfi/jflac/util/ByteData;)V
goto :goto_0
.line 6
:cond_0
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public processStreamInfo(Lorg/kc7bfi/jflac/metadata/StreamInfo;)V
.locals 3
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/PCMProcessors;->pcmProcessors:Ljava/util/HashSet;
monitor-enter v0
.line 2
:try_start_0
iget-object v1, p0, Lorg/kc7bfi/jflac/PCMProcessors;->pcmProcessors:Ljava/util/HashSet;
invoke-virtual {v1}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
move-result-object v1
.line 3
:goto_0
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_0
.line 4
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lorg/kc7bfi/jflac/PCMProcessor;
.line 5
invoke-interface {v2, p1}, Lorg/kc7bfi/jflac/PCMProcessor;->processStreamInfo(Lorg/kc7bfi/jflac/metadata/StreamInfo;)V
goto :goto_0
.line 6
:cond_0
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
.method public removePCMProcessor(Lorg/kc7bfi/jflac/PCMProcessor;)V
.locals 2
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/PCMProcessors;->pcmProcessors:Ljava/util/HashSet;
monitor-enter v0
.line 2
:try_start_0
iget-object v1, p0, Lorg/kc7bfi/jflac/PCMProcessors;->pcmProcessors:Ljava/util/HashSet;
invoke-virtual {v1, p1}, Ljava/util/HashSet;->remove(Ljava/lang/Object;)Z
.line 3
monitor-exit v0
return-void
:catchall_0
move-exception p1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p1
.end method
@@ -0,0 +1,41 @@
.class public Lorg/kc7bfi/jflac/frame/BadHeaderException;
.super Ljava/lang/Exception;
.source "BadHeaderException.java"
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Exception;-><init>()V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.locals 0
.line 2
invoke-direct {p0, p1}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Ljava/lang/Throwable;)V
.locals 0
.line 4
invoke-direct {p0, p1, p2}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.end method
.method public constructor <init>(Ljava/lang/Throwable;)V
.locals 0
.line 3
invoke-direct {p0, p1}, Ljava/lang/Exception;-><init>(Ljava/lang/Throwable;)V
return-void
.end method
@@ -0,0 +1,45 @@
.class public abstract Lorg/kc7bfi/jflac/frame/Channel;
.super Ljava/lang/Object;
.source "Channel.java"
# static fields
.field public static final ENTROPY_CODING_METHOD_PARTITIONED_RICE:I = 0x0
.field public static final ENTROPY_CODING_METHOD_PARTITIONED_RICE_ORDER_LEN:I = 0x4
.field public static final ENTROPY_CODING_METHOD_TYPE_LEN:I = 0x2
# instance fields
.field public header:Lorg/kc7bfi/jflac/frame/Header;
.field public wastedBits:I
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/frame/Header;I)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lorg/kc7bfi/jflac/frame/Channel;->header:Lorg/kc7bfi/jflac/frame/Header;
.line 3
iput p2, p0, Lorg/kc7bfi/jflac/frame/Channel;->wastedBits:I
return-void
.end method
# virtual methods
.method public getWastedBits()I
.locals 1
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/frame/Channel;->wastedBits:I
return v0
.end method
@@ -0,0 +1,82 @@
.class public Lorg/kc7bfi/jflac/frame/ChannelConstant;
.super Lorg/kc7bfi/jflac/frame/Channel;
.source "ChannelConstant.java"
# instance fields
.field private value:I
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;Lorg/kc7bfi/jflac/frame/Header;Lorg/kc7bfi/jflac/ChannelData;II)V
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p2, p5}, Lorg/kc7bfi/jflac/frame/Channel;-><init>(Lorg/kc7bfi/jflac/frame/Header;I)V
.line 2
invoke-virtual {p1, p4}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawInt(I)I
move-result p1
iput p1, p0, Lorg/kc7bfi/jflac/frame/ChannelConstant;->value:I
const/4 p1, 0x0
.line 3
:goto_0
iget p4, p2, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
if-ge p1, p4, :cond_0
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getOutput()[I
move-result-object p4
iget p5, p0, Lorg/kc7bfi/jflac/frame/ChannelConstant;->value:I
aput p5, p4, p1
add-int/lit8 p1, p1, 0x1
goto :goto_0
:cond_0
return-void
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 2
const-string v0, "ChannelConstant: Value="
.line 1
invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lorg/kc7bfi/jflac/frame/ChannelConstant;->value:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " WastedBits="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/frame/Channel;->wastedBits:I
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
return-object v0
.end method
@@ -0,0 +1,235 @@
.class public Lorg/kc7bfi/jflac/frame/ChannelFixed;
.super Lorg/kc7bfi/jflac/frame/Channel;
.source "ChannelFixed.java"
# static fields
.field private static final MAX_FIXED_ORDER:I = 0x4
# instance fields
.field private entropyCodingMethod:Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
.field private order:I
.field private residual:[I
.field private warmup:[I
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;Lorg/kc7bfi/jflac/frame/Header;Lorg/kc7bfi/jflac/ChannelData;III)V
.locals 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p2, p5}, Lorg/kc7bfi/jflac/frame/Channel;-><init>(Lorg/kc7bfi/jflac/frame/Header;I)V
const/4 p5, 0x4
new-array v0, p5, [I
.line 2
iput-object v0, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->warmup:[I
.line 3
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getResidual()[I
move-result-object v0
iput-object v0, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->residual:[I
.line 4
iput p6, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->order:I
const/4 v0, 0x0
move v1, v0
:goto_0
if-ge v1, p6, :cond_0
.line 5
iget-object v2, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->warmup:[I
invoke-virtual {p1, p4}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawInt(I)I
move-result v3
aput v3, v2, v1
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_0
const/4 p4, 0x2
.line 6
invoke-virtual {p1, p4}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result p4
if-nez p4, :cond_1
.line 7
invoke-virtual {p1, p5}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result p4
.line 8
new-instance v1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;
invoke-direct {v1}, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;-><init>()V
.line 9
iput-object v1, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->entropyCodingMethod:Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
.line 10
iput p4, v1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->order:I
.line 11
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getPartitionedRiceContents()Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
move-result-object p4
iput-object p4, v1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->contents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
.line 12
iget v4, v1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->order:I
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getResidual()[I
move-result-object v6
move-object v2, p1
move v3, p6
move-object v5, p2
invoke-virtual/range {v1 .. v6}, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->readResidual(Lorg/kc7bfi/jflac/io/BitInputStream;IILorg/kc7bfi/jflac/frame/Header;[I)V
.line 13
iget-object p1, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->warmup:[I
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getOutput()[I
move-result-object p4
invoke-static {p1, v0, p4, v0, p6}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 14
iget-object p1, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->residual:[I
iget p2, p2, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
sub-int/2addr p2, p6
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getOutput()[I
move-result-object p3
invoke-static {p1, p2, p6, p3, p6}, Lorg/kc7bfi/jflac/FixedPredictor;->restoreSignal([III[II)V
return-void
.line 15
:cond_1
new-instance p1, Ljava/io/IOException;
const-string p2, "STREAM_DECODER_UNPARSEABLE_STREAM"
invoke-direct {p1, p2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw p1
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 4
.line 1
new-instance v0, Ljava/lang/StringBuffer;
const-string v1, "FLACSubframe_Fixed: Order="
invoke-static {v1}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->order:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " PartitionOrder="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->entropyCodingMethod:Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
check-cast v2, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;
iget v2, v2, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->order:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " WastedBits="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lorg/kc7bfi/jflac/frame/Channel;->wastedBits:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/StringBuffer;-><init>(Ljava/lang/String;)V
const/4 v1, 0x0
.line 2
:goto_0
iget v2, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->order:I
if-ge v1, v2, :cond_0
const-string v2, " warmup["
const-string v3, "]="
invoke-static {v2, v1, v3}, Landroid/support/v4/media/a;->a(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
iget-object v3, p0, Lorg/kc7bfi/jflac/frame/ChannelFixed;->warmup:[I
aget v3, v3, v1
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
add-int/lit8 v1, v1, 0x1
goto :goto_0
.line 3
:cond_0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,527 @@
.class public Lorg/kc7bfi/jflac/frame/ChannelLPC;
.super Lorg/kc7bfi/jflac/frame/Channel;
.source "ChannelLPC.java"
# static fields
.field private static final MAX_LPC_ORDER:I = 0x20
.field private static final SUBFRAME_LPC_QLP_COEFF_PRECISION_LEN:I = 0x4
.field private static final SUBFRAME_LPC_QLP_SHIFT_LEN:I = 0x5
# instance fields
.field private entropyCodingMethod:Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
.field private order:I
.field private qlpCoeff:[I
.field private qlpCoeffPrecision:I
.field private quantizationLevel:I
.field private residual:[I
.field private warmup:[I
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;Lorg/kc7bfi/jflac/frame/Header;Lorg/kc7bfi/jflac/ChannelData;III)V
.locals 12
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
move-object v0, p0
move-object v2, p1
move-object v7, p2
move/from16 v8, p4
move/from16 v1, p5
move/from16 v9, p6
.line 1
invoke-direct {p0, p2, v1}, Lorg/kc7bfi/jflac/frame/Channel;-><init>(Lorg/kc7bfi/jflac/frame/Header;I)V
const/16 v10, 0x20
new-array v1, v10, [I
.line 2
iput-object v1, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeff:[I
new-array v1, v10, [I
.line 3
iput-object v1, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->warmup:[I
.line 4
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getResidual()[I
move-result-object v1
iput-object v1, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->residual:[I
.line 5
iput v9, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->order:I
const/4 v11, 0x0
move v1, v11
:goto_0
if-ge v1, v9, :cond_0
.line 6
iget-object v3, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->warmup:[I
invoke-virtual {p1, v8}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawInt(I)I
move-result v4
aput v4, v3, v1
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_0
const/4 v1, 0x4
.line 7
invoke-virtual {p1, v1}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v3
const/16 v4, 0xf
if-eq v3, v4, :cond_6
add-int/lit8 v3, v3, 0x1
.line 8
iput v3, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeffPrecision:I
const/4 v3, 0x5
.line 9
invoke-virtual {p1, v3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawInt(I)I
move-result v3
iput v3, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->quantizationLevel:I
move v3, v11
:goto_1
if-ge v3, v9, :cond_1
.line 10
iget-object v4, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeff:[I
iget v5, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeffPrecision:I
invoke-virtual {p1, v5}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawInt(I)I
move-result v5
aput v5, v4, v3
add-int/lit8 v3, v3, 0x1
goto :goto_1
:cond_1
const/4 v3, 0x2
.line 11
invoke-virtual {p1, v3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v3
if-nez v3, :cond_5
.line 12
new-instance v3, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;
invoke-direct {v3}, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;-><init>()V
iput-object v3, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->entropyCodingMethod:Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
.line 13
invoke-virtual {p1, v1}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
iput v1, v3, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->order:I
.line 14
iget-object v1, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->entropyCodingMethod:Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
check-cast v1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getPartitionedRiceContents()Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
move-result-object v3
iput-object v3, v1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->contents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
.line 15
iget-object v1, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->entropyCodingMethod:Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
instance-of v3, v1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;
if-eqz v3, :cond_2
.line 16
move-object v3, v1
check-cast v3, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;
check-cast v1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;
iget v4, v1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->order:I
.line 17
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getResidual()[I
move-result-object v6
move-object v1, v3
move-object v2, p1
move/from16 v3, p6
move-object v5, p2
.line 18
invoke-virtual/range {v1 .. v6}, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->readResidual(Lorg/kc7bfi/jflac/io/BitInputStream;IILorg/kc7bfi/jflac/frame/Header;[I)V
.line 19
:cond_2
iget-object v1, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->warmup:[I
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getOutput()[I
move-result-object v2
invoke-static {v1, v11, v2, v11, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 20
iget v1, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeffPrecision:I
add-int/2addr v1, v8
invoke-static/range {p6 .. p6}, Lorg/kc7bfi/jflac/util/BitMath;->ilog2(I)I
move-result v2
add-int/2addr v2, v1
if-gt v2, v10, :cond_4
const/16 v1, 0x10
if-gt v8, v1, :cond_3
.line 21
iget v2, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeffPrecision:I
if-gt v2, v1, :cond_3
.line 22
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getResidual()[I
move-result-object v1
iget v2, v7, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
sub-int/2addr v2, v9
iget-object v3, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeff:[I
iget v5, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->quantizationLevel:I
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getOutput()[I
move-result-object v6
move/from16 v4, p6
move/from16 v7, p6
invoke-static/range {v1 .. v7}, Lorg/kc7bfi/jflac/LPCPredictor;->restoreSignal([II[III[II)V
goto :goto_2
.line 23
:cond_3
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getResidual()[I
move-result-object v1
iget v2, v7, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
sub-int/2addr v2, v9
iget-object v3, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeff:[I
iget v5, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->quantizationLevel:I
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getOutput()[I
move-result-object v6
move/from16 v4, p6
move/from16 v7, p6
invoke-static/range {v1 .. v7}, Lorg/kc7bfi/jflac/LPCPredictor;->restoreSignal([II[III[II)V
goto :goto_2
.line 24
:cond_4
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getResidual()[I
move-result-object v1
iget v2, v7, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
sub-int/2addr v2, v9
iget-object v3, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeff:[I
iget v5, v0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->quantizationLevel:I
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getOutput()[I
move-result-object v6
move/from16 v4, p6
move/from16 v7, p6
invoke-static/range {v1 .. v7}, Lorg/kc7bfi/jflac/LPCPredictor;->restoreSignalWide([II[III[II)V
:goto_2
return-void
.line 25
:cond_5
new-instance v1, Ljava/io/IOException;
const-string v2, "STREAM_DECODER_UNPARSEABLE_STREAM"
invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v1
.line 26
:cond_6
new-instance v1, Ljava/io/IOException;
const-string v2, "STREAM_DECODER_ERROR_STATUS_LOST_SYNC"
invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v1
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 6
.line 1
new-instance v0, Ljava/lang/StringBuffer;
const-string v1, "ChannelLPC: Order="
invoke-static {v1}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->order:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " WastedBits="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lorg/kc7bfi/jflac/frame/Channel;->wastedBits:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/StringBuffer;-><init>(Ljava/lang/String;)V
const-string v1, " qlpCoeffPrecision="
.line 2
invoke-static {v1}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeffPrecision:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " quantizationLevel="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->quantizationLevel:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
const-string v1, "\n\t\tqlpCoeff: "
.line 3
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
const/4 v1, 0x0
move v2, v1
.line 4
:goto_0
iget v3, p0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->order:I
const-string v4, " "
if-ge v2, v3, :cond_0
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
iget-object v5, p0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->qlpCoeff:[I
aget v5, v5, v2
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_0
const-string v2, "\n\t\tWarmup: "
.line 5
invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move v2, v1
.line 6
:goto_1
iget v3, p0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->order:I
if-ge v2, v3, :cond_1
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
iget-object v5, p0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->warmup:[I
aget v5, v5, v2
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
add-int/lit8 v2, v2, 0x1
goto :goto_1
:cond_1
const-string v2, "\n\t\tParameter: "
.line 7
invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 8
:goto_2
iget-object v2, p0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->entropyCodingMethod:Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
check-cast v2, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;
iget v2, v2, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->order:I
const/4 v3, 0x1
shl-int v2, v3, v2
if-ge v1, v2, :cond_2
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
iget-object v3, p0, Lorg/kc7bfi/jflac/frame/ChannelLPC;->entropyCodingMethod:Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
check-cast v3, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;
iget-object v3, v3, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->contents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
iget-object v3, v3, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;->parameters:[I
aget v3, v3, v1
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
add-int/lit8 v1, v1, 0x1
goto :goto_2
.line 9
:cond_2
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,88 @@
.class public Lorg/kc7bfi/jflac/frame/ChannelVerbatim;
.super Lorg/kc7bfi/jflac/frame/Channel;
.source "ChannelVerbatim.java"
# instance fields
.field private data:[I
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;Lorg/kc7bfi/jflac/frame/Header;Lorg/kc7bfi/jflac/ChannelData;II)V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p2, p5}, Lorg/kc7bfi/jflac/frame/Channel;-><init>(Lorg/kc7bfi/jflac/frame/Header;I)V
.line 2
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getResidual()[I
move-result-object p5
iput-object p5, p0, Lorg/kc7bfi/jflac/frame/ChannelVerbatim;->data:[I
const/4 p5, 0x0
move v0, p5
.line 3
:goto_0
iget v1, p2, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
if-ge v0, v1, :cond_0
.line 4
iget-object v1, p0, Lorg/kc7bfi/jflac/frame/ChannelVerbatim;->data:[I
invoke-virtual {p1, p4}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawInt(I)I
move-result v2
aput v2, v1, v0
add-int/lit8 v0, v0, 0x1
goto :goto_0
.line 5
:cond_0
iget-object p1, p0, Lorg/kc7bfi/jflac/frame/ChannelVerbatim;->data:[I
invoke-virtual {p3}, Lorg/kc7bfi/jflac/ChannelData;->getOutput()[I
move-result-object p3
iget p2, p2, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
invoke-static {p1, p5, p3, p5, p2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
return-void
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 2
const-string v0, "ChannelVerbatim: WastedBits="
.line 1
invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lorg/kc7bfi/jflac/frame/Channel;->wastedBits:I
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
return-object v0
.end method
@@ -0,0 +1,14 @@
.class public abstract Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
.super Ljava/lang/Object;
.source "EntropyCodingMethod.java"
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
@@ -0,0 +1,179 @@
.class public Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;
.super Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;
.source "EntropyPartitionedRice.java"
# static fields
.field private static final ENTROPY_CODING_METHOD_PARTITIONED_RICE_ESCAPE_PARAMETER:I = 0xf
.field private static final ENTROPY_CODING_METHOD_PARTITIONED_RICE_PARAMETER_LEN:I = 0x4
.field private static final ENTROPY_CODING_METHOD_PARTITIONED_RICE_RAW_LEN:I = 0x5
# instance fields
.field public contents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
.field public order:I
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Lorg/kc7bfi/jflac/frame/EntropyCodingMethod;-><init>()V
return-void
.end method
# virtual methods
.method public readResidual(Lorg/kc7bfi/jflac/io/BitInputStream;IILorg/kc7bfi/jflac/frame/Header;[I)V
.locals 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const/4 v0, 0x1
shl-int/2addr v0, p3
.line 1
iget p4, p4, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
if-lez p3, :cond_0
shr-int/2addr p4, p3
goto :goto_0
:cond_0
sub-int/2addr p4, p2
.line 2
:goto_0
iget-object v1, p0, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->contents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
const/4 v2, 0x6
invoke-static {v2, p3}, Ljava/lang/Math;->max(II)I
move-result v2
invoke-virtual {v1, v2}, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;->ensureSize(I)V
.line 3
iget-object v1, p0, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->contents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
new-array v2, v0, [I
iput-object v2, v1, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;->parameters:[I
const/4 v1, 0x0
move v2, v1
move v3, v2
:goto_1
if-ge v2, v0, :cond_7
const/4 v4, 0x4
.line 4
invoke-virtual {p1, v4}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v4
.line 5
iget-object v5, p0, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->contents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
iget-object v5, v5, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;->parameters:[I
aput v4, v5, v2
const/16 v5, 0xf
if-ge v4, v5, :cond_3
if-eqz p3, :cond_2
if-lez v2, :cond_1
goto :goto_2
:cond_1
sub-int v5, p4, p2
goto :goto_3
:cond_2
:goto_2
move v5, p4
.line 6
:goto_3
invoke-virtual {p1, p5, v3, v5, v4}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRiceSignedBlock([IIII)V
add-int/2addr v3, v5
goto :goto_6
:cond_3
const/4 v4, 0x5
.line 7
invoke-virtual {p1, v4}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v4
.line 8
iget-object v5, p0, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRice;->contents:Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
iget-object v5, v5, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;->rawBits:[I
aput v4, v5, v2
if-eqz p3, :cond_5
if-lez v2, :cond_4
goto :goto_4
:cond_4
move v5, p2
goto :goto_5
:cond_5
:goto_4
move v5, v1
:goto_5
if-ge v5, p4, :cond_6
.line 9
invoke-virtual {p1, v4}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawInt(I)I
move-result v6
aput v6, p5, v3
add-int/lit8 v5, v5, 0x1
add-int/lit8 v3, v3, 0x1
goto :goto_5
:cond_6
:goto_6
add-int/lit8 v2, v2, 0x1
goto :goto_1
:cond_7
return-void
.end method
@@ -0,0 +1,60 @@
.class public Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;
.super Ljava/lang/Object;
.source "EntropyPartitionedRiceContents.java"
# instance fields
.field public capacityByOrder:I
.field public parameters:[I
.field public rawBits:[I
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
.line 2
iput v0, p0, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;->capacityByOrder:I
return-void
.end method
# virtual methods
.method public ensureSize(I)V
.locals 2
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;->capacityByOrder:I
if-lt v0, p1, :cond_0
return-void
:cond_0
const/4 v0, 0x1
shl-int/2addr v0, p1
.line 2
new-array v1, v0, [I
iput-object v1, p0, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;->parameters:[I
.line 3
new-array v0, v0, [I
iput-object v0, p0, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;->rawBits:[I
.line 4
iput p1, p0, Lorg/kc7bfi/jflac/frame/EntropyPartitionedRiceContents;->capacityByOrder:I
return-void
.end method
@@ -0,0 +1,170 @@
.class public Lorg/kc7bfi/jflac/frame/Frame;
.super Ljava/lang/Object;
.source "Frame.java"
# instance fields
.field private crc:S
.field public header:Lorg/kc7bfi/jflac/frame/Header;
.field public subframes:[Lorg/kc7bfi/jflac/frame/Channel;
# direct methods
.method public constructor <init>()V
.locals 1
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x8
new-array v0, v0, [Lorg/kc7bfi/jflac/frame/Channel;
.line 2
iput-object v0, p0, Lorg/kc7bfi/jflac/frame/Frame;->subframes:[Lorg/kc7bfi/jflac/frame/Channel;
return-void
.end method
.method public static getMaxRicePartitionOrderFromBlocksize(I)I
.locals 2
const/4 v0, 0x0
:goto_0
and-int/lit8 v1, p0, 0x1
if-nez v1, :cond_0
add-int/lit8 v0, v0, 0x1
shr-int/lit8 p0, p0, 0x1
goto :goto_0
:cond_0
const/16 p0, 0xf
.line 1
invoke-static {p0, v0}, Ljava/lang/Math;->min(II)I
move-result p0
return p0
.end method
# virtual methods
.method public getCRC()S
.locals 1
.line 1
iget-short v0, p0, Lorg/kc7bfi/jflac/frame/Frame;->crc:S
return v0
.end method
.method public setCRC(S)V
.locals 0
.line 1
iput-short p1, p0, Lorg/kc7bfi/jflac/frame/Frame;->crc:S
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 5
.line 1
new-instance v0, Ljava/lang/StringBuffer;
invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V
const-string v1, "Frame Header: "
.line 2
invoke-static {v1}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Lorg/kc7bfi/jflac/frame/Frame;->header:Lorg/kc7bfi/jflac/frame/Header;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v2, "\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
const/4 v1, 0x0
.line 3
:goto_0
iget-object v3, p0, Lorg/kc7bfi/jflac/frame/Frame;->header:Lorg/kc7bfi/jflac/frame/Header;
iget v3, v3, Lorg/kc7bfi/jflac/frame/Header;->channels:I
if-ge v1, v3, :cond_0
const-string v3, "\tFrame Data "
.line 4
invoke-static {v3}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
iget-object v4, p0, Lorg/kc7bfi/jflac/frame/Frame;->subframes:[Lorg/kc7bfi/jflac/frame/Channel;
aget-object v4, v4, v1
invoke-virtual {v4}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_0
const-string v1, "\tFrame Footer: "
.line 5
invoke-static {v1}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-short v2, p0, Lorg/kc7bfi/jflac/frame/Frame;->crc:S
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 6
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,869 @@
.class public Lorg/kc7bfi/jflac/frame/Header;
.super Ljava/lang/Object;
.source "Header.java"
# instance fields
.field public bitsPerSample:I
.field public blockSize:I
.field public channelAssignment:I
.field public channels:I
.field public crc:B
.field public frameNumber:I
.field public sampleNumber:J
.field public sampleRate:I
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;[BLorg/kc7bfi/jflac/metadata/StreamInfo;)V
.locals 17
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;,
Lorg/kc7bfi/jflac/frame/BadHeaderException;
}
.end annotation
move-object/from16 v0, p0
move-object/from16 v1, p1
.line 1
invoke-direct/range {p0 .. p0}, Ljava/lang/Object;-><init>()V
const/4 v2, -0x1
.line 2
iput v2, v0, Lorg/kc7bfi/jflac/frame/Header;->frameNumber:I
const-wide/16 v2, -0x1
.line 3
iput-wide v2, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleNumber:J
.line 4
new-instance v4, Lorg/kc7bfi/jflac/util/ByteData;
const/16 v5, 0x10
invoke-direct {v4, v5}, Lorg/kc7bfi/jflac/util/ByteData;-><init>(I)V
const/4 v6, 0x0
const/4 v7, 0x1
if-eqz p3, :cond_0
.line 5
invoke-virtual/range {p3 .. p3}, Lorg/kc7bfi/jflac/metadata/StreamInfo;->getMinBlockSize()I
move-result v8
invoke-virtual/range {p3 .. p3}, Lorg/kc7bfi/jflac/metadata/StreamInfo;->getMaxBlockSize()I
move-result v9
if-eq v8, v9, :cond_0
move v8, v7
goto :goto_0
:cond_0
move v8, v6
:goto_0
if-eqz p3, :cond_1
.line 6
invoke-virtual/range {p3 .. p3}, Lorg/kc7bfi/jflac/metadata/StreamInfo;->getMinBlockSize()I
move-result v9
invoke-virtual/range {p3 .. p3}, Lorg/kc7bfi/jflac/metadata/StreamInfo;->getMaxBlockSize()I
move-result v10
if-ne v9, v10, :cond_1
move v9, v7
goto :goto_1
:cond_1
move v9, v6
.line 7
:goto_1
aget-byte v10, p2, v6
invoke-virtual {v4, v10}, Lorg/kc7bfi/jflac/util/ByteData;->append(B)V
.line 8
aget-byte v10, p2, v7
invoke-virtual {v4, v10}, Lorg/kc7bfi/jflac/util/ByteData;->append(B)V
.line 9
invoke-virtual {v4, v7}, Lorg/kc7bfi/jflac/util/ByteData;->getData(I)B
move-result v10
const/4 v11, 0x3
and-int/2addr v10, v11
const/16 v12, 0xff
if-nez v10, :cond_16
move v10, v6
:goto_2
const/4 v13, 0x2
const/16 v14, 0x8
if-ge v10, v13, :cond_3
.line 10
invoke-virtual {v1, v14}, Lorg/kc7bfi/jflac/io/BitInputStream;->peekRawUInt(I)I
move-result v13
if-eq v13, v12, :cond_2
.line 11
invoke-virtual {v1, v14}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v13
int-to-byte v13, v13
invoke-virtual {v4, v13}, Lorg/kc7bfi/jflac/util/ByteData;->append(B)V
add-int/lit8 v10, v10, 0x1
goto :goto_2
.line 12
:cond_2
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
const-string v2, "Found sync byte"
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
.line 13
:cond_3
invoke-virtual {v4, v13}, Lorg/kc7bfi/jflac/util/ByteData;->getData(I)B
move-result v10
shr-int/lit8 v10, v10, 0x4
and-int/lit8 v10, v10, 0xf
packed-switch v10, :pswitch_data_0
goto :goto_3
:pswitch_0
const/16 v9, 0x100
add-int/lit8 v10, v10, -0x8
shl-int/2addr v9, v10
.line 14
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
goto :goto_3
:pswitch_1
const/16 v9, 0x240
add-int/lit8 v10, v10, -0x2
shl-int/2addr v9, v10
.line 15
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
goto :goto_3
:pswitch_2
const/16 v9, 0xc0
.line 16
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
goto :goto_3
:pswitch_3
if-eqz v9, :cond_4
.line 17
invoke-virtual/range {p3 .. p3}, Lorg/kc7bfi/jflac/metadata/StreamInfo;->getMinBlockSize()I
move-result v9
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
goto :goto_3
.line 18
:cond_4
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
const-string v2, "Unknown Block Size (0)"
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
:goto_3
move v10, v6
.line 19
:pswitch_4
invoke-virtual {v4, v13}, Lorg/kc7bfi/jflac/util/ByteData;->getData(I)B
move-result v9
and-int/lit8 v9, v9, 0xf
const-string v12, "Bad Sample Rate ("
const-string v15, ")"
packed-switch v9, :pswitch_data_1
goto :goto_4
.line 20
:pswitch_5
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
invoke-static {v12, v9, v15}, Landroidx/camera/core/impl/utils/f;->a(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
:pswitch_6
const v9, 0x17700
.line 21
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_4
:pswitch_7
const v9, 0xbb80
.line 22
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_4
:pswitch_8
const v9, 0xac44
.line 23
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_4
:pswitch_9
const/16 v9, 0x7d00
.line 24
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_4
:pswitch_a
const/16 v9, 0x5dc0
.line 25
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_4
:pswitch_b
const/16 v9, 0x5622
.line 26
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_4
:pswitch_c
const/16 v9, 0x3e80
.line 27
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_4
:pswitch_d
const/16 v9, 0x1f40
.line 28
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_4
.line 29
:pswitch_e
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
invoke-static {v12, v9, v15}, Landroidx/camera/core/impl/utils/f;->a(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
:pswitch_f
if-eqz p3, :cond_5
.line 30
invoke-virtual/range {p3 .. p3}, Lorg/kc7bfi/jflac/metadata/StreamInfo;->getSampleRate()I
move-result v9
iput v9, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_4
.line 31
:cond_5
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
const-string v2, "Bad Sample Rate (0)"
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
:goto_4
move v9, v6
.line 32
:pswitch_10
invoke-virtual {v4, v11}, Lorg/kc7bfi/jflac/util/ByteData;->getData(I)B
move-result v12
shr-int/lit8 v12, v12, 0x4
and-int/lit8 v12, v12, 0xf
and-int/lit8 v16, v12, 0x8
if-eqz v16, :cond_9
.line 33
iput v13, v0, Lorg/kc7bfi/jflac/frame/Header;->channels:I
and-int/lit8 v6, v12, 0x7
if-eqz v6, :cond_8
if-eq v6, v7, :cond_7
if-ne v6, v13, :cond_6
.line 34
iput v11, v0, Lorg/kc7bfi/jflac/frame/Header;->channelAssignment:I
goto :goto_5
.line 35
:cond_6
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
const-string v2, "Bad Channel Assignment ("
invoke-static {v2, v12, v15}, Landroidx/camera/core/impl/utils/f;->a(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
.line 36
:cond_7
iput v13, v0, Lorg/kc7bfi/jflac/frame/Header;->channelAssignment:I
goto :goto_5
.line 37
:cond_8
iput v7, v0, Lorg/kc7bfi/jflac/frame/Header;->channelAssignment:I
goto :goto_5
:cond_9
add-int/2addr v12, v7
.line 38
iput v12, v0, Lorg/kc7bfi/jflac/frame/Header;->channels:I
.line 39
iput v6, v0, Lorg/kc7bfi/jflac/frame/Header;->channelAssignment:I
.line 40
:goto_5
invoke-virtual {v4, v11}, Lorg/kc7bfi/jflac/util/ByteData;->getData(I)B
move-result v6
and-int/lit8 v6, v6, 0xe
shr-int/2addr v6, v7
const-string v12, "Bad BPS ("
const/16 v13, 0xc
packed-switch v6, :pswitch_data_2
goto :goto_6
:pswitch_11
const/16 v5, 0x18
.line 41
iput v5, v0, Lorg/kc7bfi/jflac/frame/Header;->bitsPerSample:I
goto :goto_6
:pswitch_12
const/16 v5, 0x14
.line 42
iput v5, v0, Lorg/kc7bfi/jflac/frame/Header;->bitsPerSample:I
goto :goto_6
.line 43
:pswitch_13
iput v5, v0, Lorg/kc7bfi/jflac/frame/Header;->bitsPerSample:I
goto :goto_6
.line 44
:pswitch_14
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
invoke-static {v12, v6, v15}, Landroidx/camera/core/impl/utils/f;->a(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
.line 45
:pswitch_15
iput v13, v0, Lorg/kc7bfi/jflac/frame/Header;->bitsPerSample:I
goto :goto_6
.line 46
:pswitch_16
iput v14, v0, Lorg/kc7bfi/jflac/frame/Header;->bitsPerSample:I
goto :goto_6
:pswitch_17
if-eqz p3, :cond_a
.line 47
invoke-virtual/range {p3 .. p3}, Lorg/kc7bfi/jflac/metadata/StreamInfo;->getBitsPerSample()I
move-result v5
iput v5, v0, Lorg/kc7bfi/jflac/frame/Header;->bitsPerSample:I
goto :goto_6
.line 48
:cond_a
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
invoke-static {v12, v6, v15}, Landroidx/camera/core/impl/utils/f;->a(Ljava/lang/String;ILjava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
.line 49
:goto_6
invoke-virtual {v4, v11}, Lorg/kc7bfi/jflac/util/ByteData;->getData(I)B
move-result v5
and-int/2addr v5, v7
if-nez v5, :cond_15
if-eqz v10, :cond_c
if-eqz v8, :cond_c
.line 50
invoke-virtual {v1, v4}, Lorg/kc7bfi/jflac/io/BitInputStream;->readUTF8Long(Lorg/kc7bfi/jflac/util/ByteData;)J
move-result-wide v5
iput-wide v5, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleNumber:J
cmp-long v2, v5, v2
if-eqz v2, :cond_b
goto :goto_7
.line 51
:cond_b
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
const-string v2, "Bad Sample Number"
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
.line 52
:cond_c
invoke-virtual {v1, v4}, Lorg/kc7bfi/jflac/io/BitInputStream;->readUTF8Int(Lorg/kc7bfi/jflac/util/ByteData;)I
move-result v2
const/4 v3, -0x1
if-eq v2, v3, :cond_14
.line 53
invoke-virtual/range {p3 .. p3}, Lorg/kc7bfi/jflac/metadata/StreamInfo;->getMinBlockSize()I
move-result v3
int-to-long v5, v3
int-to-long v2, v2
mul-long/2addr v5, v2
iput-wide v5, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleNumber:J
:goto_7
if-eqz v10, :cond_e
.line 54
invoke-virtual {v1, v14}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v2
int-to-byte v3, v2
.line 55
invoke-virtual {v4, v3}, Lorg/kc7bfi/jflac/util/ByteData;->append(B)V
const/4 v3, 0x7
if-ne v10, v3, :cond_d
.line 56
invoke-virtual {v1, v14}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v3
int-to-byte v5, v3
.line 57
invoke-virtual {v4, v5}, Lorg/kc7bfi/jflac/util/ByteData;->append(B)V
shl-int/lit8 v2, v2, 0x8
or-int/2addr v2, v3
:cond_d
add-int/2addr v2, v7
.line 58
iput v2, v0, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
:cond_e
if-eqz v9, :cond_12
.line 59
invoke-virtual {v1, v14}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v2
int-to-byte v3, v2
.line 60
invoke-virtual {v4, v3}, Lorg/kc7bfi/jflac/util/ByteData;->append(B)V
if-eq v9, v13, :cond_f
.line 61
invoke-virtual {v1, v14}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v3
int-to-byte v5, v3
.line 62
invoke-virtual {v4, v5}, Lorg/kc7bfi/jflac/util/ByteData;->append(B)V
shl-int/lit8 v2, v2, 0x8
or-int/2addr v2, v3
:cond_f
if-ne v9, v13, :cond_10
mul-int/lit16 v2, v2, 0x3e8
.line 63
iput v2, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_8
:cond_10
const/16 v3, 0xd
if-ne v9, v3, :cond_11
.line 64
iput v2, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
goto :goto_8
:cond_11
mul-int/lit8 v2, v2, 0xa
.line 65
iput v2, v0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
.line 66
:cond_12
:goto_8
invoke-virtual {v1, v14}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
int-to-byte v1, v1
.line 67
invoke-virtual {v4}, Lorg/kc7bfi/jflac/util/ByteData;->getData()[B
move-result-object v2
invoke-virtual {v4}, Lorg/kc7bfi/jflac/util/ByteData;->getLen()I
move-result v3
invoke-static {v2, v3}, Lorg/kc7bfi/jflac/util/CRC8;->calc([BI)B
move-result v2
if-ne v2, v1, :cond_13
return-void
.line 68
:cond_13
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
const-string v2, "STREAM_DECODER_ERROR_STATUS_BAD_HEADER"
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
.line 69
:cond_14
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
const-string v2, "Bad Last Frame"
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
.line 70
:cond_15
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
const-string v2, "this should be a zero padding bit"
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
.line 71
:cond_16
new-instance v1, Lorg/kc7bfi/jflac/frame/BadHeaderException;
const-string v2, "Bad Magic Number: "
invoke-static {v2}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v4, v7}, Lorg/kc7bfi/jflac/util/ByteData;->getData(I)B
move-result v3
and-int/2addr v3, v12
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lorg/kc7bfi/jflac/frame/BadHeaderException;-><init>(Ljava/lang/String;)V
throw v1
nop
:pswitch_data_0
.packed-switch 0x0
:pswitch_3
:pswitch_2
:pswitch_1
:pswitch_1
:pswitch_1
:pswitch_1
:pswitch_4
:pswitch_4
:pswitch_0
:pswitch_0
:pswitch_0
:pswitch_0
:pswitch_0
:pswitch_0
:pswitch_0
:pswitch_0
.end packed-switch
:pswitch_data_1
.packed-switch 0x0
:pswitch_f
:pswitch_e
:pswitch_e
:pswitch_e
:pswitch_d
:pswitch_c
:pswitch_b
:pswitch_a
:pswitch_9
:pswitch_8
:pswitch_7
:pswitch_6
:pswitch_10
:pswitch_10
:pswitch_10
:pswitch_5
.end packed-switch
:pswitch_data_2
.packed-switch 0x0
:pswitch_17
:pswitch_16
:pswitch_15
:pswitch_14
:pswitch_13
:pswitch_12
:pswitch_11
:pswitch_14
.end packed-switch
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 3
const-string v0, "FrameHeader: BlockSize="
.line 1
invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lorg/kc7bfi/jflac/frame/Header;->blockSize:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " SampleRate="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/frame/Header;->sampleRate:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " Channels="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/frame/Header;->channels:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " ChannelAssignment="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/frame/Header;->channelAssignment:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " BPS="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/frame/Header;->bitsPerSample:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " SampleNumber="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Lorg/kc7bfi/jflac/frame/Header;->sampleNumber:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,268 @@
.class public Lorg/kc7bfi/jflac/io/RandomFileInputStream;
.super Ljava/io/InputStream;
.source "RandomFileInputStream.java"
# instance fields
.field public randomFile:Ljava/io/RandomAccessFile;
# direct methods
.method public constructor <init>(Ljava/io/File;)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/FileNotFoundException;
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
const/4 v0, 0x0
.line 2
iput-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
.line 3
new-instance v0, Ljava/io/RandomAccessFile;
const-string v1, "r"
invoke-direct {v0, p1, v1}, Ljava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
iput-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
return-void
.end method
.method public constructor <init>(Ljava/io/RandomAccessFile;)V
.locals 1
.line 7
invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
const/4 v0, 0x0
.line 8
iput-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
.line 9
iput-object p1, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/FileNotFoundException;
}
.end annotation
.line 4
invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
const/4 v0, 0x0
.line 5
iput-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
.line 6
new-instance v0, Ljava/io/RandomAccessFile;
const-string v1, "r"
invoke-direct {v0, p1, v1}, Ljava/io/RandomAccessFile;-><init>(Ljava/lang/String;Ljava/lang/String;)V
iput-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
return-void
.end method
# virtual methods
.method public close()V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
invoke-virtual {v0}, Ljava/io/RandomAccessFile;->close()V
return-void
.end method
.method public declared-synchronized mark(I)V
.locals 1
monitor-enter p0
.line 1
:try_start_0
sget-object p1, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-string v0, "RandomFileInputStream: mark"
invoke-virtual {p1, v0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 2
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method
.method public markSupported()Z
.locals 1
const/4 v0, 0x1
return v0
.end method
.method public read()I
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
invoke-virtual {v0}, Ljava/io/RandomAccessFile;->read()I
move-result v0
return v0
.end method
.method public read([B)I
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 2
iget-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
invoke-virtual {v0, p1}, Ljava/io/RandomAccessFile;->read([B)I
move-result p1
return p1
.end method
.method public read([BII)I
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 3
iget-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
invoke-virtual {v0, p1, p2, p3}, Ljava/io/RandomAccessFile;->read([BII)I
move-result p1
return p1
.end method
.method public declared-synchronized reset()V
.locals 2
monitor-enter p0
.line 1
:try_start_0
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-string v1, "RandomFileInputStream: reset"
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 2
monitor-exit p0
return-void
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method public seek(J)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
invoke-virtual {v0, p1, p2}, Ljava/io/RandomAccessFile;->seek(J)V
return-void
.end method
.method public skip(J)J
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
invoke-virtual {v0}, Ljava/io/RandomAccessFile;->getFilePointer()J
move-result-wide v0
.line 2
iget-object v2, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
add-long/2addr p1, v0
invoke-virtual {v2, p1, p2}, Ljava/io/RandomAccessFile;->seek(J)V
.line 3
iget-object p1, p0, Lorg/kc7bfi/jflac/io/RandomFileInputStream;->randomFile:Ljava/io/RandomAccessFile;
invoke-virtual {p1}, Ljava/io/RandomAccessFile;->getFilePointer()J
move-result-wide p1
sub-long/2addr p1, v0
return-wide p1
.end method
@@ -0,0 +1,52 @@
.class public Lorg/kc7bfi/jflac/metadata/Application;
.super Lorg/kc7bfi/jflac/metadata/Metadata;
.source "Application.java"
# static fields
.field private static final APPLICATION_ID_LEN:I = 0x20
# instance fields
.field private data:[B
.field private id:[B
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;IZ)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p3}, Lorg/kc7bfi/jflac/metadata/Metadata;-><init>(Z)V
const/4 p3, 0x4
new-array v0, p3, [B
.line 2
iput-object v0, p0, Lorg/kc7bfi/jflac/metadata/Application;->id:[B
.line 3
invoke-virtual {p1, v0, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
add-int/lit8 p2, p2, -0x4
if-lez p2, :cond_0
.line 4
new-array p3, p2, [B
iput-object p3, p0, Lorg/kc7bfi/jflac/metadata/Application;->data:[B
.line 5
invoke-virtual {p1, p3, p2}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
:cond_0
return-void
.end method
@@ -0,0 +1,58 @@
.class public Lorg/kc7bfi/jflac/metadata/CueIndex;
.super Ljava/lang/Object;
.source "CueIndex.java"
# static fields
.field private static final CUESHEET_INDEX_NUMBER_LEN:I = 0x8
.field private static final CUESHEET_INDEX_OFFSET_LEN:I = 0x40
.field private static final CUESHEET_INDEX_RESERVED_LEN:I = 0x18
# instance fields
.field public number:B
.field public offset:J
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x40
.line 2
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawULong(I)J
move-result-wide v0
iput-wide v0, p0, Lorg/kc7bfi/jflac/metadata/CueIndex;->offset:J
const/16 v0, 0x8
.line 3
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
int-to-byte v0, v0
iput-byte v0, p0, Lorg/kc7bfi/jflac/metadata/CueIndex;->number:B
const/16 v0, 0x18
.line 4
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->skipBitsNoCRC(I)V
return-void
.end method
@@ -0,0 +1,472 @@
.class public Lorg/kc7bfi/jflac/metadata/CueSheet;
.super Lorg/kc7bfi/jflac/metadata/Metadata;
.source "CueSheet.java"
# static fields
.field private static final CUESHEET_IS_CD_LEN:I = 0x1
.field private static final CUESHEET_LEAD_IN_LEN:I = 0x40
.field private static final CUESHEET_MEDIA_CATALOG_NUMBER_LEN:I = 0x400
.field private static final CUESHEET_NUM_TRACKS_LEN:I = 0x8
.field private static final CUESHEET_RESERVED_LEN:I = 0x817
# instance fields
.field public isCD:Z
.field public leadIn:J
.field public mediaCatalogNumber:[B
.field public numTracks:I
.field public tracks:[Lorg/kc7bfi/jflac/metadata/CueTrack;
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;IZ)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p3}, Lorg/kc7bfi/jflac/metadata/Metadata;-><init>(Z)V
const/16 p2, 0x81
new-array p2, p2, [B
.line 2
iput-object p2, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->mediaCatalogNumber:[B
const-wide/16 v0, 0x0
.line 3
iput-wide v0, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->leadIn:J
const/4 p3, 0x0
.line 4
iput-boolean p3, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->isCD:Z
.line 5
iput p3, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->numTracks:I
const/16 v0, 0x80
.line 6
invoke-virtual {p1, p2, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
const/16 p2, 0x40
.line 7
invoke-virtual {p1, p2}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawULong(I)J
move-result-wide v0
iput-wide v0, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->leadIn:J
const/4 p2, 0x1
.line 8
invoke-virtual {p1, p2}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
if-eqz v0, :cond_0
goto :goto_0
:cond_0
move p2, p3
:goto_0
iput-boolean p2, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->isCD:Z
const/16 p2, 0x817
.line 9
invoke-virtual {p1, p2}, Lorg/kc7bfi/jflac/io/BitInputStream;->skipBitsNoCRC(I)V
const/16 p2, 0x8
.line 10
invoke-virtual {p1, p2}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result p2
iput p2, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->numTracks:I
if-lez p2, :cond_1
.line 11
new-array p2, p2, [Lorg/kc7bfi/jflac/metadata/CueTrack;
iput-object p2, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->tracks:[Lorg/kc7bfi/jflac/metadata/CueTrack;
.line 12
:goto_1
iget p2, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->numTracks:I
if-ge p3, p2, :cond_1
.line 13
iget-object p2, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->tracks:[Lorg/kc7bfi/jflac/metadata/CueTrack;
new-instance v0, Lorg/kc7bfi/jflac/metadata/CueTrack;
invoke-direct {v0, p1}, Lorg/kc7bfi/jflac/metadata/CueTrack;-><init>(Lorg/kc7bfi/jflac/io/BitInputStream;)V
aput-object v0, p2, p3
add-int/lit8 p3, p3, 0x1
goto :goto_1
:cond_1
return-void
.end method
# virtual methods
.method public isLegal(Z)V
.locals 12
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/kc7bfi/jflac/metadata/Violation;
}
.end annotation
const-wide/16 v0, 0x0
const-wide/16 v2, 0x24c
if-eqz p1, :cond_2
.line 1
iget-wide v4, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->leadIn:J
const-wide/32 v6, 0x15888
cmp-long v6, v4, v6
if-ltz v6, :cond_1
.line 2
rem-long/2addr v4, v2
cmp-long v4, v4, v0
if-nez v4, :cond_0
goto :goto_0
.line 3
:cond_0
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "CD-DA cue sheet lead-in length must be evenly divisible by 588 samples"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
.line 4
:cond_1
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "CD-DA cue sheet must have a lead-in length of at least 2 seconds"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
.line 5
:cond_2
:goto_0
iget v4, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->numTracks:I
if-eqz v4, :cond_14
const/16 v5, 0xaa
const/4 v6, 0x1
if-eqz p1, :cond_4
.line 6
iget-object v7, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->tracks:[Lorg/kc7bfi/jflac/metadata/CueTrack;
sub-int/2addr v4, v6
aget-object v4, v7, v4
iget-byte v4, v4, Lorg/kc7bfi/jflac/metadata/CueTrack;->number:B
if-ne v4, v5, :cond_3
goto :goto_1
.line 7
:cond_3
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "CD-DA cue sheet must have a lead-out track number 170 (0xAA)"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
:cond_4
:goto_1
const/4 v4, 0x0
move v7, v4
.line 8
:goto_2
iget v8, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->numTracks:I
if-ge v7, v8, :cond_13
.line 9
iget-object v9, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->tracks:[Lorg/kc7bfi/jflac/metadata/CueTrack;
aget-object v10, v9, v7
iget-byte v10, v10, Lorg/kc7bfi/jflac/metadata/CueTrack;->number:B
if-eqz v10, :cond_12
if-eqz p1, :cond_7
.line 10
aget-object v10, v9, v7
iget-byte v10, v10, Lorg/kc7bfi/jflac/metadata/CueTrack;->number:B
if-lt v10, v6, :cond_5
aget-object v10, v9, v7
iget-byte v10, v10, Lorg/kc7bfi/jflac/metadata/CueTrack;->number:B
const/16 v11, 0x63
if-le v10, v11, :cond_7
:cond_5
aget-object v10, v9, v7
iget-byte v10, v10, Lorg/kc7bfi/jflac/metadata/CueTrack;->number:B
if-ne v10, v5, :cond_6
goto :goto_3
.line 11
:cond_6
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "CD-DA cue sheet track number must be 1-99 or 170"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
:cond_7
:goto_3
if-eqz p1, :cond_9
.line 12
aget-object v10, v9, v7
iget-wide v10, v10, Lorg/kc7bfi/jflac/metadata/CueTrack;->offset:J
rem-long/2addr v10, v2
cmp-long v10, v10, v0
if-nez v10, :cond_8
goto :goto_4
.line 13
:cond_8
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "CD-DA cue sheet track offset must be evenly divisible by 588 samples"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
:cond_9
:goto_4
add-int/lit8 v8, v8, -0x1
if-ge v7, v8, :cond_c
.line 14
aget-object v8, v9, v7
iget-byte v8, v8, Lorg/kc7bfi/jflac/metadata/CueTrack;->numIndices:B
if-eqz v8, :cond_b
.line 15
aget-object v8, v9, v7
iget-object v8, v8, Lorg/kc7bfi/jflac/metadata/CueTrack;->indices:[Lorg/kc7bfi/jflac/metadata/CueIndex;
aget-object v8, v8, v4
iget-byte v8, v8, Lorg/kc7bfi/jflac/metadata/CueIndex;->number:B
if-gt v8, v6, :cond_a
goto :goto_5
.line 16
:cond_a
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "cue sheet track\'s first index number must be 0 or 1"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
.line 17
:cond_b
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "cue sheet track must have at least one index point"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
:cond_c
:goto_5
move v8, v4
.line 18
:goto_6
iget-object v9, p0, Lorg/kc7bfi/jflac/metadata/CueSheet;->tracks:[Lorg/kc7bfi/jflac/metadata/CueTrack;
aget-object v10, v9, v7
iget-byte v10, v10, Lorg/kc7bfi/jflac/metadata/CueTrack;->numIndices:B
if-ge v8, v10, :cond_11
if-eqz p1, :cond_e
.line 19
aget-object v10, v9, v7
iget-object v10, v10, Lorg/kc7bfi/jflac/metadata/CueTrack;->indices:[Lorg/kc7bfi/jflac/metadata/CueIndex;
aget-object v10, v10, v8
iget-wide v10, v10, Lorg/kc7bfi/jflac/metadata/CueIndex;->offset:J
rem-long/2addr v10, v2
cmp-long v10, v10, v0
if-nez v10, :cond_d
goto :goto_7
.line 20
:cond_d
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "CD-DA cue sheet track index offset must be evenly divisible by 588 samples"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
:cond_e
:goto_7
if-lez v8, :cond_10
.line 21
aget-object v10, v9, v7
iget-object v10, v10, Lorg/kc7bfi/jflac/metadata/CueTrack;->indices:[Lorg/kc7bfi/jflac/metadata/CueIndex;
aget-object v10, v10, v8
iget-byte v10, v10, Lorg/kc7bfi/jflac/metadata/CueIndex;->number:B
aget-object v9, v9, v7
iget-object v9, v9, Lorg/kc7bfi/jflac/metadata/CueTrack;->indices:[Lorg/kc7bfi/jflac/metadata/CueIndex;
add-int/lit8 v11, v8, -0x1
aget-object v9, v9, v11
iget-byte v9, v9, Lorg/kc7bfi/jflac/metadata/CueIndex;->number:B
add-int/2addr v9, v6
if-ne v10, v9, :cond_f
goto :goto_8
.line 22
:cond_f
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "cue sheet track index numbers must increase by 1"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
:cond_10
:goto_8
add-int/lit8 v8, v8, 0x1
goto :goto_6
:cond_11
add-int/lit8 v7, v7, 0x1
goto/16 :goto_2
.line 23
:cond_12
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "cue sheet may not have a track number 0"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
:cond_13
return-void
.line 24
:cond_14
new-instance p1, Lorg/kc7bfi/jflac/metadata/Violation;
const-string v0, "cue sheet must have at least one track (the lead-out)"
invoke-direct {p1, v0}, Lorg/kc7bfi/jflac/metadata/Violation;-><init>(Ljava/lang/String;)V
throw p1
.end method
@@ -0,0 +1,144 @@
.class public Lorg/kc7bfi/jflac/metadata/CueTrack;
.super Ljava/lang/Object;
.source "CueTrack.java"
# static fields
.field private static final CUESHEET_TRACK_ISRC_LEN:I = 0x60
.field private static final CUESHEET_TRACK_NUMBER_LEN:I = 0x8
.field private static final CUESHEET_TRACK_NUM_INDICES_LEN:I = 0x8
.field private static final CUESHEET_TRACK_OFFSET_LEN:I = 0x40
.field private static final CUESHEET_TRACK_PRE_EMPHASIS_LEN:I = 0x1
.field private static final CUESHEET_TRACK_RESERVED_LEN:I = 0x6e
.field private static final CUESHEET_TRACK_TYPE_LEN:I = 0x1
# instance fields
.field public indices:[Lorg/kc7bfi/jflac/metadata/CueIndex;
.field public isrc:[B
.field public numIndices:B
.field public number:B
.field public offset:J
.field public preEmphasis:I
.field public type:I
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;)V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0xd
new-array v0, v0, [B
.line 2
iput-object v0, p0, Lorg/kc7bfi/jflac/metadata/CueTrack;->isrc:[B
const/16 v0, 0x40
.line 3
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawULong(I)J
move-result-wide v0
iput-wide v0, p0, Lorg/kc7bfi/jflac/metadata/CueTrack;->offset:J
const/16 v0, 0x8
.line 4
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
int-to-byte v1, v1
iput-byte v1, p0, Lorg/kc7bfi/jflac/metadata/CueTrack;->number:B
.line 5
iget-object v1, p0, Lorg/kc7bfi/jflac/metadata/CueTrack;->isrc:[B
const/16 v2, 0xc
invoke-virtual {p1, v1, v2}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
const/4 v1, 0x1
.line 6
invoke-virtual {p1, v1}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v2
iput v2, p0, Lorg/kc7bfi/jflac/metadata/CueTrack;->type:I
.line 7
invoke-virtual {p1, v1}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
iput v1, p0, Lorg/kc7bfi/jflac/metadata/CueTrack;->preEmphasis:I
const/16 v1, 0x6e
.line 8
invoke-virtual {p1, v1}, Lorg/kc7bfi/jflac/io/BitInputStream;->skipBitsNoCRC(I)V
.line 9
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
int-to-byte v0, v0
iput-byte v0, p0, Lorg/kc7bfi/jflac/metadata/CueTrack;->numIndices:B
if-lez v0, :cond_0
.line 10
new-array v0, v0, [Lorg/kc7bfi/jflac/metadata/CueIndex;
iput-object v0, p0, Lorg/kc7bfi/jflac/metadata/CueTrack;->indices:[Lorg/kc7bfi/jflac/metadata/CueIndex;
const/4 v0, 0x0
.line 11
:goto_0
iget-byte v1, p0, Lorg/kc7bfi/jflac/metadata/CueTrack;->numIndices:B
if-ge v0, v1, :cond_0
.line 12
iget-object v1, p0, Lorg/kc7bfi/jflac/metadata/CueTrack;->indices:[Lorg/kc7bfi/jflac/metadata/CueIndex;
new-instance v2, Lorg/kc7bfi/jflac/metadata/CueIndex;
invoke-direct {v2, p1}, Lorg/kc7bfi/jflac/metadata/CueIndex;-><init>(Lorg/kc7bfi/jflac/io/BitInputStream;)V
aput-object v2, v1, v0
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return-void
.end method
@@ -0,0 +1,54 @@
.class public abstract Lorg/kc7bfi/jflac/metadata/Metadata;
.super Ljava/lang/Object;
.source "Metadata.java"
# static fields
.field public static final METADATA_TYPE_APPLICATION:I = 0x2
.field public static final METADATA_TYPE_CUESHEET:I = 0x5
.field public static final METADATA_TYPE_PADDING:I = 0x1
.field public static final METADATA_TYPE_PICTURE:I = 0x6
.field public static final METADATA_TYPE_SEEKTABLE:I = 0x3
.field public static final METADATA_TYPE_STREAMINFO:I = 0x0
.field public static final METADATA_TYPE_VORBIS_COMMENT:I = 0x4
.field public static final STREAM_METADATA_IS_LAST_LEN:I = 0x1
.field public static final STREAM_METADATA_LENGTH_LEN:I = 0x18
.field public static final STREAM_METADATA_TYPE_LEN:I = 0x7
# instance fields
.field public isLast:Z
# direct methods
.method public constructor <init>(Z)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-boolean p1, p0, Lorg/kc7bfi/jflac/metadata/Metadata;->isLast:Z
return-void
.end method
# virtual methods
.method public isLast()Z
.locals 1
.line 1
iget-boolean v0, p0, Lorg/kc7bfi/jflac/metadata/Metadata;->isLast:Z
return v0
.end method
@@ -0,0 +1,54 @@
.class public Lorg/kc7bfi/jflac/metadata/Padding;
.super Lorg/kc7bfi/jflac/metadata/Metadata;
.source "Padding.java"
# instance fields
.field private length:I
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;IZ)V
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p3}, Lorg/kc7bfi/jflac/metadata/Metadata;-><init>(Z)V
.line 2
iput p2, p0, Lorg/kc7bfi/jflac/metadata/Padding;->length:I
const/4 p3, 0x0
.line 3
invoke-virtual {p1, p3, p2}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
return-void
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 3
const-string v0, "Padding (Length="
.line 1
invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lorg/kc7bfi/jflac/metadata/Padding;->length:I
const-string v2, ")"
invoke-static {v0, v1, v2}, Landroid/support/v4/media/c;->a(Ljava/lang/StringBuilder;ILjava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,278 @@
.class public Lorg/kc7bfi/jflac/metadata/Picture;
.super Lorg/kc7bfi/jflac/metadata/Metadata;
.source "Picture.java"
# instance fields
.field private descString:Ljava/lang/String;
.field private descStringByteCount:I
.field public image:[B
.field private mimeString:Ljava/lang/String;
.field private mimeTypeByteCount:I
.field private picBitsPerPixel:I
.field private picByteCount:I
.field private picColorCount:I
.field private picPixelHeight:I
.field private picPixelWidth:I
.field private pictureType:I
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;IZ)V
.locals 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p3}, Lorg/kc7bfi/jflac/metadata/Metadata;-><init>(Z)V
const/16 p3, 0x20
.line 2
invoke-virtual {p1, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
iput v0, p0, Lorg/kc7bfi/jflac/metadata/Picture;->pictureType:I
.line 3
invoke-virtual {p1, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
iput v0, p0, Lorg/kc7bfi/jflac/metadata/Picture;->mimeTypeByteCount:I
.line 4
new-array v1, v0, [B
.line 5
invoke-virtual {p1, v1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
.line 6
iget v0, p0, Lorg/kc7bfi/jflac/metadata/Picture;->mimeTypeByteCount:I
mul-int/lit8 v0, v0, 0x8
add-int/lit8 v0, v0, 0x40
.line 7
new-instance v2, Ljava/lang/String;
invoke-direct {v2, v1}, Ljava/lang/String;-><init>([B)V
iput-object v2, p0, Lorg/kc7bfi/jflac/metadata/Picture;->mimeString:Ljava/lang/String;
.line 8
invoke-virtual {p1, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
iput v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->descStringByteCount:I
add-int/2addr v0, p3
if-eqz v1, :cond_0
.line 9
new-array v2, v1, [B
.line 10
invoke-virtual {p1, v2, v1}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
.line 11
:try_start_0
new-instance v1, Ljava/lang/String;
const-string v3, "UTF-8"
invoke-direct {v1, v2, v3}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
iput-object v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->descString:Ljava/lang/String;
:try_end_0
.catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_0
.line 12
:catch_0
iget v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->descStringByteCount:I
mul-int/lit8 v1, v1, 0x8
add-int/2addr v0, v1
goto :goto_0
.line 13
:cond_0
new-instance v1, Ljava/lang/String;
const-string v2, ""
invoke-direct {v1, v2}, Ljava/lang/String;-><init>(Ljava/lang/String;)V
iput-object v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->descString:Ljava/lang/String;
.line 14
:goto_0
invoke-virtual {p1, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
iput v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picPixelWidth:I
add-int/2addr v0, p3
.line 15
invoke-virtual {p1, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
iput v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picPixelHeight:I
add-int/2addr v0, p3
.line 16
invoke-virtual {p1, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
iput v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picBitsPerPixel:I
add-int/2addr v0, p3
.line 17
invoke-virtual {p1, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
iput v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picColorCount:I
add-int/2addr v0, p3
.line 18
invoke-virtual {p1, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
iput v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picByteCount:I
add-int/2addr v0, p3
.line 19
new-array p3, v1, [B
iput-object p3, p0, Lorg/kc7bfi/jflac/metadata/Picture;->image:[B
.line 20
invoke-virtual {p1, p3, v1}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
.line 21
iget p3, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picByteCount:I
mul-int/lit8 p3, p3, 0x8
add-int/2addr p3, v0
.line 22
div-int/lit8 p3, p3, 0x8
sub-int/2addr p2, p3
const/4 p3, 0x0
.line 23
invoke-virtual {p1, p3, p2}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
return-void
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 2
const-string v0, "Picture: Type="
.line 1
invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->pictureType:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " MIME type="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->mimeString:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, " Description=\""
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->descString:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "\" Pixels (WxH)="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picPixelWidth:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, "x"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picPixelHeight:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " Color Depth="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picBitsPerPixel:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " Color Count="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picColorCount:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " Picture Size (bytes)="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/metadata/Picture;->picByteCount:I
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
return-object v0
.end method
@@ -0,0 +1,183 @@
.class public Lorg/kc7bfi/jflac/metadata/SeekPoint;
.super Ljava/lang/Object;
.source "SeekPoint.java"
# static fields
.field private static final SEEKPOINT_FRAME_SAMPLES_LEN:I = 0x10
.field private static final SEEKPOINT_SAMPLE_NUMBER_LEN:I = 0x40
.field private static final SEEKPOINT_STREAM_OFFSET_LEN:I = 0x40
# instance fields
.field public frameSamples:I
.field public sampleNumber:J
.field public streamOffset:J
# direct methods
.method public constructor <init>(JJI)V
.locals 0
.line 5
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 6
iput-wide p1, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->sampleNumber:J
.line 7
iput-wide p3, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->streamOffset:J
.line 8
iput p5, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->frameSamples:I
return-void
.end method
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;)V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x40
.line 2
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawULong(I)J
move-result-wide v1
iput-wide v1, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->sampleNumber:J
.line 3
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawULong(I)J
move-result-wide v0
iput-wide v0, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->streamOffset:J
const/16 v0, 0x10
.line 4
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result p1
iput p1, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->frameSamples:I
return-void
.end method
# virtual methods
.method public getFrameSamples()I
.locals 1
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->frameSamples:I
return v0
.end method
.method public getSampleNumber()J
.locals 2
.line 1
iget-wide v0, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->sampleNumber:J
return-wide v0
.end method
.method public getStreamOffset()J
.locals 2
.line 1
iget-wide v0, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->streamOffset:J
return-wide v0
.end method
.method public setStreamOffset(J)V
.locals 0
.line 1
iput-wide p1, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->streamOffset:J
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 3
const-string v0, "sampleNumber="
.line 1
invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-wide v1, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->sampleNumber:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v1, " streamOffset="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->streamOffset:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v1, " frameSamples="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->frameSamples:I
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
return-object v0
.end method
.method public write(Lorg/kc7bfi/jflac/io/BitOutputStream;)V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-wide v0, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->sampleNumber:J
const/16 v2, 0x40
invoke-virtual {p1, v0, v1, v2}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawULong(JI)V
.line 2
iget-wide v0, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->streamOffset:J
invoke-virtual {p1, v0, v1, v2}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawULong(JI)V
.line 3
iget v0, p0, Lorg/kc7bfi/jflac/metadata/SeekPoint;->frameSamples:I
const/16 v1, 0x10
invoke-virtual {p1, v0, v1}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
return-void
.end method
@@ -0,0 +1,268 @@
.class public Lorg/kc7bfi/jflac/metadata/SeekTable;
.super Lorg/kc7bfi/jflac/metadata/Metadata;
.source "SeekTable.java"
# static fields
.field private static final SEEKPOINT_LENGTH_BYTES:I = 0x12
# instance fields
.field public points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;IZ)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p3}, Lorg/kc7bfi/jflac/metadata/Metadata;-><init>(Z)V
.line 2
div-int/lit8 p3, p2, 0x12
.line 3
new-array p3, p3, [Lorg/kc7bfi/jflac/metadata/SeekPoint;
iput-object p3, p0, Lorg/kc7bfi/jflac/metadata/SeekTable;->points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
const/4 p3, 0x0
.line 4
:goto_0
iget-object v0, p0, Lorg/kc7bfi/jflac/metadata/SeekTable;->points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
array-length v1, v0
if-ge p3, v1, :cond_0
.line 5
new-instance v1, Lorg/kc7bfi/jflac/metadata/SeekPoint;
invoke-direct {v1, p1}, Lorg/kc7bfi/jflac/metadata/SeekPoint;-><init>(Lorg/kc7bfi/jflac/io/BitInputStream;)V
aput-object v1, v0, p3
add-int/lit8 p3, p3, 0x1
goto :goto_0
:cond_0
mul-int/lit8 p3, p2, 0x12
sub-int/2addr p2, p3
if-lez p2, :cond_1
const/4 p3, 0x0
.line 6
invoke-virtual {p1, p3, p2}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
:cond_1
return-void
.end method
.method public constructor <init>([Lorg/kc7bfi/jflac/metadata/SeekPoint;Z)V
.locals 0
.line 7
invoke-direct {p0, p2}, Lorg/kc7bfi/jflac/metadata/Metadata;-><init>(Z)V
.line 8
iput-object p1, p0, Lorg/kc7bfi/jflac/metadata/SeekTable;->points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
return-void
.end method
# virtual methods
.method public calcLength()I
.locals 1
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/metadata/SeekTable;->points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
array-length v0, v0
mul-int/lit8 v0, v0, 0x12
return v0
.end method
.method public getSeekPoint(I)Lorg/kc7bfi/jflac/metadata/SeekPoint;
.locals 2
if-ltz p1, :cond_1
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/metadata/SeekTable;->points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
array-length v1, v0
if-lt p1, v1, :cond_0
goto :goto_0
.line 2
:cond_0
aget-object p1, v0, p1
return-object p1
:cond_1
:goto_0
const/4 p1, 0x0
return-object p1
.end method
.method public numberOfPoints()I
.locals 1
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/metadata/SeekTable;->points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
array-length v0, v0
return v0
.end method
.method public toString()Ljava/lang/String;
.locals 5
.line 1
new-instance v0, Ljava/lang/StringBuffer;
invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V
const-string v1, "SeekTable: points="
.line 2
invoke-static {v1}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Lorg/kc7bfi/jflac/metadata/SeekTable;->points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
array-length v2, v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, "\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
const/4 v1, 0x0
.line 3
:goto_0
iget-object v3, p0, Lorg/kc7bfi/jflac/metadata/SeekTable;->points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
array-length v3, v3
if-ge v1, v3, :cond_0
const-string v3, "\tPoint "
.line 4
invoke-static {v3}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
iget-object v4, p0, Lorg/kc7bfi/jflac/metadata/SeekTable;->points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
aget-object v4, v4, v1
invoke-virtual {v4}, Lorg/kc7bfi/jflac/metadata/SeekPoint;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
add-int/lit8 v1, v1, 0x1
goto :goto_0
.line 5
:cond_0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public write(Lorg/kc7bfi/jflac/io/BitOutputStream;Z)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const/4 v0, 0x1
.line 1
invoke-virtual {p1, p2, v0}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(ZI)V
const/4 p2, 0x3
const/4 v0, 0x7
.line 2
invoke-virtual {p1, p2, v0}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
.line 3
invoke-virtual {p0}, Lorg/kc7bfi/jflac/metadata/SeekTable;->calcLength()I
move-result p2
const/16 v0, 0x18
invoke-virtual {p1, p2, v0}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
const/4 p2, 0x0
.line 4
:goto_0
iget-object v0, p0, Lorg/kc7bfi/jflac/metadata/SeekTable;->points:[Lorg/kc7bfi/jflac/metadata/SeekPoint;
array-length v1, v0
if-ge p2, v1, :cond_0
.line 5
aget-object v0, v0, p2
invoke-virtual {v0, p1}, Lorg/kc7bfi/jflac/metadata/SeekPoint;->write(Lorg/kc7bfi/jflac/io/BitOutputStream;)V
add-int/lit8 p2, p2, 0x1
goto :goto_0
.line 6
:cond_0
invoke-virtual {p1}, Lorg/kc7bfi/jflac/io/BitOutputStream;->flushByteAligned()V
return-void
.end method
@@ -0,0 +1,477 @@
.class public Lorg/kc7bfi/jflac/metadata/StreamInfo;
.super Lorg/kc7bfi/jflac/metadata/Metadata;
.source "StreamInfo.java"
# static fields
.field private static final STREAMINFO_BITS_PER_SAMPLE_LEN:I = 0x5
.field private static final STREAMINFO_CHANNELS_LEN:I = 0x3
.field private static final STREAMINFO_MAX_BLOCK_SIZE_LEN:I = 0x10
.field private static final STREAMINFO_MAX_FRAME_SIZE_LEN:I = 0x18
.field private static final STREAMINFO_MD5SUM_LEN:I = 0x80
.field private static final STREAMINFO_MIN_BLOCK_SIZE_LEN:I = 0x10
.field private static final STREAMINFO_MIN_FRAME_SIZE_LEN:I = 0x18
.field private static final STREAMINFO_SAMPLE_RATE_LEN:I = 0x14
.field private static final STREAMINFO_TOTAL_SAMPLES_LEN:I = 0x24
# instance fields
.field private bitsPerSample:I
.field private channels:I
.field private maxBlockSize:I
.field private maxFrameSize:I
.field private md5sum:[B
.field private minBlockSize:I
.field private minFrameSize:I
.field private sampleRate:I
.field private totalSamples:J
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;IZ)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p3}, Lorg/kc7bfi/jflac/metadata/Metadata;-><init>(Z)V
const/16 p3, 0x10
new-array v0, p3, [B
.line 2
iput-object v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->md5sum:[B
.line 3
invoke-virtual {p1, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
iput v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->minBlockSize:I
.line 4
invoke-virtual {p1, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
iput v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->maxBlockSize:I
const/16 v0, 0x18
.line 5
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v1
iput v1, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->minFrameSize:I
.line 6
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
iput v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->maxFrameSize:I
const/16 v0, 0x14
.line 7
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
iput v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->sampleRate:I
const/4 v0, 0x3
.line 8
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->channels:I
const/4 v0, 0x5
.line 9
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawUInt(I)I
move-result v0
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->bitsPerSample:I
const/16 v0, 0x24
.line 10
invoke-virtual {p1, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawULong(I)J
move-result-wide v0
iput-wide v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->totalSamples:J
.line 11
iget-object v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->md5sum:[B
invoke-virtual {p1, v0, p3}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
add-int/lit8 p2, p2, -0x22
const/4 p3, 0x0
.line 12
invoke-virtual {p1, p3, p2}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
return-void
.end method
# virtual methods
.method public addTotalSamples(J)V
.locals 2
.line 1
iget-wide v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->totalSamples:J
add-long/2addr v0, p1
iput-wide v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->totalSamples:J
return-void
.end method
.method public calcLength()I
.locals 1
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->md5sum:[B
array-length v0, v0
mul-int/lit8 v0, v0, 0x8
add-int/lit16 v0, v0, 0x90
add-int/lit8 v0, v0, 0x7
.line 2
div-int/lit8 v0, v0, 0x8
return v0
.end method
.method public compatiable(Lorg/kc7bfi/jflac/metadata/StreamInfo;)Z
.locals 3
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->sampleRate:I
iget v1, p1, Lorg/kc7bfi/jflac/metadata/StreamInfo;->sampleRate:I
const/4 v2, 0x0
if-eq v0, v1, :cond_0
return v2
.line 2
:cond_0
iget v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->channels:I
iget v1, p1, Lorg/kc7bfi/jflac/metadata/StreamInfo;->channels:I
if-eq v0, v1, :cond_1
return v2
.line 3
:cond_1
iget v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->bitsPerSample:I
iget p1, p1, Lorg/kc7bfi/jflac/metadata/StreamInfo;->bitsPerSample:I
if-eq v0, p1, :cond_2
return v2
:cond_2
const/4 p1, 0x1
return p1
.end method
.method public getBitsPerSample()I
.locals 1
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->bitsPerSample:I
return v0
.end method
.method public getChannels()I
.locals 1
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->channels:I
return v0
.end method
.method public getMaxBlockSize()I
.locals 1
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->maxBlockSize:I
return v0
.end method
.method public getMaxFrameSize()I
.locals 1
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->maxFrameSize:I
return v0
.end method
.method public getMinBlockSize()I
.locals 1
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->minBlockSize:I
return v0
.end method
.method public getMinFrameSize()I
.locals 1
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->minFrameSize:I
return v0
.end method
.method public getSampleRate()I
.locals 1
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->sampleRate:I
return v0
.end method
.method public getTotalSamples()J
.locals 2
.line 1
iget-wide v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->totalSamples:J
return-wide v0
.end method
.method public setTotalSamples(J)V
.locals 0
.line 1
iput-wide p1, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->totalSamples:J
return-void
.end method
.method public toString()Ljava/lang/String;
.locals 3
const-string v0, "StreamInfo: BlockSize="
.line 1
invoke-static {v0}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->minBlockSize:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, "-"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->maxBlockSize:I
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " FrameSize"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->minFrameSize:I
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->maxFrameSize:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " SampleRate="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->sampleRate:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " Channels="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->channels:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " BPS="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->bitsPerSample:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " TotalSamples="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v1, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->totalSamples:J
invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public write(Lorg/kc7bfi/jflac/io/BitOutputStream;Z)V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const/4 v0, 0x1
.line 1
invoke-virtual {p1, p2, v0}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(ZI)V
const/4 p2, 0x0
const/4 v1, 0x7
.line 2
invoke-virtual {p1, p2, v1}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
.line 3
invoke-virtual {p0}, Lorg/kc7bfi/jflac/metadata/StreamInfo;->calcLength()I
move-result p2
const/16 v1, 0x18
invoke-virtual {p1, p2, v1}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
.line 4
iget p2, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->minBlockSize:I
const/16 v2, 0x10
invoke-virtual {p1, p2, v2}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
.line 5
iget p2, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->maxBlockSize:I
invoke-virtual {p1, p2, v2}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
.line 6
iget p2, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->minFrameSize:I
invoke-virtual {p1, p2, v1}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
.line 7
iget p2, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->maxFrameSize:I
invoke-virtual {p1, p2, v1}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
.line 8
iget p2, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->sampleRate:I
const/16 v1, 0x14
invoke-virtual {p1, p2, v1}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
.line 9
iget p2, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->channels:I
sub-int/2addr p2, v0
const/4 v1, 0x3
invoke-virtual {p1, p2, v1}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawUInt(II)V
.line 10
iget p2, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->bitsPerSample:I
sub-int/2addr p2, v0
int-to-long v0, p2
const/4 p2, 0x5
invoke-virtual {p1, v0, v1, p2}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawULong(JI)V
.line 11
iget-wide v0, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->totalSamples:J
const/16 p2, 0x24
invoke-virtual {p1, v0, v1, p2}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeRawULong(JI)V
.line 12
iget-object p2, p0, Lorg/kc7bfi/jflac/metadata/StreamInfo;->md5sum:[B
array-length v0, p2
invoke-virtual {p1, p2, v0}, Lorg/kc7bfi/jflac/io/BitOutputStream;->writeByteBlock([BI)V
.line 13
invoke-virtual {p1}, Lorg/kc7bfi/jflac/io/BitOutputStream;->flushByteAligned()V
return-void
.end method
@@ -0,0 +1,34 @@
.class public Lorg/kc7bfi/jflac/metadata/Unknown;
.super Lorg/kc7bfi/jflac/metadata/Metadata;
.source "Unknown.java"
# instance fields
.field public data:[B
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;IZ)V
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p3}, Lorg/kc7bfi/jflac/metadata/Metadata;-><init>(Z)V
if-lez p2, :cond_0
.line 2
new-array p3, p2, [B
iput-object p3, p0, Lorg/kc7bfi/jflac/metadata/Unknown;->data:[B
.line 3
invoke-virtual {p1, p3, p2}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
:cond_0
return-void
.end method
@@ -0,0 +1,41 @@
.class public Lorg/kc7bfi/jflac/metadata/Violation;
.super Ljava/lang/Exception;
.source "Violation.java"
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Exception;-><init>()V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.locals 0
.line 2
invoke-direct {p0, p1}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Ljava/lang/Throwable;)V
.locals 0
.line 4
invoke-direct {p0, p1, p2}, Ljava/lang/Exception;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
return-void
.end method
.method public constructor <init>(Ljava/lang/Throwable;)V
.locals 0
.line 3
invoke-direct {p0, p1}, Ljava/lang/Exception;-><init>(Ljava/lang/Throwable;)V
return-void
.end method
@@ -0,0 +1,267 @@
.class public Lorg/kc7bfi/jflac/metadata/VorbisComment;
.super Lorg/kc7bfi/jflac/metadata/Metadata;
.source "VorbisComment.java"
# instance fields
.field public comments:[Lorg/kc7bfi/jflac/metadata/VorbisString;
.field public numComments:I
.field public vendorString:[B
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;IZ)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0, p3}, Lorg/kc7bfi/jflac/metadata/Metadata;-><init>(Z)V
const/4 p2, 0x0
new-array p3, p2, [B
.line 2
iput-object p3, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->vendorString:[B
.line 3
iput p2, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->numComments:I
.line 4
invoke-virtual {p1}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawIntLittleEndian()I
move-result p3
.line 5
new-array p3, p3, [B
iput-object p3, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->vendorString:[B
.line 6
array-length v0, p3
invoke-virtual {p1, p3, v0}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
.line 7
invoke-virtual {p1}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawIntLittleEndian()I
move-result p3
iput p3, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->numComments:I
if-lez p3, :cond_0
.line 8
new-array p3, p3, [Lorg/kc7bfi/jflac/metadata/VorbisString;
iput-object p3, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->comments:[Lorg/kc7bfi/jflac/metadata/VorbisString;
.line 9
:cond_0
:goto_0
iget p3, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->numComments:I
if-ge p2, p3, :cond_1
.line 10
iget-object p3, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->comments:[Lorg/kc7bfi/jflac/metadata/VorbisString;
new-instance v0, Lorg/kc7bfi/jflac/metadata/VorbisString;
invoke-direct {v0, p1}, Lorg/kc7bfi/jflac/metadata/VorbisString;-><init>(Lorg/kc7bfi/jflac/io/BitInputStream;)V
aput-object v0, p3, p2
add-int/lit8 p2, p2, 0x1
goto :goto_0
:cond_1
return-void
.end method
# virtual methods
.method public getCommentByName(Ljava/lang/String;)[Ljava/lang/String;
.locals 6
if-nez p1, :cond_0
const/4 p1, 0x0
return-object p1
.line 1
:cond_0
new-instance v0, Ljava/util/Vector;
invoke-direct {v0}, Ljava/util/Vector;-><init>()V
const/4 v1, 0x0
move v2, v1
.line 2
:goto_0
iget-object v3, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->comments:[Lorg/kc7bfi/jflac/metadata/VorbisString;
array-length v4, v3
if-ge v2, v4, :cond_2
.line 3
aget-object v3, v3, v2
invoke-virtual {v3}, Lorg/kc7bfi/jflac/metadata/VorbisString;->toString()Ljava/lang/String;
move-result-object v3
const/16 v4, 0x3d
.line 4
invoke-virtual {v3, v4}, Ljava/lang/String;->indexOf(I)I
move-result v4
const/4 v5, -0x1
if-eq v4, v5, :cond_1
.line 5
invoke-virtual {v3, v1, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v5
invoke-virtual {v5, p1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_1
add-int/lit8 v4, v4, 0x1
.line 6
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v5
invoke-virtual {v3, v4, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/util/Vector;->add(Ljava/lang/Object;)Z
:cond_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_2
new-array p1, v1, [Ljava/lang/String;
.line 7
invoke-virtual {v0, p1}, Ljava/util/Vector;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object p1
check-cast p1, [Ljava/lang/String;
return-object p1
.end method
.method public toString()Ljava/lang/String;
.locals 4
.line 1
new-instance v0, Ljava/lang/StringBuffer;
const-string v1, "VendorString \'"
invoke-static {v1}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->vendorString:[B
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
const-string v2, "\'\n"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/StringBuffer;-><init>(Ljava/lang/String;)V
const-string v1, "VorbisComment (count="
.line 2
invoke-static {v1}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget v2, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->numComments:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, ")"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
const/4 v1, 0x0
.line 3
:goto_0
iget v2, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->numComments:I
if-ge v1, v2, :cond_0
const-string v2, "\n\t"
.line 4
invoke-static {v2}, Landroid/support/v4/media/d;->a(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
iget-object v3, p0, Lorg/kc7bfi/jflac/metadata/VorbisComment;->comments:[Lorg/kc7bfi/jflac/metadata/VorbisString;
aget-object v3, v3, v1
invoke-virtual {v3}, Lorg/kc7bfi/jflac/metadata/VorbisString;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
add-int/lit8 v1, v1, 0x1
goto :goto_0
.line 5
:cond_0
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
@@ -0,0 +1,74 @@
.class public Lorg/kc7bfi/jflac/metadata/VorbisString;
.super Ljava/lang/Object;
.source "VorbisString.java"
# instance fields
.field public entry:[B
# direct methods
.method public constructor <init>(Lorg/kc7bfi/jflac/io/BitInputStream;)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-virtual {p1}, Lorg/kc7bfi/jflac/io/BitInputStream;->readRawIntLittleEndian()I
move-result v0
if-nez v0, :cond_0
return-void
.line 3
:cond_0
new-array v0, v0, [B
iput-object v0, p0, Lorg/kc7bfi/jflac/metadata/VorbisString;->entry:[B
.line 4
array-length v1, v0
invoke-virtual {p1, v0, v1}, Lorg/kc7bfi/jflac/io/BitInputStream;->readByteBlockAlignedNoCRC([BI)V
return-void
.end method
# virtual methods
.method public toString()Ljava/lang/String;
.locals 3
.line 1
:try_start_0
new-instance v0, Ljava/lang/String;
iget-object v1, p0, Lorg/kc7bfi/jflac/metadata/VorbisString;->entry:[B
const-string v2, "UTF-8"
invoke-direct {v0, v1, v2}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
:try_end_0
.catch Ljava/io/UnsupportedEncodingException; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_0
.line 2
:catch_0
new-instance v0, Ljava/lang/String;
const-string v1, ""
invoke-direct {v0, v1}, Ljava/lang/String;-><init>(Ljava/lang/String;)V
:goto_0
return-object v0
.end method
@@ -0,0 +1,132 @@
.class public final Lorg/kc7bfi/jflac/util/BitMath;
.super Ljava/lang/Object;
.source "BitMath.java"
# direct methods
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static ilog2(I)I
.locals 1
const/4 v0, 0x0
:goto_0
shr-int/lit8 p0, p0, 0x1
if-eqz p0, :cond_0
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return v0
.end method
.method public static silog2(I)I
.locals 1
:goto_0
const/4 v0, 0x0
if-nez p0, :cond_0
return v0
:cond_0
if-lez p0, :cond_2
:goto_1
if-eqz p0, :cond_1
add-int/lit8 v0, v0, 0x1
shr-int/lit8 p0, p0, 0x1
goto :goto_1
:cond_1
add-int/lit8 v0, v0, 0x1
return v0
:cond_2
const/4 v0, -0x1
if-ne p0, v0, :cond_3
const/4 p0, 0x2
return p0
:cond_3
add-int/lit8 p0, p0, 0x1
neg-int p0, p0
goto :goto_0
.end method
.method public static silog2Wide(J)I
.locals 5
:goto_0
const-wide/16 v0, 0x0
cmp-long v2, p0, v0
const/4 v3, 0x0
if-nez v2, :cond_0
return v3
:cond_0
if-lez v2, :cond_2
:goto_1
cmp-long v2, p0, v0
const/4 v4, 0x1
if-eqz v2, :cond_1
add-int/lit8 v3, v3, 0x1
shr-long/2addr p0, v4
goto :goto_1
:cond_1
add-int/2addr v3, v4
return v3
:cond_2
const-wide/16 v0, -0x1
cmp-long v0, p0, v0
if-nez v0, :cond_3
const/4 p0, 0x2
return p0
:cond_3
const-wide/16 v0, 0x1
add-long/2addr p0, v0
neg-long p0, p0
goto :goto_0
.end method
@@ -0,0 +1,107 @@
.class public Lorg/kc7bfi/jflac/util/ByteData;
.super Ljava/lang/Object;
.source "ByteData.java"
# static fields
.field private static final DEFAULT_BUFFER_SIZE:I = 0x100
# instance fields
.field private data:[B
.field private len:I
# direct methods
.method public constructor <init>(I)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
if-gtz p1, :cond_0
const/16 p1, 0x100
.line 2
:cond_0
new-array p1, p1, [B
iput-object p1, p0, Lorg/kc7bfi/jflac/util/ByteData;->data:[B
const/4 p1, 0x0
.line 3
iput p1, p0, Lorg/kc7bfi/jflac/util/ByteData;->len:I
return-void
.end method
# virtual methods
.method public append(B)V
.locals 3
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/ByteData;->data:[B
iget v1, p0, Lorg/kc7bfi/jflac/util/ByteData;->len:I
add-int/lit8 v2, v1, 0x1
iput v2, p0, Lorg/kc7bfi/jflac/util/ByteData;->len:I
aput-byte p1, v0, v1
return-void
.end method
.method public getData(I)B
.locals 1
.line 2
iget-object v0, p0, Lorg/kc7bfi/jflac/util/ByteData;->data:[B
aget-byte p1, v0, p1
return p1
.end method
.method public getData()[B
.locals 1
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/ByteData;->data:[B
return-object v0
.end method
.method public getLen()I
.locals 1
.line 1
iget v0, p0, Lorg/kc7bfi/jflac/util/ByteData;->len:I
return v0
.end method
.method public setLen(I)V
.locals 2
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/ByteData;->data:[B
array-length v1, v0
if-le p1, v1, :cond_0
.line 2
array-length p1, v0
.line 3
:cond_0
iput p1, p0, Lorg/kc7bfi/jflac/util/ByteData;->len:I
return-void
.end method
@@ -0,0 +1,384 @@
.class public final Lorg/kc7bfi/jflac/util/CRC16;
.super Ljava/lang/Object;
.source "CRC16.java"
# static fields
.field private static final CRC16_TABLE:[S
# direct methods
.method public static constructor <clinit>()V
.locals 1
const/16 v0, 0x100
new-array v0, v0, [S
.line 1
fill-array-data v0, :array_0
sput-object v0, Lorg/kc7bfi/jflac/util/CRC16;->CRC16_TABLE:[S
return-void
:array_0
.array-data 2
0x0s
-0x7ffbs
-0x7ff1s
0xas
-0x7fe5s
0x1es
0x14s
-0x7fefs
-0x7fcds
0x36s
0x3cs
-0x7fc7s
0x28s
-0x7fd3s
-0x7fd9s
0x22s
-0x7f9ds
0x66s
0x6cs
-0x7f97s
0x78s
-0x7f83s
-0x7f89s
0x72s
0x50s
-0x7fabs
-0x7fa1s
0x5as
-0x7fb5s
0x4es
0x44s
-0x7fbfs
-0x7f3ds
0xc6s
0xccs
-0x7f37s
0xd8s
-0x7f23s
-0x7f29s
0xd2s
0xf0s
-0x7f0bs
-0x7f01s
0xfas
-0x7f15s
0xees
0xe4s
-0x7f1fs
0xa0s
-0x7f5bs
-0x7f51s
0xaas
-0x7f45s
0xbes
0xb4s
-0x7f4fs
-0x7f6ds
0x96s
0x9cs
-0x7f67s
0x88s
-0x7f73s
-0x7f79s
0x82s
-0x7e7ds
0x186s
0x18cs
-0x7e77s
0x198s
-0x7e63s
-0x7e69s
0x192s
0x1b0s
-0x7e4bs
-0x7e41s
0x1bas
-0x7e55s
0x1aes
0x1a4s
-0x7e5fs
0x1e0s
-0x7e1bs
-0x7e11s
0x1eas
-0x7e05s
0x1fes
0x1f4s
-0x7e0fs
-0x7e2ds
0x1d6s
0x1dcs
-0x7e27s
0x1c8s
-0x7e33s
-0x7e39s
0x1c2s
0x140s
-0x7ebbs
-0x7eb1s
0x14as
-0x7ea5s
0x15es
0x154s
-0x7eafs
-0x7e8ds
0x176s
0x17cs
-0x7e87s
0x168s
-0x7e93s
-0x7e99s
0x162s
-0x7edds
0x126s
0x12cs
-0x7ed7s
0x138s
-0x7ec3s
-0x7ec9s
0x132s
0x110s
-0x7eebs
-0x7ee1s
0x11as
-0x7ef5s
0x10es
0x104s
-0x7effs
-0x7cfds
0x306s
0x30cs
-0x7cf7s
0x318s
-0x7ce3s
-0x7ce9s
0x312s
0x330s
-0x7ccbs
-0x7cc1s
0x33as
-0x7cd5s
0x32es
0x324s
-0x7cdfs
0x360s
-0x7c9bs
-0x7c91s
0x36as
-0x7c85s
0x37es
0x374s
-0x7c8fs
-0x7cads
0x356s
0x35cs
-0x7ca7s
0x348s
-0x7cb3s
-0x7cb9s
0x342s
0x3c0s
-0x7c3bs
-0x7c31s
0x3cas
-0x7c25s
0x3des
0x3d4s
-0x7c2fs
-0x7c0ds
0x3f6s
0x3fcs
-0x7c07s
0x3e8s
-0x7c13s
-0x7c19s
0x3e2s
-0x7c5ds
0x3a6s
0x3acs
-0x7c57s
0x3b8s
-0x7c43s
-0x7c49s
0x3b2s
0x390s
-0x7c6bs
-0x7c61s
0x39as
-0x7c75s
0x38es
0x384s
-0x7c7fs
0x280s
-0x7d7bs
-0x7d71s
0x28as
-0x7d65s
0x29es
0x294s
-0x7d6fs
-0x7d4ds
0x2b6s
0x2bcs
-0x7d47s
0x2a8s
-0x7d53s
-0x7d59s
0x2a2s
-0x7d1ds
0x2e6s
0x2ecs
-0x7d17s
0x2f8s
-0x7d03s
-0x7d09s
0x2f2s
0x2d0s
-0x7d2bs
-0x7d21s
0x2das
-0x7d35s
0x2ces
0x2c4s
-0x7d3fs
-0x7dbds
0x246s
0x24cs
-0x7db7s
0x258s
-0x7da3s
-0x7da9s
0x252s
0x270s
-0x7d8bs
-0x7d81s
0x27as
-0x7d95s
0x26es
0x264s
-0x7d9fs
0x220s
-0x7ddbs
-0x7dd1s
0x22as
-0x7dc5s
0x23es
0x234s
-0x7dcfs
-0x7deds
0x216s
0x21cs
-0x7de7s
0x208s
-0x7df3s
-0x7df9s
0x202s
.end array-data
.end method
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static calc([BI)S
.locals 5
const/4 v0, 0x0
move v1, v0
:goto_0
if-ge v0, p1, :cond_0
shl-int/lit8 v2, v1, 0x8
.line 1
sget-object v3, Lorg/kc7bfi/jflac/util/CRC16;->CRC16_TABLE:[S
shr-int/lit8 v1, v1, 0x8
aget-byte v4, p0, v0
xor-int/2addr v1, v4
aget-short v1, v3, v1
xor-int/2addr v1, v2
int-to-short v1, v1
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return v1
.end method
.method public static update(BS)S
.locals 2
shl-int/lit8 v0, p1, 0x8
.line 1
sget-object v1, Lorg/kc7bfi/jflac/util/CRC16;->CRC16_TABLE:[S
shr-int/lit8 p1, p1, 0x8
xor-int/2addr p0, p1
and-int/lit16 p0, p0, 0xff
aget-short p0, v1, p0
xor-int/2addr p0, v0
int-to-short p0, p0
return p0
.end method
.method public static updateBlock([BIS)S
.locals 4
const/4 v0, 0x0
:goto_0
if-ge v0, p1, :cond_0
shl-int/lit8 v1, p2, 0x8
.line 1
sget-object v2, Lorg/kc7bfi/jflac/util/CRC16;->CRC16_TABLE:[S
shr-int/lit8 p2, p2, 0x8
aget-byte v3, p0, v0
xor-int/2addr p2, v3
aget-short p2, v2, p2
xor-int/2addr p2, v1
int-to-short p2, p2
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return p2
.end method
@@ -0,0 +1,360 @@
.class public final Lorg/kc7bfi/jflac/util/CRC8;
.super Ljava/lang/Object;
.source "CRC8.java"
# static fields
.field private static final CRC8_TABLE:[B
# direct methods
.method public static constructor <clinit>()V
.locals 1
const/16 v0, 0x100
new-array v0, v0, [B
.line 1
fill-array-data v0, :array_0
sput-object v0, Lorg/kc7bfi/jflac/util/CRC8;->CRC8_TABLE:[B
return-void
:array_0
.array-data 1
0x0t
0x7t
0xet
0x9t
0x1ct
0x1bt
0x12t
0x15t
0x38t
0x3ft
0x36t
0x31t
0x24t
0x23t
0x2at
0x2dt
0x70t
0x77t
0x7et
0x79t
0x6ct
0x6bt
0x62t
0x65t
0x48t
0x4ft
0x46t
0x41t
0x54t
0x53t
0x5at
0x5dt
-0x20t
-0x19t
-0x12t
-0x17t
-0x4t
-0x5t
-0xet
-0xbt
-0x28t
-0x21t
-0x2at
-0x2ft
-0x3ct
-0x3dt
-0x36t
-0x33t
-0x70t
-0x69t
-0x62t
-0x67t
-0x74t
-0x75t
-0x7et
-0x7bt
-0x58t
-0x51t
-0x5at
-0x5ft
-0x4ct
-0x4dt
-0x46t
-0x43t
-0x39t
-0x40t
-0x37t
-0x32t
-0x25t
-0x24t
-0x2bt
-0x2et
-0x1t
-0x8t
-0xft
-0xat
-0x1dt
-0x1ct
-0x13t
-0x16t
-0x49t
-0x50t
-0x47t
-0x42t
-0x55t
-0x54t
-0x5bt
-0x5et
-0x71t
-0x78t
-0x7ft
-0x7at
-0x6dt
-0x6ct
-0x63t
-0x66t
0x27t
0x20t
0x29t
0x2et
0x3bt
0x3ct
0x35t
0x32t
0x1ft
0x18t
0x11t
0x16t
0x3t
0x4t
0xdt
0xat
0x57t
0x50t
0x59t
0x5et
0x4bt
0x4ct
0x45t
0x42t
0x6ft
0x68t
0x61t
0x66t
0x73t
0x74t
0x7dt
0x7at
-0x77t
-0x72t
-0x79t
-0x80t
-0x6bt
-0x6et
-0x65t
-0x64t
-0x4ft
-0x4at
-0x41t
-0x48t
-0x53t
-0x56t
-0x5dt
-0x5ct
-0x7t
-0x2t
-0x9t
-0x10t
-0x1bt
-0x1et
-0x15t
-0x14t
-0x3ft
-0x3at
-0x31t
-0x38t
-0x23t
-0x26t
-0x2dt
-0x2ct
0x69t
0x6et
0x67t
0x60t
0x75t
0x72t
0x7bt
0x7ct
0x51t
0x56t
0x5ft
0x58t
0x4dt
0x4at
0x43t
0x44t
0x19t
0x1et
0x17t
0x10t
0x5t
0x2t
0xbt
0xct
0x21t
0x26t
0x2ft
0x28t
0x3dt
0x3at
0x33t
0x34t
0x4et
0x49t
0x40t
0x47t
0x52t
0x55t
0x5ct
0x5bt
0x76t
0x71t
0x78t
0x7ft
0x6at
0x6dt
0x64t
0x63t
0x3et
0x39t
0x30t
0x37t
0x22t
0x25t
0x2ct
0x2bt
0x6t
0x1t
0x8t
0xft
0x1at
0x1dt
0x14t
0x13t
-0x52t
-0x57t
-0x60t
-0x59t
-0x4et
-0x4bt
-0x44t
-0x45t
-0x6at
-0x6ft
-0x68t
-0x61t
-0x76t
-0x73t
-0x7ct
-0x7dt
-0x22t
-0x27t
-0x30t
-0x29t
-0x3et
-0x3bt
-0x34t
-0x35t
-0x1at
-0x1ft
-0x18t
-0x11t
-0x6t
-0x3t
-0xct
-0xdt
.end array-data
.end method
.method public constructor <init>()V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static calc([BI)B
.locals 4
const/4 v0, 0x0
move v1, v0
:goto_0
if-ge v0, p1, :cond_0
.line 1
sget-object v2, Lorg/kc7bfi/jflac/util/CRC8;->CRC8_TABLE:[B
aget-byte v3, p0, v0
xor-int/2addr v1, v3
and-int/lit16 v1, v1, 0xff
aget-byte v1, v2, v1
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return v1
.end method
.method public static update(BB)B
.locals 1
.line 1
sget-object v0, Lorg/kc7bfi/jflac/util/CRC8;->CRC8_TABLE:[B
xor-int/2addr p0, p1
aget-byte p0, v0, p0
return p0
.end method
.method public static updateBlock([BIB)B
.locals 3
const/4 v0, 0x0
:goto_0
if-ge v0, p1, :cond_0
.line 1
sget-object v1, Lorg/kc7bfi/jflac/util/CRC8;->CRC8_TABLE:[B
aget-byte v2, p0, v0
xor-int/2addr p2, v2
aget-byte p2, v1, p2
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_0
return p2
.end method
@@ -0,0 +1,383 @@
.class public Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;
.super Ljava/lang/Object;
.source "LittleEndianDataOutput.java"
# interfaces
.implements Ljava/io/DataOutput;
# instance fields
.field private out:Ljava/io/DataOutput;
# direct methods
.method public constructor <init>(Ljava/io/DataOutput;)V
.locals 0
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
iput-object p1, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
return-void
.end method
# virtual methods
.method public write(I)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
invoke-interface {v0, p1}, Ljava/io/DataOutput;->write(I)V
return-void
.end method
.method public write([B)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 2
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
invoke-interface {v0, p1}, Ljava/io/DataOutput;->write([B)V
return-void
.end method
.method public write([BII)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 3
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
invoke-interface {v0, p1, p2, p3}, Ljava/io/DataOutput;->write([BII)V
return-void
.end method
.method public writeBoolean(Z)V
.locals 0
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
invoke-virtual {p0, p1}, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->writeBoolean(Z)V
return-void
.end method
.method public writeByte(I)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
invoke-interface {v0, p1}, Ljava/io/DataOutput;->writeByte(I)V
return-void
.end method
.method public writeBytes(Ljava/lang/String;)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
invoke-interface {v0, p1}, Ljava/io/DataOutput;->writeBytes(Ljava/lang/String;)V
return-void
.end method
.method public writeChar(I)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
invoke-interface {v0, p1}, Ljava/io/DataOutput;->writeChar(I)V
return-void
.end method
.method public writeChars(Ljava/lang/String;)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
invoke-interface {v0, p1}, Ljava/io/DataOutput;->writeChars(Ljava/lang/String;)V
return-void
.end method
.method public writeDouble(D)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
invoke-interface {v0, p1, p2}, Ljava/io/DataOutput;->writeDouble(D)V
return-void
.end method
.method public writeFloat(F)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
invoke-interface {v0, p1}, Ljava/io/DataOutput;->writeFloat(F)V
return-void
.end method
.method public writeInt(I)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
and-int/lit16 v1, p1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 2
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
shr-int/lit8 v1, p1, 0x8
and-int/lit16 v1, v1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 3
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
shr-int/lit8 v1, p1, 0x10
and-int/lit16 v1, v1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 4
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
shr-int/lit8 p1, p1, 0x18
and-int/lit16 p1, p1, 0xff
invoke-interface {v0, p1}, Ljava/io/DataOutput;->writeByte(I)V
return-void
.end method
.method public writeLong(J)V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
long-to-int v1, p1
and-int/lit16 v1, v1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 2
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
const/16 v1, 0x8
shr-long v1, p1, v1
long-to-int v1, v1
and-int/lit16 v1, v1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 3
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
const/16 v1, 0x10
shr-long v1, p1, v1
long-to-int v1, v1
and-int/lit16 v1, v1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 4
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
const/16 v1, 0x18
shr-long v1, p1, v1
long-to-int v1, v1
and-int/lit16 v1, v1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 5
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
const/16 v1, 0x20
shr-long v1, p1, v1
long-to-int v1, v1
and-int/lit16 v1, v1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 6
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
const/16 v1, 0x28
shr-long v1, p1, v1
long-to-int v1, v1
and-int/lit16 v1, v1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 7
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
const/16 v1, 0x30
shr-long v1, p1, v1
long-to-int v1, v1
and-int/lit16 v1, v1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 8
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
const/16 v1, 0x38
shr-long/2addr p1, v1
long-to-int p1, p1
and-int/lit16 p1, p1, 0xff
invoke-interface {v0, p1}, Ljava/io/DataOutput;->writeByte(I)V
return-void
.end method
.method public writeShort(I)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
and-int/lit16 v1, p1, 0xff
invoke-interface {v0, v1}, Ljava/io/DataOutput;->writeByte(I)V
.line 2
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
shr-int/lit8 p1, p1, 0x8
and-int/lit16 p1, p1, 0xff
invoke-interface {v0, p1}, Ljava/io/DataOutput;->writeByte(I)V
return-void
.end method
.method public writeUTF(Ljava/lang/String;)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Lorg/kc7bfi/jflac/util/LittleEndianDataOutput;->out:Ljava/io/DataOutput;
invoke-interface {v0, p1}, Ljava/io/DataOutput;->writeUTF(Ljava/lang/String;)V
return-void
.end method