Fix missing include for std::min
[pdfium.git] / core / src / fxcodec / codec / fx_codec_jpeg.cpp
index 5e78e13..489f099 100644 (file)
@@ -73,68 +73,6 @@ extern "C" {
 #define        JPEG_MARKER_AUTHORTIME  (JPEG_APP0 + 3)
 #define        JPEG_MARKER_MAXSIZE     0xFFFF
 #define        JPEG_OVERHEAD_LEN       14
-static FX_BOOL _JpegIsIccMarker(jpeg_saved_marker_ptr marker)
-{
-    if (marker->marker == JPEG_MARKER_ICC &&
-            marker->data_length >= JPEG_OVERHEAD_LEN &&
-            (FXSYS_memcmp32(marker->data, "\x49\x43\x43\x5f\x50\x52\x4f\x46\x49\x4c\x45\x00", 12) == 0)) {
-        return TRUE;
-    }
-    return FALSE;
-}
-static FX_BOOL _JpegLoadIccProfile(j_decompress_ptr cinfo, FX_LPBYTE* icc_buf_ptr, FX_DWORD* icc_length)
-{
-    if(icc_buf_ptr == NULL || icc_length == NULL) {
-        return FALSE;
-    }
-    *icc_buf_ptr = NULL;
-    *icc_length = 0;
-    FX_LPBYTE icc_data_ptr = NULL;
-    FX_DWORD icc_data_len = 0;
-    FX_BYTE count_icc_marker = 0;
-    FX_BYTE num_icc_marker = 0;
-    jpeg_saved_marker_ptr marker_list[256] = {NULL};
-    for (jpeg_saved_marker_ptr cur_marker = cinfo->marker_list;
-            cur_marker != NULL;
-            cur_marker = cur_marker->next) {
-        if(_JpegIsIccMarker(cur_marker)) {
-            if(count_icc_marker == 0) {
-                num_icc_marker = cur_marker->data[13];
-            } else if(num_icc_marker != cur_marker->data[13]) {
-                return FALSE;
-            }
-            int sn = cur_marker->data[12] - 1;
-            if(sn < 0 || sn >= num_icc_marker) {
-                return FALSE;
-            }
-            if(marker_list[sn] == NULL) {
-                marker_list[sn] = cur_marker;
-            } else {
-                return FALSE;
-            }
-            count_icc_marker ++;
-            icc_data_len +=    (cur_marker->data_length - JPEG_OVERHEAD_LEN);
-        }
-    }
-    if(count_icc_marker != num_icc_marker) {
-        return FALSE;
-    }
-    if(num_icc_marker == 0) {
-        return TRUE;
-    }
-    icc_data_ptr = FX_Alloc(FX_BYTE, icc_data_len);
-    if(icc_buf_ptr == NULL)    {
-        return FALSE;
-    }
-    *icc_buf_ptr = icc_data_ptr;
-    *icc_length = icc_data_len;
-    for (int idx = 0; idx < num_icc_marker; idx++) {
-        icc_data_len = marker_list[idx]->data_length - JPEG_OVERHEAD_LEN;
-        FXSYS_memcpy32(icc_data_ptr, marker_list[idx]->data + JPEG_OVERHEAD_LEN, icc_data_len);
-        icc_data_ptr += icc_data_len;
-    }
-    return TRUE;
-}
 static FX_BOOL _JpegEmbedIccProfile(j_compress_ptr cinfo, FX_LPCBYTE icc_buf_ptr, FX_DWORD icc_length)
 {
     if(icc_buf_ptr == NULL || icc_length == 0) {
@@ -196,7 +134,6 @@ static void _JpegEncode(const CFX_DIBSource* pSource, FX_LPBYTE& dest_buf, FX_ST
         dest_buf_length >>= 1;
         dest_buf = FX_Alloc(FX_BYTE, dest_buf_length);
     }
-    FXSYS_memset32(dest_buf, 0, dest_buf_length);
     struct jpeg_destination_mgr dest;
     dest.init_destination = _dest_do_nothing;
     dest.term_destination = _dest_do_nothing;
@@ -282,6 +219,7 @@ static FX_BOOL _JpegLoadInfo(FX_LPCBYTE src_buf, FX_DWORD src_size, int& width,
     jerr.output_message = _error_do_nothing;
     jerr.format_message = _error_do_nothing2;
     jerr.reset_error_mgr = _error_do_nothing;
+    jerr.trace_level = 0;
     cinfo.err = &jerr;
     jmp_buf mark;
     cinfo.client_data = &mark;
@@ -411,7 +349,7 @@ FX_BOOL CCodec_JpegDecoder::InitDecode()
     m_OrigWidth = cinfo.image_width;
     m_OrigHeight = cinfo.image_height;
     m_OutputWidth = m_OrigWidth;
-    m_OutputHeight = m_OutputHeight;
+    m_OutputHeight = m_OrigHeight;
     m_nDefaultScaleDenom = cinfo.scale_denom;
     return TRUE;
 }