Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "../../fx_zlib.h" | 7 #include "../../fx_zlib.h" |
| 8 #include "../../../include/fxcodec/fx_codec.h" | 8 #include "../../../include/fxcodec/fx_codec.h" |
| 9 #include "codec_int.h" | 9 #include "codec_int.h" |
| 10 extern "C" | 10 extern "C" |
| (...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 517 FX_LPBYTE scan_line = data_buf + row * row_size; | 517 FX_LPBYTE scan_line = data_buf + row * row_size; |
| 518 if ((row + 1) * row_size > (int)data_size) { | 518 if ((row + 1) * row_size > (int)data_size) { |
| 519 row_size = last_row_size; | 519 row_size = last_row_size; |
| 520 } | 520 } |
| 521 TIFF_PredictorEncodeLine(scan_line, row_size, BitsPerComponent, Colors, Columns); | 521 TIFF_PredictorEncodeLine(scan_line, row_size, BitsPerComponent, Colors, Columns); |
| 522 } | 522 } |
| 523 } | 523 } |
| 524 static void TIFF_PredictLine(FX_LPBYTE dest_buf, int row_size, int BitsPerCompon ent, int Colors, int Columns) | 524 static void TIFF_PredictLine(FX_LPBYTE dest_buf, int row_size, int BitsPerCompon ent, int Colors, int Columns) |
| 525 { | 525 { |
| 526 if (BitsPerComponent == 1) { | 526 if (BitsPerComponent == 1) { |
| 527 int row_bits = BitsPerComponent * Colors * Columns; | 527 int row_bits = BitsPerComponent * Colors * Columns; |
|
Tom Sepez
2014/08/27 21:25:45
nit: the multiply by 1 seems unnecessary.
Bo Xu
2014/08/27 22:13:18
Maybe we should keep it here to make the meaning m
| |
| 528 for(int i = 1; i < row_bits; i ++) { | 528 for(int i = 1; i < row_bits; i ++) { |
| 529 int col = i % 8; | 529 int col = i % 8; |
| 530 int index = i / 8; | 530 int index = i / 8; |
| 531 if (index > row_size) { | |
|
Tom Sepez
2014/08/27 21:20:35
Don't you want >= ?
Tom Sepez
2014/08/27 21:25:45
Maybe we prune row_bits outside the loop to avoid
Bo Xu
2014/08/27 22:13:18
Good idea.
| |
| 532 break; | |
| 533 } | |
| 531 int index_pre = (col == 0) ? (index - 1) : index; | 534 int index_pre = (col == 0) ? (index - 1) : index; |
|
Tom Sepez
2014/08/27 21:25:45
nit: maybe these should move outsize the loop, st
Bo Xu
2014/08/27 22:13:18
Done.
| |
| 532 int col_pre = (col == 0) ? 8 : col; | 535 int col_pre = (col == 0) ? 8 : col; |
|
Tom Sepez
2014/08/27 21:35:33
8 seems like a weird value to assign to a variable
| |
| 533 if( ((dest_buf[index] >> (7 - col)) & 1) ^ ((dest_buf[index_pre] >> (8 - col_pre)) & 1) ) { | 536 if( ((dest_buf[index] >> (7 - col)) & 1) ^ ((dest_buf[index_pre] >> (8 - col_pre)) & 1) ) { |
|
Tom Sepez
2014/08/27 21:35:33
This would need to change if you followed the abov
| |
| 534 dest_buf[index] |= 1 << (7 - col); | 537 dest_buf[index] |= 1 << (7 - col); |
| 535 } else { | 538 } else { |
| 536 dest_buf[index] &= ~(1 << (7 - col)); | 539 dest_buf[index] &= ~(1 << (7 - col)); |
| 537 } | 540 } |
| 538 } | 541 } |
| 539 return; | 542 return; |
| 540 } | 543 } |
| 541 int BytesPerPixel = BitsPerComponent * Colors / 8; | 544 int BytesPerPixel = BitsPerComponent * Colors / 8; |
| 542 if (BitsPerComponent == 16) { | 545 if (BitsPerComponent == 16) { |
| 543 for (int i = BytesPerPixel; i < row_size; i += 2) { | 546 for (int i = BytesPerPixel; i < row_size; i += 2) { |
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 935 dest_size = src_size + src_size / 1000 + 12; | 938 dest_size = src_size + src_size / 1000 + 12; |
| 936 dest_buf = FX_Alloc( FX_BYTE, dest_size); | 939 dest_buf = FX_Alloc( FX_BYTE, dest_size); |
| 937 if (dest_buf == NULL) { | 940 if (dest_buf == NULL) { |
| 938 return FALSE; | 941 return FALSE; |
| 939 } | 942 } |
| 940 unsigned long temp_size = dest_size; | 943 unsigned long temp_size = dest_size; |
| 941 FPDFAPI_FlateCompress(dest_buf, &temp_size, src_buf, src_size); | 944 FPDFAPI_FlateCompress(dest_buf, &temp_size, src_buf, src_size); |
| 942 dest_size = (FX_DWORD)temp_size; | 945 dest_size = (FX_DWORD)temp_size; |
| 943 return TRUE; | 946 return TRUE; |
| 944 } | 947 } |
| OLD | NEW |