| Index: src/images/SkImageDecoder_FactoryDefault.cpp
|
| diff --git a/src/images/SkImageDecoder_FactoryDefault.cpp b/src/images/SkImageDecoder_FactoryDefault.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..565519acc8daab83112f947472cff340a6cff06d
|
| --- /dev/null
|
| +++ b/src/images/SkImageDecoder_FactoryDefault.cpp
|
| @@ -0,0 +1,37 @@
|
| +
|
| +/*
|
| + * Copyright 2006 The Android Open Source Project
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#include "SkImageDecoder.h"
|
| +#include "SkMovie.h"
|
| +#include "SkStream.h"
|
| +#include "SkTRegistry.h"
|
| +
|
| +extern SkImageDecoder* image_decoder_from_stream(SkStream*);
|
| +
|
| +SkImageDecoder* SkImageDecoder::Factory(SkStream* stream) {
|
| + return image_decoder_from_stream(stream);
|
| +}
|
| +
|
| +/////////////////////////////////////////////////////////////////////////
|
| +
|
| +typedef SkTRegistry<SkMovie*, SkStream*> MovieReg;
|
| +
|
| +SkMovie* SkMovie::DecodeStream(SkStream* stream) {
|
| + const MovieReg* curr = MovieReg::Head();
|
| + while (curr) {
|
| + SkMovie* movie = curr->factory()(stream);
|
| + if (movie) {
|
| + return movie;
|
| + }
|
| + // we must rewind only if we got NULL, since we gave the stream to the
|
| + // movie, who may have already started reading from it
|
| + stream->rewind();
|
| + curr = curr->next();
|
| + }
|
| + return NULL;
|
| +}
|
|
|