Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: core/src/fxcodec/codec/fx_codec_jbig.cpp

Issue 1265503005: clang-format all pdfium code. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: sigh Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "../../../include/fxcodec/fx_codec.h" 7 #include "../../../include/fxcodec/fx_codec.h"
8 #include "codec_int.h" 8 #include "codec_int.h"
9 9
10 CCodec_Jbig2Context::CCodec_Jbig2Context() 10 CCodec_Jbig2Context::CCodec_Jbig2Context() {
11 { 11 FXSYS_memset(this, 0, sizeof(CCodec_Jbig2Context));
12 FXSYS_memset(this, 0, sizeof(CCodec_Jbig2Context)); 12 }
13 } 13 CCodec_Jbig2Module::~CCodec_Jbig2Module() {}
14 CCodec_Jbig2Module::~CCodec_Jbig2Module() 14 void* CCodec_Jbig2Module::CreateJbig2Context() {
15 { 15 return new CCodec_Jbig2Context();
16 } 16 }
17 void* CCodec_Jbig2Module::CreateJbig2Context() 17 void CCodec_Jbig2Module::DestroyJbig2Context(void* pJbig2Content) {
18 { 18 if (pJbig2Content) {
19 return new CCodec_Jbig2Context(); 19 CJBig2_Context::DestroyContext(
20 } 20 ((CCodec_Jbig2Context*)pJbig2Content)->m_pContext);
21 void CCodec_Jbig2Module::DestroyJbig2Context(void* pJbig2Content) 21 delete (CCodec_Jbig2Context*)pJbig2Content;
22 { 22 }
23 if(pJbig2Content) { 23 pJbig2Content = NULL;
24 CJBig2_Context::DestroyContext(((CCodec_Jbig2Context*)pJbig2Content)->m_ pContext); 24 }
25 delete (CCodec_Jbig2Context*)pJbig2Content; 25 FX_BOOL CCodec_Jbig2Module::Decode(FX_DWORD width,
26 } 26 FX_DWORD height,
27 pJbig2Content = NULL; 27 const uint8_t* src_buf,
28 } 28 FX_DWORD src_size,
29 FX_BOOL CCodec_Jbig2Module::Decode(FX_DWORD width, FX_DWORD height, const uint8_ t* src_buf, FX_DWORD src_size, 29 const uint8_t* global_data,
30 const uint8_t* global_data, FX_DWORD global_s ize, uint8_t* dest_buf, FX_DWORD dest_pitch) 30 FX_DWORD global_size,
31 { 31 uint8_t* dest_buf,
32 FXSYS_memset(dest_buf, 0, height * dest_pitch); 32 FX_DWORD dest_pitch) {
33 CJBig2_Context* pContext = CJBig2_Context::CreateContext(&m_Module, 33 FXSYS_memset(dest_buf, 0, height * dest_pitch);
34 (uint8_t*)global_data, global_size, (uint8_t*)src _buf, src_size, JBIG2_EMBED_STREAM, &m_SymbolDictCache); 34 CJBig2_Context* pContext = CJBig2_Context::CreateContext(
35 if (pContext == NULL) { 35 &m_Module, (uint8_t*)global_data, global_size, (uint8_t*)src_buf,
36 return FALSE; 36 src_size, JBIG2_EMBED_STREAM, &m_SymbolDictCache);
37 } 37 if (pContext == NULL) {
38 int ret = pContext->getFirstPage(dest_buf, width, height, dest_pitch, NULL); 38 return FALSE;
39 CJBig2_Context::DestroyContext(pContext); 39 }
40 int ret = pContext->getFirstPage(dest_buf, width, height, dest_pitch, NULL);
41 CJBig2_Context::DestroyContext(pContext);
42 if (ret != JBIG2_SUCCESS) {
43 return FALSE;
44 }
45 int dword_size = height * dest_pitch / 4;
46 FX_DWORD* dword_buf = (FX_DWORD*)dest_buf;
47 for (int i = 0; i < dword_size; i++) {
48 dword_buf[i] = ~dword_buf[i];
49 }
50 return TRUE;
51 }
52 FX_BOOL CCodec_Jbig2Module::Decode(IFX_FileRead* file_ptr,
53 FX_DWORD& width,
54 FX_DWORD& height,
55 FX_DWORD& pitch,
56 uint8_t*& dest_buf) {
57 CJBig2_Context* pContext = NULL;
58 CJBig2_Image* dest_image = NULL;
59 FX_DWORD src_size = (FX_DWORD)file_ptr->GetSize();
60 uint8_t* src_buf = FX_Alloc(uint8_t, src_size);
61 int ret = 0;
62 if (!file_ptr->ReadBlock(src_buf, 0, src_size)) {
63 goto failed;
64 }
65 pContext =
66 CJBig2_Context::CreateContext(&m_Module, NULL, 0, src_buf, src_size,
67 JBIG2_FILE_STREAM, &m_SymbolDictCache);
68 if (pContext == NULL) {
69 goto failed;
70 }
71 ret = pContext->getFirstPage(&dest_image, NULL);
72 CJBig2_Context::DestroyContext(pContext);
73 if (ret != JBIG2_SUCCESS) {
74 goto failed;
75 }
76 width = (FX_DWORD)dest_image->m_nWidth;
77 height = (FX_DWORD)dest_image->m_nHeight;
78 pitch = (FX_DWORD)dest_image->m_nStride;
79 dest_buf = dest_image->m_pData;
80 dest_image->m_bNeedFree = FALSE;
81 delete dest_image;
82 FX_Free(src_buf);
83 return TRUE;
84 failed:
85 if (src_buf) {
86 FX_Free(src_buf);
87 }
88 return FALSE;
89 }
90 FXCODEC_STATUS CCodec_Jbig2Module::StartDecode(void* pJbig2Context,
91 FX_DWORD width,
92 FX_DWORD height,
93 const uint8_t* src_buf,
94 FX_DWORD src_size,
95 const uint8_t* global_data,
96 FX_DWORD global_size,
97 uint8_t* dest_buf,
98 FX_DWORD dest_pitch,
99 IFX_Pause* pPause) {
100 if (!pJbig2Context) {
101 return FXCODEC_STATUS_ERR_PARAMS;
102 }
103 CCodec_Jbig2Context* m_pJbig2Context = (CCodec_Jbig2Context*)pJbig2Context;
104 m_pJbig2Context->m_width = width;
105 m_pJbig2Context->m_height = height;
106 m_pJbig2Context->m_src_buf = (unsigned char*)src_buf;
107 m_pJbig2Context->m_src_size = src_size;
108 m_pJbig2Context->m_global_data = global_data;
109 m_pJbig2Context->m_global_size = global_size;
110 m_pJbig2Context->m_dest_buf = dest_buf;
111 m_pJbig2Context->m_dest_pitch = dest_pitch;
112 m_pJbig2Context->m_pPause = pPause;
113 m_pJbig2Context->m_bFileReader = FALSE;
114 FXSYS_memset(dest_buf, 0, height * dest_pitch);
115 m_pJbig2Context->m_pContext = CJBig2_Context::CreateContext(
116 &m_Module, (uint8_t*)global_data, global_size, (uint8_t*)src_buf,
117 src_size, JBIG2_EMBED_STREAM, &m_SymbolDictCache, pPause);
118 if (!m_pJbig2Context->m_pContext) {
119 return FXCODEC_STATUS_ERROR;
120 }
121 int ret = m_pJbig2Context->m_pContext->getFirstPage(dest_buf, width, height,
122 dest_pitch, pPause);
123 if (m_pJbig2Context->m_pContext->GetProcessiveStatus() ==
124 FXCODEC_STATUS_DECODE_FINISH) {
125 CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
126 m_pJbig2Context->m_pContext = NULL;
40 if (ret != JBIG2_SUCCESS) { 127 if (ret != JBIG2_SUCCESS) {
41 return FALSE; 128 return FXCODEC_STATUS_ERROR;
42 } 129 }
43 int dword_size = height * dest_pitch / 4; 130 int dword_size = height * dest_pitch / 4;
44 FX_DWORD* dword_buf = (FX_DWORD*)dest_buf; 131 FX_DWORD* dword_buf = (FX_DWORD*)dest_buf;
45 for (int i = 0; i < dword_size; i ++) { 132 for (int i = 0; i < dword_size; i++) {
46 dword_buf[i] = ~dword_buf[i]; 133 dword_buf[i] = ~dword_buf[i];
47 } 134 }
48 return TRUE; 135 return FXCODEC_STATUS_DECODE_FINISH;
49 } 136 }
50 FX_BOOL CCodec_Jbig2Module::Decode(IFX_FileRead* file_ptr, 137 return m_pJbig2Context->m_pContext->GetProcessiveStatus();
51 FX_DWORD& width, FX_DWORD& height, FX_DWORD& pitch, uint8_t*& dest_buf) 138 }
52 { 139 FXCODEC_STATUS CCodec_Jbig2Module::StartDecode(void* pJbig2Context,
53 CJBig2_Context* pContext = NULL; 140 IFX_FileRead* file_ptr,
54 CJBig2_Image* dest_image = NULL; 141 FX_DWORD& width,
55 FX_DWORD src_size = (FX_DWORD)file_ptr->GetSize(); 142 FX_DWORD& height,
56 uint8_t* src_buf = FX_Alloc(uint8_t, src_size); 143 FX_DWORD& pitch,
57 int ret = 0; 144 uint8_t*& dest_buf,
58 if(!file_ptr->ReadBlock(src_buf, 0, src_size)) { 145 IFX_Pause* pPause) {
59 goto failed; 146 if (!pJbig2Context) {
60 } 147 return FXCODEC_STATUS_ERR_PARAMS;
61 pContext = CJBig2_Context::CreateContext(&m_Module, NULL, 0, src_buf, src_si ze, JBIG2_FILE_STREAM, &m_SymbolDictCache); 148 }
62 if(pContext == NULL) { 149 CCodec_Jbig2Context* m_pJbig2Context = (CCodec_Jbig2Context*)pJbig2Context;
63 goto failed; 150 m_pJbig2Context->m_bFileReader = TRUE;
64 } 151 m_pJbig2Context->m_dest_image = NULL;
65 ret = pContext->getFirstPage(&dest_image, NULL); 152 m_pJbig2Context->m_src_size = (FX_DWORD)file_ptr->GetSize();
66 CJBig2_Context::DestroyContext(pContext); 153 m_pJbig2Context->m_src_buf = FX_Alloc(uint8_t, m_pJbig2Context->m_src_size);
67 if (ret != JBIG2_SUCCESS) { 154 int ret = 0;
68 goto failed; 155 if (!file_ptr->ReadBlock((void*)m_pJbig2Context->m_src_buf, 0,
69 } 156 m_pJbig2Context->m_src_size)) {
70 width = (FX_DWORD)dest_image->m_nWidth; 157 goto failed;
71 height = (FX_DWORD)dest_image->m_nHeight; 158 }
72 pitch = (FX_DWORD)dest_image->m_nStride; 159 m_pJbig2Context->m_pContext = CJBig2_Context::CreateContext(
73 dest_buf = dest_image->m_pData; 160 &m_Module, NULL, 0, m_pJbig2Context->m_src_buf,
74 dest_image->m_bNeedFree = FALSE; 161 m_pJbig2Context->m_src_size, JBIG2_FILE_STREAM, &m_SymbolDictCache,
75 delete dest_image; 162 pPause);
76 FX_Free(src_buf); 163 if (m_pJbig2Context->m_pContext == NULL) {
77 return TRUE; 164 goto failed;
78 failed: 165 }
79 if(src_buf) { 166 ret = m_pJbig2Context->m_pContext->getFirstPage(
80 FX_Free(src_buf); 167 &m_pJbig2Context->m_dest_image, pPause);
81 } 168 if (m_pJbig2Context->m_pContext->GetProcessiveStatus() ==
82 return FALSE; 169 FXCODEC_STATUS_DECODE_TOBECONTINUE) {
83 }
84 FXCODEC_STATUS CCodec_Jbig2Module::StartDecode(void* pJbig2Context, FX_DWORD wid th, FX_DWORD height, const uint8_t* src_buf, FX_DWORD src_size,
85 const uint8_t* global_data, FX_DWORD global_size, uint8_t* dest_buf, FX_ DWORD dest_pitch, IFX_Pause* pPause)
86 {
87 if(!pJbig2Context) {
88 return FXCODEC_STATUS_ERR_PARAMS;
89 }
90 CCodec_Jbig2Context* m_pJbig2Context = (CCodec_Jbig2Context*)pJbig2Context;
91 m_pJbig2Context->m_width = width;
92 m_pJbig2Context->m_height = height;
93 m_pJbig2Context->m_src_buf = (unsigned char *)src_buf;
94 m_pJbig2Context->m_src_size = src_size;
95 m_pJbig2Context->m_global_data = global_data;
96 m_pJbig2Context->m_global_size = global_size;
97 m_pJbig2Context->m_dest_buf = dest_buf;
98 m_pJbig2Context->m_dest_pitch = dest_pitch;
99 m_pJbig2Context->m_pPause = pPause;
100 m_pJbig2Context->m_bFileReader = FALSE;
101 FXSYS_memset(dest_buf, 0, height * dest_pitch);
102 m_pJbig2Context->m_pContext = CJBig2_Context::CreateContext(&m_Module,
103 (uint8_t*)global_data, global_size, (uint8_t*) src_buf, src_size, JBIG2_EMBED_STREAM, &m_SymbolDictCache, pPause);
104 if(!m_pJbig2Context->m_pContext) {
105 return FXCODEC_STATUS_ERROR;
106 }
107 int ret = m_pJbig2Context->m_pContext->getFirstPage(dest_buf, width, height, dest_pitch, pPause);
108 if(m_pJbig2Context->m_pContext->GetProcessiveStatus() == FXCODEC_STATUS_DECO DE_FINISH) {
109 CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
110 m_pJbig2Context->m_pContext = NULL;
111 if (ret != JBIG2_SUCCESS) {
112 return FXCODEC_STATUS_ERROR;
113 }
114 int dword_size = height * dest_pitch / 4;
115 FX_DWORD* dword_buf = (FX_DWORD*)dest_buf;
116 for (int i = 0; i < dword_size; i ++) {
117 dword_buf[i] = ~dword_buf[i];
118 }
119 return FXCODEC_STATUS_DECODE_FINISH;
120 }
121 return m_pJbig2Context->m_pContext->GetProcessiveStatus();
122 }
123 FXCODEC_STATUS CCodec_Jbig2Module::StartDecode(void* pJbig2Context, IFX_FileRead * file_ptr,
124 FX_DWORD& width, FX_DWORD& height, FX_DWORD& pitch, uint8_t*& dest_buf, IFX_Pause* pPause)
125 {
126 if(!pJbig2Context) {
127 return FXCODEC_STATUS_ERR_PARAMS;
128 }
129 CCodec_Jbig2Context* m_pJbig2Context = (CCodec_Jbig2Context*)pJbig2Context;
130 m_pJbig2Context->m_bFileReader = TRUE;
131 m_pJbig2Context->m_dest_image = NULL;
132 m_pJbig2Context->m_src_size = (FX_DWORD)file_ptr->GetSize();
133 m_pJbig2Context->m_src_buf = FX_Alloc(uint8_t, m_pJbig2Context->m_src_size);
134 int ret = 0;
135 if(!file_ptr->ReadBlock((void*)m_pJbig2Context->m_src_buf, 0, m_pJbig2Contex t->m_src_size)) {
136 goto failed;
137 }
138 m_pJbig2Context->m_pContext = CJBig2_Context::CreateContext(&m_Module, NULL, 0, m_pJbig2Context->m_src_buf, m_pJbig2Context->m_src_size, JBIG2_FILE_STREAM, &m_SymbolDictCache, pPause);
139 if(m_pJbig2Context->m_pContext == NULL) {
140 goto failed;
141 }
142 ret = m_pJbig2Context->m_pContext->getFirstPage(&m_pJbig2Context->m_dest_ima ge, pPause);
143 if(m_pJbig2Context->m_pContext->GetProcessiveStatus() == FXCODEC_STATUS_DECO DE_TOBECONTINUE) {
144 width = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nWidth;
145 height = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nHeight;
146 pitch = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nStride;
147 dest_buf = m_pJbig2Context->m_dest_image->m_pData;
148 m_pJbig2Context->m_dest_image->m_bNeedFree = FALSE;
149 return FXCODEC_STATUS_DECODE_TOBECONTINUE;
150 }
151 CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
152 m_pJbig2Context->m_pContext = NULL;
153 if (ret != JBIG2_SUCCESS) {
154 goto failed;
155 }
156 width = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nWidth; 170 width = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nWidth;
157 height = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nHeight; 171 height = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nHeight;
158 pitch = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nStride; 172 pitch = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nStride;
159 dest_buf = m_pJbig2Context->m_dest_image->m_pData; 173 dest_buf = m_pJbig2Context->m_dest_image->m_pData;
160 m_pJbig2Context->m_dest_image->m_bNeedFree = FALSE; 174 m_pJbig2Context->m_dest_image->m_bNeedFree = FALSE;
175 return FXCODEC_STATUS_DECODE_TOBECONTINUE;
176 }
177 CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
178 m_pJbig2Context->m_pContext = NULL;
179 if (ret != JBIG2_SUCCESS) {
180 goto failed;
181 }
182 width = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nWidth;
183 height = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nHeight;
184 pitch = (FX_DWORD)m_pJbig2Context->m_dest_image->m_nStride;
185 dest_buf = m_pJbig2Context->m_dest_image->m_pData;
186 m_pJbig2Context->m_dest_image->m_bNeedFree = FALSE;
187 delete m_pJbig2Context->m_dest_image;
188 FX_Free(m_pJbig2Context->m_src_buf);
189 return FXCODEC_STATUS_DECODE_FINISH;
190 failed:
191 if (m_pJbig2Context->m_src_buf) {
192 FX_Free(m_pJbig2Context->m_src_buf);
193 }
194 m_pJbig2Context->m_src_buf = NULL;
195 return FXCODEC_STATUS_ERROR;
196 }
197 FXCODEC_STATUS CCodec_Jbig2Module::ContinueDecode(void* pJbig2Context,
198 IFX_Pause* pPause) {
199 CCodec_Jbig2Context* m_pJbig2Context = (CCodec_Jbig2Context*)pJbig2Context;
200 int ret = m_pJbig2Context->m_pContext->Continue(pPause);
201 if (m_pJbig2Context->m_pContext->GetProcessiveStatus() !=
202 FXCODEC_STATUS_DECODE_FINISH) {
203 return m_pJbig2Context->m_pContext->GetProcessiveStatus();
204 }
205 if (m_pJbig2Context->m_bFileReader) {
206 CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
207 m_pJbig2Context->m_pContext = NULL;
208 if (ret != JBIG2_SUCCESS) {
209 if (m_pJbig2Context->m_src_buf) {
210 FX_Free(m_pJbig2Context->m_src_buf);
211 }
212 m_pJbig2Context->m_src_buf = NULL;
213 return FXCODEC_STATUS_ERROR;
214 }
161 delete m_pJbig2Context->m_dest_image; 215 delete m_pJbig2Context->m_dest_image;
162 FX_Free(m_pJbig2Context->m_src_buf); 216 FX_Free(m_pJbig2Context->m_src_buf);
163 return FXCODEC_STATUS_DECODE_FINISH; 217 return FXCODEC_STATUS_DECODE_FINISH;
164 failed: 218 }
165 if(m_pJbig2Context->m_src_buf) { 219 CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
166 FX_Free(m_pJbig2Context->m_src_buf); 220 m_pJbig2Context->m_pContext = NULL;
167 } 221 if (ret != JBIG2_SUCCESS) {
168 m_pJbig2Context->m_src_buf = NULL;
169 return FXCODEC_STATUS_ERROR; 222 return FXCODEC_STATUS_ERROR;
170 } 223 }
171 FXCODEC_STATUS CCodec_Jbig2Module::ContinueDecode(void* pJbig2Context, IFX_Pause * pPause) 224 int dword_size =
172 { 225 m_pJbig2Context->m_height * m_pJbig2Context->m_dest_pitch / 4;
173 CCodec_Jbig2Context* m_pJbig2Context = (CCodec_Jbig2Context*)pJbig2Context; 226 FX_DWORD* dword_buf = (FX_DWORD*)m_pJbig2Context->m_dest_buf;
174 int ret = m_pJbig2Context->m_pContext->Continue(pPause); 227 for (int i = 0; i < dword_size; i++) {
175 if (m_pJbig2Context->m_pContext->GetProcessiveStatus() != FXCODEC_STATUS_DEC ODE_FINISH) { 228 dword_buf[i] = ~dword_buf[i];
176 return m_pJbig2Context->m_pContext->GetProcessiveStatus(); 229 }
177 } 230 return FXCODEC_STATUS_DECODE_FINISH;
178 if (m_pJbig2Context->m_bFileReader) { 231 }
179 CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
180 m_pJbig2Context->m_pContext = NULL;
181 if (ret != JBIG2_SUCCESS) {
182 if(m_pJbig2Context->m_src_buf) {
183 FX_Free(m_pJbig2Context->m_src_buf);
184 }
185 m_pJbig2Context->m_src_buf = NULL;
186 return FXCODEC_STATUS_ERROR;
187 }
188 delete m_pJbig2Context->m_dest_image;
189 FX_Free(m_pJbig2Context->m_src_buf);
190 return FXCODEC_STATUS_DECODE_FINISH;
191 }
192 CJBig2_Context::DestroyContext(m_pJbig2Context->m_pContext);
193 m_pJbig2Context->m_pContext = NULL;
194 if (ret != JBIG2_SUCCESS) {
195 return FXCODEC_STATUS_ERROR;
196 }
197 int dword_size = m_pJbig2Context->m_height * m_pJbig2Context->m_dest_pitch / 4;
198 FX_DWORD* dword_buf = (FX_DWORD*)m_pJbig2Context->m_dest_buf;
199 for (int i = 0; i < dword_size; i ++) {
200 dword_buf[i] = ~dword_buf[i];
201 }
202 return FXCODEC_STATUS_DECODE_FINISH;
203 }
204
205
206
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698