| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2010, The Android Open Source Project | 2 * Copyright 2010, The Android Open Source Project |
| 3 * | 3 * |
| 4 * Licensed under the Apache License, Version 2.0 (the "License"); | 4 * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 * you may not use this file except in compliance with the License. | 5 * you may not use this file except in compliance with the License. |
| 6 * You may obtain a copy of the License at | 6 * You may obtain a copy of the License at |
| 7 * | 7 * |
| 8 * http://www.apache.org/licenses/LICENSE-2.0 | 8 * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 * | 9 * |
| 10 * Unless required by applicable law or agreed to in writing, software | 10 * Unless required by applicable law or agreed to in writing, software |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 | 124 |
| 125 typedef SkImageDecoder INHERITED; | 125 typedef SkImageDecoder INHERITED; |
| 126 }; | 126 }; |
| 127 | 127 |
| 128 ////////////////////////////////////////////////////////////////////////// | 128 ////////////////////////////////////////////////////////////////////////// |
| 129 | 129 |
| 130 #ifdef TIME_DECODE | 130 #ifdef TIME_DECODE |
| 131 | 131 |
| 132 #include "SkTime.h" | 132 #include "SkTime.h" |
| 133 | 133 |
| 134 class AutoTimeMillis { | |
| 135 public: | |
| 136 AutoTimeMillis(const char label[]) : | |
| 137 fLabel(label) { | |
| 138 if (nullptr == fLabel) { | |
| 139 fLabel = ""; | |
| 140 } | |
| 141 fNow = SkTime::GetMSecs(); | |
| 142 } | |
| 143 ~AutoTimeMillis() { | |
| 144 SkDebugf("---- Time (ms): %s %d\n", fLabel, SkTime::GetMSecs() - fNow); | |
| 145 } | |
| 146 private: | |
| 147 const char* fLabel; | |
| 148 SkMSec fNow; | |
| 149 }; | |
| 150 | |
| 151 #endif | 134 #endif |
| 152 | 135 |
| 153 /////////////////////////////////////////////////////////////////////////////// | 136 /////////////////////////////////////////////////////////////////////////////// |
| 154 | 137 |
| 155 // This guy exists just to aid in debugging, as it allows debuggers to just | 138 // This guy exists just to aid in debugging, as it allows debuggers to just |
| 156 // set a break-point in one place to see all error exists. | 139 // set a break-point in one place to see all error exists. |
| 157 static void print_webp_error(const SkBitmap& bm, const char msg[]) { | 140 static void print_webp_error(const SkBitmap& bm, const char msg[]) { |
| 158 SkDEBUGF(("libwebp error %s [%d %d]", msg, bm.width(), bm.height())); | 141 SkDEBUGF(("libwebp error %s [%d %d]", msg, bm.width(), bm.height())); |
| 159 } | 142 } |
| 160 | 143 |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 } else { | 262 } else { |
| 280 alphaType = kPremul_SkAlphaType; | 263 alphaType = kPremul_SkAlphaType; |
| 281 } | 264 } |
| 282 } | 265 } |
| 283 return decodedBitmap->setInfo(SkImageInfo::Make(width, height, colorType, al
phaType)); | 266 return decodedBitmap->setInfo(SkImageInfo::Make(width, height, colorType, al
phaType)); |
| 284 } | 267 } |
| 285 | 268 |
| 286 SkImageDecoder::Result SkWEBPImageDecoder::onDecode(SkStream* stream, SkBitmap*
decodedBitmap, | 269 SkImageDecoder::Result SkWEBPImageDecoder::onDecode(SkStream* stream, SkBitmap*
decodedBitmap, |
| 287 Mode mode) { | 270 Mode mode) { |
| 288 #ifdef TIME_DECODE | 271 #ifdef TIME_DECODE |
| 289 AutoTimeMillis atm("WEBP Decode"); | 272 SkAutoTime atm("WEBP Decode"); |
| 290 #endif | 273 #endif |
| 291 | 274 |
| 292 int origWidth, origHeight, hasAlpha; | 275 int origWidth, origHeight, hasAlpha; |
| 293 if (!webp_parse_header(stream, &origWidth, &origHeight, &hasAlpha)) { | 276 if (!webp_parse_header(stream, &origWidth, &origHeight, &hasAlpha)) { |
| 294 return kFailure; | 277 return kFailure; |
| 295 } | 278 } |
| 296 this->fHasAlpha = hasAlpha; | 279 this->fHasAlpha = hasAlpha; |
| 297 | 280 |
| 298 const int sampleSize = this->getSampleSize(); | 281 const int sampleSize = this->getSampleSize(); |
| 299 SkScaledBitmapSampler sampler(origWidth, origHeight, sampleSize); | 282 SkScaledBitmapSampler sampler(origWidth, origHeight, sampleSize); |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 550 return SkImageDecoder::kUnknown_Format; | 533 return SkImageDecoder::kUnknown_Format; |
| 551 } | 534 } |
| 552 | 535 |
| 553 static SkImageEncoder* sk_libwebp_efactory(SkImageEncoder::Type t) { | 536 static SkImageEncoder* sk_libwebp_efactory(SkImageEncoder::Type t) { |
| 554 return (SkImageEncoder::kWEBP_Type == t) ? new SkWEBPImageEncoder : nullptr; | 537 return (SkImageEncoder::kWEBP_Type == t) ? new SkWEBPImageEncoder : nullptr; |
| 555 } | 538 } |
| 556 | 539 |
| 557 static SkImageDecoder_DecodeReg gDReg(sk_libwebp_dfactory); | 540 static SkImageDecoder_DecodeReg gDReg(sk_libwebp_dfactory); |
| 558 static SkImageDecoder_FormatReg gFormatReg(get_format_webp); | 541 static SkImageDecoder_FormatReg gFormatReg(get_format_webp); |
| 559 static SkImageEncoder_EncodeReg gEReg(sk_libwebp_efactory); | 542 static SkImageEncoder_EncodeReg gEReg(sk_libwebp_efactory); |
| OLD | NEW |