WebKit Bugzilla
Attachment 342088 Details for
Bug 186365
: Remove unused image encoders
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186365-20180606174525.patch (text/plain), 14.35 KB, created by
Michael Catanzaro
on 2018-06-06 15:45:25 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Michael Catanzaro
Created:
2018-06-06 15:45:25 PDT
Size:
14.35 KB
patch
obsolete
>Subversion Revision: 232558 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index b08b3c28c2a8ad37397edc5a70d8ae5cb1d5708f..f7ee20c2277b6a2c33cf932300a7126439525192 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,15 @@ >+2018-06-06 Michael Catanzaro <mcatanzaro@igalia.com> >+ >+ Remove unused image encoders >+ https://bugs.webkit.org/show_bug.cgi?id=186365 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * platform/image-encoders/JPEGImageEncoder.cpp: Removed. >+ * platform/image-encoders/JPEGImageEncoder.h: Removed. >+ * platform/image-encoders/PNGImageEncoder.cpp: Removed. >+ * platform/image-encoders/PNGImageEncoder.h: Removed. >+ > 2018-06-06 Jer Noble <jer.noble@apple.com> > > REGRESSION (r231817?): Layout Test media/track/track-delete-during-setup.html is a flaky timeout >diff --git a/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp b/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp >deleted file mode 100644 >index 8a80663fd1e2a4eca72e6e12a948d76ca770acc1..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/image-encoders/JPEGImageEncoder.cpp >+++ /dev/null >@@ -1,145 +0,0 @@ >-/* >- * Copyright (C) 2009 Torch Mobile, Inc. All rights reserved. >- * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >- >-#include "config.h" >-#include "JPEGImageEncoder.h" >- >-#include "IntSize.h" >-// FIXME: jpeglib.h requires stdio.h to be included first for FILE >-#include <stdio.h> >-#include <jpeglib.h> >-#include <setjmp.h> >- >-namespace WebCore { >- >-class JPEGDestinationManager : public jpeg_destination_mgr { >-public: >- explicit JPEGDestinationManager(Vector<char>& toDump) >- : m_dump(toDump) >- { >- // Zero base class memory. >- jpeg_destination_mgr* base = this; >- memset(base, 0, sizeof(jpeg_destination_mgr)); >- } >- Vector<char> m_buffer; >- Vector<char>& m_dump; >-}; >- >-class JPEGCompressErrorMgr : public jpeg_error_mgr { >-public: >- JPEGCompressErrorMgr() >- { >- // Zero memory >- memset(this, 0, sizeof(JPEGCompressErrorMgr)); >- } >- >- jmp_buf m_setjmpBuffer; >-}; >- >-static void jpegInitializeDestination(j_compress_ptr compressData) >-{ >- JPEGDestinationManager* dest = static_cast<JPEGDestinationManager*>(compressData->dest); >- dest->m_buffer.resize(4096); >- dest->next_output_byte = reinterpret_cast<JOCTET*>(dest->m_buffer.data()); >- dest->free_in_buffer = dest->m_buffer.size(); >-} >- >-static boolean jpegEmptyOutputBuffer(j_compress_ptr compressData) >-{ >- JPEGDestinationManager* dest = static_cast<JPEGDestinationManager*>(compressData->dest); >- dest->m_dump.append(dest->m_buffer.data(), dest->m_buffer.size()); >- dest->next_output_byte = reinterpret_cast<JOCTET*>(dest->m_buffer.data()); >- dest->free_in_buffer = dest->m_buffer.size(); >- return TRUE; >-} >- >-static void jpegTerminateDestination(j_compress_ptr compressData) >-{ >- JPEGDestinationManager* dest = static_cast<JPEGDestinationManager*>(compressData->dest); >- dest->m_dump.append(dest->m_buffer.data(), dest->m_buffer.size() - dest->free_in_buffer); >-} >- >-static void jpegErrorExit(j_common_ptr compressData) >-{ >- JPEGCompressErrorMgr* err = static_cast<JPEGCompressErrorMgr*>(compressData->err); >- longjmp(err->m_setjmpBuffer, -1); >-} >- >-bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize& size, Vector<char>& jpegData, std::optional<double> quality) >-{ >- struct jpeg_compress_struct compressData; >- JPEGCompressErrorMgr err; >- compressData.err = jpeg_std_error(&err); >- err.error_exit = jpegErrorExit; >- >- jpeg_create_compress(&compressData); >- >- JPEGDestinationManager dest(jpegData); >- compressData.dest = &dest; >- dest.init_destination = jpegInitializeDestination; >- dest.empty_output_buffer = jpegEmptyOutputBuffer; >- dest.term_destination = jpegTerminateDestination; >- >- compressData.image_width = size.width(); >- compressData.image_height = size.height(); >- compressData.input_components = 3; >- compressData.in_color_space = JCS_RGB; >- jpeg_set_defaults(&compressData); >- int compressionQuality = 65; >- >- if (quality && *quality >= 0.0 && *quality <= 1.0) >- compressionQuality = static_cast<int>(*quality * 100 + 0.5); >- >- jpeg_set_quality(&compressData, compressionQuality, TRUE); >- >- // rowBuffer must be defined here so that its destructor is always called even when "setjmp" catches an error. >- Vector<JSAMPLE, 600 * 3> rowBuffer; >- >- if (setjmp(err.m_setjmpBuffer)) { >- jpeg_destroy_compress(&compressData); >- return false; >- } >- >- jpeg_start_compress(&compressData, TRUE); >- rowBuffer.grow(compressData.image_width * 3); >- >- // add offset to prevent clobbered error caused by setjmp and longjmp. >- unsigned offset = 0; >- const unsigned char* pixel = rgbaBigEndianData; >- const unsigned char* pixelEnd = pixel + compressData.image_width * compressData.image_height * 4; >- while (pixel + offset < pixelEnd) { >- JSAMPLE* output = rowBuffer.data(); >- for (const unsigned char* rowEnd = pixel + offset + compressData.image_width * 4; pixel + offset < rowEnd;) { >- *output++ = static_cast<JSAMPLE>(*(pixel + offset++) & 0xFF); // red >- *output++ = static_cast<JSAMPLE>(*(pixel + offset++) & 0xFF); // green >- *output++ = static_cast<JSAMPLE>(*(pixel + offset++) & 0xFF); // blue >- ++offset; // skip alpha >- } >- output = rowBuffer.data(); >- jpeg_write_scanlines(&compressData, &output, 1); >- } >- >- jpeg_finish_compress(&compressData); >- jpeg_destroy_compress(&compressData); >- return true; >-} >- >-} // namespace WebCore >diff --git a/Source/WebCore/platform/image-encoders/JPEGImageEncoder.h b/Source/WebCore/platform/image-encoders/JPEGImageEncoder.h >deleted file mode 100644 >index 22bb80546f2388a73600a0ee2b5ea62f3770cf9b..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/image-encoders/JPEGImageEncoder.h >+++ /dev/null >@@ -1,32 +0,0 @@ >-/* >- * Copyright (C) 2009 Torch Mobile, Inc. All rights reserved. >- * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#pragma once >- >-#include <wtf/Forward.h> >-#include <wtf/Optional.h> >- >-namespace WebCore { >- >-class IntSize; >- >-bool compressRGBABigEndianToJPEG(unsigned char* rgbaBigEndianData, const IntSize&, Vector<char>& jpegData, std::optional<double> quality = std::nullopt); >- >-} >diff --git a/Source/WebCore/platform/image-encoders/PNGImageEncoder.cpp b/Source/WebCore/platform/image-encoders/PNGImageEncoder.cpp >deleted file mode 100644 >index 3aa51229ae78516997910c4d223479e198ae2b9f..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/image-encoders/PNGImageEncoder.cpp >+++ /dev/null >@@ -1,126 +0,0 @@ >-/* >- * Copyright (c) 2006-2009, Google Inc. All rights reserved. >- * Copyright (c) 2009 Torch Mobile, Inc. All rights reserved. >- * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. >- * >- * Redistribution and use in source and binary forms, with or without >- * modification, are permitted provided that the following conditions are >- * met: >- * >- * * Redistributions of source code must retain the above copyright >- * notice, this list of conditions and the following disclaimer. >- * * Redistributions in binary form must reproduce the above >- * copyright notice, this list of conditions and the following disclaimer >- * in the documentation and/or other materials provided with the >- * distribution. >- * * Neither the name of Google Inc. nor the names of its >- * contributors may be used to endorse or promote products derived from >- * this software without specific prior written permission. >- * >- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS >- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT >- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR >- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT >- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, >- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT >- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, >- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY >- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >- */ >- >-#include "config.h" >-#include "PNGImageEncoder.h" >- >-#include "IntSize.h" >-#include <png.h> >-#include <wtf/Vector.h> >- >-namespace WebCore { >- >-// Encoder -------------------------------------------------------------------- >-// >-// This section of the code is based on nsPNGEncoder.cpp in Mozilla >-// (Copyright 2005 Google Inc.) >- >-// Passed around as the io_ptr in the png structs so our callbacks know where >-// to write data. >-struct PNGEncoderState { >- PNGEncoderState(Vector<char>* o) : m_dump(o) {} >- Vector<char>* m_dump; >-}; >- >-// Called by libpng to flush its internal buffer to ours. >-void encoderWriteCallback(png_structp png, png_bytep data, png_size_t size) >-{ >- PNGEncoderState* state = static_cast<PNGEncoderState*>(png_get_io_ptr(png)); >- ASSERT(state->m_dump); >- >- size_t oldSize = state->m_dump->size(); >- state->m_dump->resize(oldSize + size); >- char* destination = state->m_dump->data() + oldSize; >- memcpy(destination, data, size); >-} >- >-// Automatically destroys the given write structs on destruction to make >-// cleanup and error handling code cleaner. >-class PNGWriteStructDestroyer { >-public: >- PNGWriteStructDestroyer(png_struct** ps, png_info** pi) >- : m_pngStruct(ps) >- , m_pngInfo(pi) >- { >- } >- >- ~PNGWriteStructDestroyer() >- { >- png_destroy_write_struct(m_pngStruct, m_pngInfo); >- } >- >-private: >- png_struct** m_pngStruct; >- png_info** m_pngInfo; >-}; >- >-bool compressRGBABigEndianToPNG(unsigned char* rgbaBigEndianData, const IntSize& size, Vector<char>& pngData) >-{ >- png_struct* pngPtr = png_create_write_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0); >- if (!pngPtr) >- return false; >- >- png_info* infoPtr = png_create_info_struct(pngPtr); >- if (!infoPtr) { >- png_destroy_write_struct(&pngPtr, 0); >- return false; >- } >- PNGWriteStructDestroyer destroyer(&pngPtr, &infoPtr); >- >- // The destroyer will ensure that the structures are cleaned up in this >- // case, even though we may get here as a jump from random parts of the >- // PNG library called below. >- if (setjmp(png_jmpbuf(pngPtr))) >- return false; >- >- // Set our callback for libpng to give us the data. >- PNGEncoderState state(&pngData); >- png_set_write_fn(pngPtr, &state, encoderWriteCallback, 0); >- >- int pngOutputColorType = PNG_COLOR_TYPE_RGB_ALPHA; >- >- png_set_IHDR(pngPtr, infoPtr, size.width(), size.height(), 8, pngOutputColorType, >- PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, >- PNG_FILTER_TYPE_DEFAULT); >- png_write_info(pngPtr, infoPtr); >- >- unsigned bytesPerRow = size.width() * 4; >- for (unsigned y = 0; y < size.height(); ++y) { >- png_write_row(pngPtr, rgbaBigEndianData); >- rgbaBigEndianData += bytesPerRow; >- } >- >- png_write_end(pngPtr, infoPtr); >- return true; >-} >- >-} // namespace WebCore >diff --git a/Source/WebCore/platform/image-encoders/PNGImageEncoder.h b/Source/WebCore/platform/image-encoders/PNGImageEncoder.h >deleted file mode 100644 >index 08f0b5ae90305e2669f6937e85f1904d24ec8b35..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/image-encoders/PNGImageEncoder.h >+++ /dev/null >@@ -1,33 +0,0 @@ >-/* >- * Copyright (C) 2007-2009 Torch Mobile, Inc. >- * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Library General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Library General Public License for more details. >- * >- * You should have received a copy of the GNU Library General Public License >- * along with this library; see the file COPYING.LIB. If not, write to >- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- * Boston, MA 02110-1301, USA. >- */ >- >-#ifndef PNGImageEncoder_h >-#define PNGImageEncoder_h >- >-#include <wtf/Forward.h> >- >-namespace WebCore { >- >-class IntSize; >-bool compressRGBABigEndianToPNG(unsigned char* rgbaBigEndianData, const IntSize& size, Vector<char>& pngData); >- >-} >- >-#endif // PNGImageEncoder_h
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 186365
: 342088 |
342103