Fix blank page issue caused by too strict correction on bpc
authorJun Fang <jun_fang@foxitsoftware.com>
Tue, 29 Sep 2015 02:24:54 +0000 (10:24 +0800)
committerJun Fang <jun_fang@foxitsoftware.com>
Tue, 29 Sep 2015 02:24:54 +0000 (10:24 +0800)
commit3500e90e9e42fa84dd6f07da16cfcf197ec98283
treed319a6a35e2a92793169bd0d3fb86a2e2d283a7a
parent39cd934a4705f69c30e1bbf13eab347f66999020
Fix blank page issue caused by too strict correction on bpc

For bit per component (bpc), PDF spec mentions that a RunLengthDecode or DCTDecode filter shall always deliver 8-bit samples. However, some PDF files don't follow this rule. We can find that filter is RunLengthDecode but bpc is 1 in the provided test file. In this case, pdfium will correct bpc to 8 but the actual bpc is 1. It causes a failure because the data is much more than the expected. To handle this case, pdfium doesn't correct bpc to 8 when the original bpc is 1.

BUG=512557
R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1328213002 .
core/src/fpdfapi/fpdf_render/fpdf_render_loadimage.cpp
testing/resources/pixel/bug_512557.in [new file with mode: 0644]
testing/resources/pixel/bug_512557_expected.pdf.0.png [new file with mode: 0644]