DecodeProducer$NetworkImagesProgressiveDecoder.smali
.class Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;
.super Lcom/facebook/imagepipeline/producers/DecodeProducer$ProgressiveDecoder;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/facebook/imagepipeline/producers/DecodeProducer;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = "NetworkImagesProgressiveDecoder"
.end annotation
# instance fields
.field private final mGifCoverParser:Lcom/facebook/imagepipeline/decoder/GifCoverParser;
.field private mLastScheduledScanNumber:I
.field private final mProgressiveJpegConfig:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegConfig;
.field private final mProgressiveJpegParser:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;
.field private final mWebPCoverParser:Lcom/facebook/imagepipeline/decoder/WebPCoverParser;
.field final synthetic this$0:Lcom/facebook/imagepipeline/producers/DecodeProducer;
# direct methods
.method public constructor <init>(Lcom/facebook/imagepipeline/producers/DecodeProducer;Lcom/facebook/imagepipeline/producers/Consumer;Lcom/facebook/imagepipeline/producers/ProducerContext;Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;Lcom/facebook/imagepipeline/decoder/WebPCoverParser;Lcom/facebook/imagepipeline/decoder/GifCoverParser;Lcom/facebook/imagepipeline/decoder/ProgressiveJpegConfig;ZI)V
.registers 16
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/facebook/imagepipeline/producers/Consumer<",
"Lcom/facebook/common/references/CloseableReference<",
"Lcom/facebook/imagepipeline/image/CloseableImage;",
">;>;",
"Lcom/facebook/imagepipeline/producers/ProducerContext;",
"Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;",
"Lcom/facebook/imagepipeline/decoder/WebPCoverParser;",
"Lcom/facebook/imagepipeline/decoder/GifCoverParser;",
"Lcom/facebook/imagepipeline/decoder/ProgressiveJpegConfig;",
"ZI)V"
}
.end annotation
.line 498
iput-object p1, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->this$0:Lcom/facebook/imagepipeline/producers/DecodeProducer;
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move v4, p8
move v5, p9
.line 499
invoke-direct/range {v0 .. v5}, Lcom/facebook/imagepipeline/producers/DecodeProducer$ProgressiveDecoder;-><init>(Lcom/facebook/imagepipeline/producers/DecodeProducer;Lcom/facebook/imagepipeline/producers/Consumer;Lcom/facebook/imagepipeline/producers/ProducerContext;ZI)V
.line 500
invoke-static {p4}, Lcom/facebook/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;
iput-object p1, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mProgressiveJpegParser:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;
.line 501
invoke-static {p7}, Lcom/facebook/common/internal/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/facebook/imagepipeline/decoder/ProgressiveJpegConfig;
iput-object p1, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mProgressiveJpegConfig:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegConfig;
.line 502
iput-object p5, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mWebPCoverParser:Lcom/facebook/imagepipeline/decoder/WebPCoverParser;
.line 503
iput-object p6, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mGifCoverParser:Lcom/facebook/imagepipeline/decoder/GifCoverParser;
const/4 p1, 0x0
.line 504
iput p1, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mLastScheduledScanNumber:I
return-void
.end method
.method private updateDecodeGif(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
.registers 3
.line 556
iget-object v0, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mGifCoverParser:Lcom/facebook/imagepipeline/decoder/GifCoverParser;
invoke-virtual {v0, p1}, Lcom/facebook/imagepipeline/decoder/GifCoverParser;->parseMoreData(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
move-result p1
return p1
.end method
.method private updateDecodeJobAWEBP(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
.registers 3
.line 552
iget-object v0, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mWebPCoverParser:Lcom/facebook/imagepipeline/decoder/WebPCoverParser;
invoke-virtual {v0, p1}, Lcom/facebook/imagepipeline/decoder/WebPCoverParser;->parseMoreData(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
move-result p1
return p1
.end method
.method private updateDecodeJobByImageFormat(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
.registers 4
.line 521
invoke-virtual {p1}, Lcom/facebook/imagepipeline/image/EncodedImage;->getImageFormat()Lcom/facebook/imageformat/ImageFormat;
move-result-object v0
.line 522
sget-object v1, Lcom/facebook/imageformat/DefaultImageFormats;->JPEG:Lcom/facebook/imageformat/ImageFormat;
if-ne v0, v1, :cond_d
.line 523
invoke-direct {p0, p1}, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->updateDecodeJobJPEG(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
move-result p1
return p1
.line 524
:cond_d
sget-object v1, Lcom/facebook/imageformat/DefaultImageFormats;->WEBP_ANIMATED:Lcom/facebook/imageformat/ImageFormat;
if-ne v0, v1, :cond_16
.line 525
invoke-direct {p0, p1}, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->updateDecodeJobAWEBP(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
move-result p1
return p1
.line 526
:cond_16
sget-object v1, Lcom/facebook/imageformat/DefaultImageFormats;->GIF:Lcom/facebook/imageformat/ImageFormat;
if-ne v0, v1, :cond_1f
.line 527
invoke-direct {p0, p1}, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->updateDecodeGif(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
move-result p1
return p1
:cond_1f
const/4 p1, 0x0
return p1
.end method
.method private updateDecodeJobJPEG(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
.registers 5
.line 533
iget-object v0, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mProgressiveJpegParser:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;
invoke-virtual {v0, p1}, Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;->parseMoreData(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
move-result p1
const/4 v0, 0x0
if-nez p1, :cond_a
return v0
.line 536
:cond_a
iget-object p1, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mProgressiveJpegParser:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;
invoke-virtual {p1}, Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;->getBestScanNumber()I
move-result p1
.line 537
iget v1, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mLastScheduledScanNumber:I
if-gt p1, v1, :cond_15
return v0
.line 541
:cond_15
iget-object v2, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mProgressiveJpegConfig:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegConfig;
invoke-interface {v2, v1}, Lcom/facebook/imagepipeline/decoder/ProgressiveJpegConfig;->getNextScanNumberToDecode(I)I
move-result v1
if-ge p1, v1, :cond_26
iget-object v1, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mProgressiveJpegParser:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;
.line 542
invoke-virtual {v1}, Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;->isEndMarkerRead()Z
move-result v1
if-nez v1, :cond_26
return v0
.line 547
:cond_26
iput p1, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mLastScheduledScanNumber:I
const/4 p1, 0x1
return p1
.end method
# virtual methods
.method protected getIntermediateImageEndOffset(Lcom/facebook/imagepipeline/image/EncodedImage;)I
.registers 2
.line 561
iget-object p1, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mProgressiveJpegParser:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;
invoke-virtual {p1}, Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;->getBestScanEndOffset()I
move-result p1
return p1
.end method
.method protected getQualityInfo()Lcom/facebook/imagepipeline/image/QualityInfo;
.registers 3
.line 566
iget-object v0, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mProgressiveJpegConfig:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegConfig;
iget-object v1, p0, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->mProgressiveJpegParser:Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;
invoke-virtual {v1}, Lcom/facebook/imagepipeline/decoder/ProgressiveJpegParser;->getBestScanNumber()I
move-result v1
invoke-interface {v0, v1}, Lcom/facebook/imagepipeline/decoder/ProgressiveJpegConfig;->getQualityInfo(I)Lcom/facebook/imagepipeline/image/QualityInfo;
move-result-object v0
return-object v0
.end method
.method protected declared-synchronized updateDecodeJob(Lcom/facebook/imagepipeline/image/EncodedImage;I)Z
.registers 5
monitor-enter p0
.line 509
:try_start_1
invoke-super {p0, p1, p2}, Lcom/facebook/imagepipeline/producers/DecodeProducer$ProgressiveDecoder;->updateDecodeJob(Lcom/facebook/imagepipeline/image/EncodedImage;I)Z
move-result v0
.line 510
invoke-static {p2}, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->isNotLast(I)Z
move-result v1
if-nez v1, :cond_13
const/16 v1, 0x8
invoke-static {p2, v1}, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->statusHasFlag(II)Z
move-result v1
if-eqz v1, :cond_29
:cond_13
const/4 v1, 0x4
.line 511
invoke-static {p2, v1}, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->statusHasFlag(II)Z
move-result p2
if-nez p2, :cond_29
.line 512
invoke-static {p1}, Lcom/facebook/imagepipeline/image/EncodedImage;->isValid(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
move-result p2
if-eqz p2, :cond_29
.line 513
invoke-direct {p0, p1}, Lcom/facebook/imagepipeline/producers/DecodeProducer$NetworkImagesProgressiveDecoder;->updateDecodeJobByImageFormat(Lcom/facebook/imagepipeline/image/EncodedImage;)Z
move-result p1
:try_end_24
.catchall {:try_start_1 .. :try_end_24} :catchall_2b
if-nez p1, :cond_29
const/4 p1, 0x0
.line 514
monitor-exit p0
return p1
.line 517
:cond_29
monitor-exit p0
return v0
:catchall_2b
move-exception p1
monitor-exit p0
throw p1
.end method