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

Side by Side Diff: src/images/SkImageDecoder_libwebp.cpp

Issue 14363003: Updates to skimage tool to use it for testing. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Implement onGetFormat for other decoders. Created 7 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 } 106 }
107 107
108 virtual Format getFormat() const SK_OVERRIDE { 108 virtual Format getFormat() const SK_OVERRIDE {
109 return kWEBP_Format; 109 return kWEBP_Format;
110 } 110 }
111 111
112 protected: 112 protected:
113 virtual bool onBuildTileIndex(SkStream *stream, int *width, int *height) SK_ OVERRIDE; 113 virtual bool onBuildTileIndex(SkStream *stream, int *width, int *height) SK_ OVERRIDE;
114 virtual bool onDecodeRegion(SkBitmap* bitmap, const SkIRect& rect) SK_OVERRI DE; 114 virtual bool onDecodeRegion(SkBitmap* bitmap, const SkIRect& rect) SK_OVERRI DE;
115 virtual bool onDecode(SkStream* stream, SkBitmap* bm, Mode) SK_OVERRIDE; 115 virtual bool onDecode(SkStream* stream, SkBitmap* bm, Mode) SK_OVERRIDE;
116 virtual Format onGetFormat(SkStream*) const SK_OVERRIDE;
116 117
117 private: 118 private:
118 bool setDecodeConfig(SkBitmap* decodedBitmap, int width, int height); 119 bool setDecodeConfig(SkBitmap* decodedBitmap, int width, int height);
119 SkStream* fInputStream; 120 SkStream* fInputStream;
120 int fOrigWidth; 121 int fOrigWidth;
121 int fOrigHeight; 122 int fOrigHeight;
122 int fHasAlpha; 123 int fHasAlpha;
123 124
124 typedef SkImageDecoder INHERITED; 125 typedef SkImageDecoder INHERITED;
125 }; 126 };
126 127
128 SkImageDecoder::Format SkWEBPImageDecoder::onGetFormat(SkStream* stream) const {
129 int width, height, hasAlpha;
130 if (webp_parse_header(stream, &width, &height, &hasAlpha)) {
131 return kWEBP_Format;
132 }
133 return kUnknown_Format;
134 }
135
127 ////////////////////////////////////////////////////////////////////////// 136 //////////////////////////////////////////////////////////////////////////
128 137
129 #ifdef TIME_DECODE 138 #ifdef TIME_DECODE
130 139
131 #include "SkTime.h" 140 #include "SkTime.h"
132 141
133 class AutoTimeMillis { 142 class AutoTimeMillis {
134 public: 143 public:
135 AutoTimeMillis(const char label[]) : 144 AutoTimeMillis(const char label[]) :
136 fLabel(label) { 145 fLabel(label) {
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 // Magic matches, call decoder 595 // Magic matches, call decoder
587 return SkNEW(SkWEBPImageDecoder); 596 return SkNEW(SkWEBPImageDecoder);
588 } 597 }
589 598
590 static SkImageEncoder* sk_libwebp_efactory(SkImageEncoder::Type t) { 599 static SkImageEncoder* sk_libwebp_efactory(SkImageEncoder::Type t) {
591 return (SkImageEncoder::kWEBP_Type == t) ? SkNEW(SkWEBPImageEncoder) : NUL L; 600 return (SkImageEncoder::kWEBP_Type == t) ? SkNEW(SkWEBPImageEncoder) : NUL L;
592 } 601 }
593 602
594 static SkTRegistry<SkImageDecoder*, SkStream*> gDReg(sk_libwebp_dfactory); 603 static SkTRegistry<SkImageDecoder*, SkStream*> gDReg(sk_libwebp_dfactory);
595 static SkTRegistry<SkImageEncoder*, SkImageEncoder::Type> gEReg(sk_libwebp_efact ory); 604 static SkTRegistry<SkImageEncoder*, SkImageEncoder::Type> gEReg(sk_libwebp_efact ory);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698