FragmentedMp4Builder$1.smali
.class Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder$1;
.super Ljava/lang/Object;
.source "FragmentedMp4Builder.java"
# interfaces
.implements Ljava/util/Comparator;
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder;->sortTracksInSequence(Ljava/util/List;ILjava/util/Map;)Ljava/util/List;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Object;",
"Ljava/util/Comparator<",
"Lcom/googlecode/mp4parser/authoring/Track;",
">;"
}
.end annotation
# instance fields
.field final synthetic this$0:Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder;
.field private final synthetic val$cycle:I
.field private final synthetic val$intersectionMap:Ljava/util/Map;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>(Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder;Ljava/util/Map;I)V
.registers 4
.line 1
iput-object p1, p0, Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder$1;->this$0:Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder;
iput-object p2, p0, Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder$1;->val$intersectionMap:Ljava/util/Map;
iput p3, p0, Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder$1;->val$cycle:I
.line 81
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public compare(Lcom/googlecode/mp4parser/authoring/Track;Lcom/googlecode/mp4parser/authoring/Track;)I
.registers 21
.param p1, "o1" # Lcom/googlecode/mp4parser/authoring/Track;
.param p2, "o2" # Lcom/googlecode/mp4parser/authoring/Track;
.line 83
move-object/from16 v0, p0
iget-object v1, v0, Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder$1;->val$intersectionMap:Ljava/util/Map;
move-object/from16 v2, p1
invoke-interface {v1, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, [J
iget v3, v0, Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder$1;->val$cycle:I
aget-wide v3, v1, v3
.line 85
.local v3, "startSample1":J
iget-object v1, v0, Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder$1;->val$intersectionMap:Ljava/util/Map;
move-object/from16 v5, p2
invoke-interface {v1, v5}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, [J
iget v6, v0, Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder$1;->val$cycle:I
aget-wide v6, v1, v6
.line 89
.local v6, "startSample2":J
invoke-interface/range {p1 .. p1}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDurations()[J
move-result-object v1
.line 90
.local v1, "decTimes1":[J
invoke-interface/range {p2 .. p2}, Lcom/googlecode/mp4parser/authoring/Track;->getSampleDurations()[J
move-result-object v8
.line 91
.local v8, "decTimes2":[J
const-wide/16 v9, 0x0
.line 92
.local v9, "startTime1":J
const-wide/16 v11, 0x0
.line 94
.local v11, "startTime2":J
const/4 v13, 0x1
.local v13, "i":I
:goto_2b
int-to-long v14, v13
cmp-long v16, v14, v3
if-ltz v16, :cond_71
.line 97
.end local v13 # "i":I
const/4 v13, 0x1
.restart local v13 # "i":I
:goto_31
int-to-long v14, v13
cmp-long v16, v14, v6
if-ltz v16, :cond_61
.line 102
.end local v13 # "i":I
long-to-double v13, v9
invoke-interface/range {p1 .. p1}, Lcom/googlecode/mp4parser/authoring/Track;->getTrackMetaData()Lcom/googlecode/mp4parser/authoring/TrackMetaData;
move-result-object v15
move-wide/from16 v16, v3
.end local v3 # "startSample1":J
.local v16, "startSample1":J
invoke-virtual {v15}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;->getTimescale()J
move-result-wide v2
long-to-double v2, v2
invoke-static {v13, v14}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v13, v2
long-to-double v2, v11
invoke-interface/range {p2 .. p2}, Lcom/googlecode/mp4parser/authoring/Track;->getTrackMetaData()Lcom/googlecode/mp4parser/authoring/TrackMetaData;
move-result-object v4
invoke-virtual {v4}, Lcom/googlecode/mp4parser/authoring/TrackMetaData;->getTimescale()J
move-result-wide v4
long-to-double v4, v4
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v2, v4
sub-double/2addr v13, v2
const-wide/high16 v2, 0x4059000000000000L # 100.0
mul-double v13, v13, v2
double-to-int v2, v13
return v2
.line 98
.end local v16 # "startSample1":J
.restart local v3 # "startSample1":J
.restart local v13 # "i":I
:cond_61
move-wide/from16 v16, v3
.end local v3 # "startSample1":J
.restart local v16 # "startSample1":J
add-int/lit8 v2, v13, -0x1
aget-wide v2, v8, v2
add-long/2addr v11, v2
.line 97
add-int/lit8 v13, v13, 0x1
move-object/from16 v2, p1
move-object/from16 v5, p2
move-wide/from16 v3, v16
goto :goto_31
.line 95
.end local v16 # "startSample1":J
.restart local v3 # "startSample1":J
:cond_71
move-wide/from16 v16, v3
.end local v3 # "startSample1":J
.restart local v16 # "startSample1":J
add-int/lit8 v2, v13, -0x1
aget-wide v2, v1, v2
add-long/2addr v9, v2
.line 94
add-int/lit8 v13, v13, 0x1
move-object/from16 v2, p1
move-object/from16 v5, p2
move-wide/from16 v3, v16
goto :goto_2b
.end method
.method public bridge synthetic compare(Ljava/lang/Object;Ljava/lang/Object;)I
.registers 3
.line 1
check-cast p1, Lcom/googlecode/mp4parser/authoring/Track;
check-cast p2, Lcom/googlecode/mp4parser/authoring/Track;
invoke-virtual {p0, p1, p2}, Lcom/googlecode/mp4parser/authoring/builder/FragmentedMp4Builder$1;->compare(Lcom/googlecode/mp4parser/authoring/Track;Lcom/googlecode/mp4parser/authoring/Track;)I
move-result p1
return p1
.end method