| Index: src/core/SkCodecImageGenerator.cpp
 | 
| diff --git a/src/core/SkCodecImageGenerator.cpp b/src/core/SkCodecImageGenerator.cpp
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..2fef381ec1ffa332f5d62c8eb30d6b7eebcbe909
 | 
| --- /dev/null
 | 
| +++ b/src/core/SkCodecImageGenerator.cpp
 | 
| @@ -0,0 +1,46 @@
 | 
| +/*
 | 
| + * Copyright 2015 Google Inc.
 | 
| + *
 | 
| + * Use of this source code is governed by a BSD-style license that can be
 | 
| + * found in the LICENSE file.
 | 
| + */
 | 
| +
 | 
| +#include "SkCodecImageGenerator.h"
 | 
| +
 | 
| +SkImageGenerator* SkCodecImageGenerator::NewFromEncodedCodec(SkData* data) {
 | 
| +    SkCodec* codec = SkCodec::NewFromData(data);
 | 
| +    if (nullptr == codec) {
 | 
| +        return nullptr;
 | 
| +    }
 | 
| +
 | 
| +    return new SkCodecImageGenerator(codec, data);
 | 
| +}
 | 
| +
 | 
| +SkCodecImageGenerator::SkCodecImageGenerator(SkCodec* codec, SkData* data)
 | 
| +    : INHERITED(codec->getInfo())
 | 
| +    , fCodec(codec)
 | 
| +    , fData(SkRef(data))
 | 
| +{}
 | 
| +
 | 
| +SkData* SkCodecImageGenerator::onRefEncodedData(SK_REFENCODEDDATA_CTXPARAM) {
 | 
| +    return SkRef(fData.get());
 | 
| +}
 | 
| +
 | 
| +bool SkCodecImageGenerator::onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes,
 | 
| +        SkPMColor ctable[], int* ctableCount) {
 | 
| +
 | 
| +    SkCodec::Result result = fCodec->getPixels(info, pixels, rowBytes, nullptr, ctable,
 | 
| +            ctableCount);
 | 
| +    switch (result) {
 | 
| +        case SkCodec::kSuccess:
 | 
| +        case SkCodec::kIncompleteInput:
 | 
| +            return true;
 | 
| +        default:
 | 
| +            return false;
 | 
| +    }
 | 
| +}
 | 
| +
 | 
| +bool SkCodecImageGenerator::onGetYUV8Planes(SkISize sizes[3], void* planes[3], size_t rowBytes[3],
 | 
| +        SkYUVColorSpace* colorSpace) {
 | 
| +    return false;
 | 
| +}
 | 
| 
 |