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

Unified Diff: Source/core/platform/image-decoders/jpeg/JPEGImageDecoder.cpp

Issue 15466003: Remove image decoder down sampling (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Remove virtual setSize() from GIF decoder Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
diff --git a/Source/core/platform/image-decoders/jpeg/JPEGImageDecoder.cpp b/Source/core/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
index c1d099d7aa51c1eaece9b1753f6dc4cc847409af..30f1c2bbac40ddf31de2dd204fd4dedebd7215b0 100644
--- a/Source/core/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
+++ b/Source/core/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
@@ -609,15 +609,6 @@ bool JPEGImageDecoder::isSizeAvailable()
return ImageDecoder::isSizeAvailable();
}
-bool JPEGImageDecoder::setSize(unsigned width, unsigned height)
-{
- if (!ImageDecoder::setSize(width, height))
- return false;
-
- prepareScaleDataIfNecessary();
- return true;
-}
-
ImageFrame* JPEGImageDecoder::frameBufferAtIndex(size_t index)
{
if (index)
@@ -668,43 +659,32 @@ void setPixel(ImageFrame& buffer, ImageFrame::PixelData* currentAddress, JSAMPAR
}
}
-template <J_COLOR_SPACE colorSpace, bool isScaled>
+template <J_COLOR_SPACE colorSpace>
bool JPEGImageDecoder::outputScanlines(ImageFrame& buffer)
{
JSAMPARRAY samples = m_reader->samples();
jpeg_decompress_struct* info = m_reader->info();
- int width = isScaled ? m_scaledColumns.size() : info->output_width;
+ int width = info->output_width;
while (info->output_scanline < info->output_height) {
// jpeg_read_scanlines will increase the scanline counter, so we
// save the scanline before calling it.
- int sourceY = info->output_scanline;
- /* Request one scanline. Returns 0 or 1 scanlines. */
+ int y = info->output_scanline;
+ // Request one scanline: returns 0 or 1 scanlines.
if (jpeg_read_scanlines(info, samples, 1) != 1)
return false;
-
- int destY = scaledY(sourceY);
- if (destY < 0)
- continue;
-
#if USE(QCMSLIB)
if (m_reader->colorTransform() && colorSpace == JCS_RGB)
qcms_transform_data(m_reader->colorTransform(), *samples, *samples, info->output_width);
#endif
-
- ImageFrame::PixelData* currentAddress = buffer.getAddr(0, destY);
+ ImageFrame::PixelData* currentAddress = buffer.getAddr(0, y);
for (int x = 0; x < width; ++x) {
- setPixel<colorSpace>(buffer, currentAddress, samples, isScaled ? m_scaledColumns[x] : x);
+ setPixel<colorSpace>(buffer, currentAddress, samples, x);
++currentAddress;
}
}
- return true;
-}
-template <J_COLOR_SPACE colorSpace>
-bool JPEGImageDecoder::outputScanlines(ImageFrame& buffer)
-{
- return m_scaled ? outputScanlines<colorSpace, true>(buffer) : outputScanlines<colorSpace, false>(buffer);
+ return true;
}
bool JPEGImageDecoder::outputScanlines()
@@ -715,7 +695,7 @@ bool JPEGImageDecoder::outputScanlines()
// Initialize the framebuffer if needed.
ImageFrame& buffer = m_frameBufferCache[0];
if (buffer.status() == ImageFrame::FrameEmpty) {
- if (!buffer.setSize(scaledSize().width(), scaledSize().height()))
+ if (!buffer.setSize(size().width(), size().height()))
return setFailed();
buffer.setStatus(ImageFrame::FramePartial);
// The buffer is transparent outside the decoded area while the image is
@@ -729,7 +709,7 @@ bool JPEGImageDecoder::outputScanlines()
jpeg_decompress_struct* info = m_reader->info();
#if defined(TURBO_JPEG_RGB_SWIZZLE)
- if (!m_scaled && turboSwizzled(info->out_color_space)) {
+ if (turboSwizzled(info->out_color_space)) {
while (info->output_scanline < info->output_height) {
unsigned char* row = reinterpret_cast<unsigned char*>(buffer.getAddr(0, info->output_scanline));
if (jpeg_read_scanlines(info, &row, 1) != 1)
« no previous file with comments | « Source/core/platform/image-decoders/jpeg/JPEGImageDecoder.h ('k') | Source/core/platform/image-decoders/png/PNGImageDecoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698