| Index: src/images/SkImageDecoder_libjpeg.cpp
|
| diff --git a/src/images/SkImageDecoder_libjpeg.cpp b/src/images/SkImageDecoder_libjpeg.cpp
|
| index 4f78865154fb3e99d7813975717e6504a58ab044..8c2712c798abdbdd151aa6d8dab4c8f03f2926a0 100644
|
| --- a/src/images/SkImageDecoder_libjpeg.cpp
|
| +++ b/src/images/SkImageDecoder_libjpeg.cpp
|
| @@ -5,12 +5,10 @@
|
| * found in the LICENSE file.
|
| */
|
|
|
| -
|
| -#include "SkImageDecoder.h"
|
| -#include "SkImageEncoder.h"
|
| -#include "SkJpegUtility.h"
|
| +#include "SkImageDecoder_libjpeg.h"
|
| #include "SkColorPriv.h"
|
| #include "SkDither.h"
|
| +#include "SkJpegUtility.h"
|
| #include "SkScaledBitmapSampler.h"
|
| #include "SkStream.h"
|
| #include "SkTemplates.h"
|
| @@ -1411,12 +1409,7 @@ protected:
|
| }
|
| };
|
|
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -DEFINE_DECODER_CREATOR(JPEGImageDecoder);
|
| -DEFINE_ENCODER_CREATOR(JPEGImageEncoder);
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -
|
| -static bool is_jpeg(SkStreamRewindable* stream) {
|
| +SkImageDecoder::Format SkDetectFormatJPEGImageDecoder(SkStreamRewindable* stream) {
|
| static const unsigned char gHeader[] = { 0xFF, 0xD8, 0xFF };
|
| static const size_t HEADER_SIZE = sizeof(gHeader);
|
|
|
| @@ -1424,33 +1417,19 @@ static bool is_jpeg(SkStreamRewindable* stream) {
|
| size_t len = stream->read(buffer, HEADER_SIZE);
|
|
|
| if (len != HEADER_SIZE) {
|
| - return false; // can't read enough
|
| + return SkImageDecoder::kUnknown_Format; // can't read enough
|
| }
|
| if (memcmp(buffer, gHeader, HEADER_SIZE)) {
|
| - return false;
|
| + return SkImageDecoder::kUnknown_Format;
|
| }
|
| - return true;
|
| + return SkImageDecoder::kJPEG_Format;
|
| }
|
|
|
| -
|
| -static SkImageDecoder* sk_libjpeg_dfactory(SkStreamRewindable* stream) {
|
| - if (is_jpeg(stream)) {
|
| - return SkNEW(SkJPEGImageDecoder);
|
| - }
|
| - return NULL;
|
| +SkImageDecoder* SkCreateJPEGImageDecoder(SkImageDecoder::Format format) {
|
| + SkASSERT(SkImageDecoder::kJPEG_Format == format);
|
| + return SkNEW(SkJPEGImageDecoder);
|
| }
|
|
|
| -static SkImageDecoder::Format get_format_jpeg(SkStreamRewindable* stream) {
|
| - if (is_jpeg(stream)) {
|
| - return SkImageDecoder::kJPEG_Format;
|
| - }
|
| - return SkImageDecoder::kUnknown_Format;
|
| -}
|
| -
|
| -static SkImageEncoder* sk_libjpeg_efactory(SkImageEncoder::Type t) {
|
| +SkImageEncoder* SkCreateJPEGImageEncoder(SkImageEncoder::Type t) {
|
| return (SkImageEncoder::kJPEG_Type == t) ? SkNEW(SkJPEGImageEncoder) : NULL;
|
| }
|
| -
|
| -static SkImageDecoder_DecodeReg gDReg(sk_libjpeg_dfactory);
|
| -static SkImageDecoder_FormatReg gFormatReg(get_format_jpeg);
|
| -static SkImageEncoder_EncodeReg gEReg(sk_libjpeg_efactory);
|
|
|