| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef SkCodec_DEFINED | 8 #ifndef SkCodec_DEFINED |
| 9 #define SkCodec_DEFINED | 9 #define SkCodec_DEFINED |
| 10 | 10 |
| (...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 | 600 |
| 601 /** | 601 /** |
| 602 * Number of milliseconds to show this frame. | 602 * Number of milliseconds to show this frame. |
| 603 */ | 603 */ |
| 604 size_t fDuration; | 604 size_t fDuration; |
| 605 }; | 605 }; |
| 606 | 606 |
| 607 /** | 607 /** |
| 608 * Return info about the frames in the image. | 608 * Return info about the frames in the image. |
| 609 * | 609 * |
| 610 * May require reading through the stream to determine the number of | 610 * May require reading through the stream to determine info about the |
| 611 * frames. | 611 * frames (including the count). |
| 612 * | 612 * |
| 613 * As such, future decoding calls may require a rewind. | 613 * As such, future decoding calls may require a rewind. |
| 614 * | 614 * |
| 615 * For single-frame images, this will return an empty vector. | 615 * For single-frame images, this will return an empty vector. |
| 616 */ | 616 */ |
| 617 std::vector<FrameInfo> getFrameInfo() { | 617 std::vector<FrameInfo> getFrameInfo() { |
| 618 return this->onGetFrameInfo(); | 618 return this->onGetFrameInfo(); |
| 619 } | 619 } |
| 620 | 620 |
| 621 static constexpr int kRepetitionCountInfinite = -1; |
| 622 |
| 623 /** |
| 624 * Return the number of times to repeat, if this image is animated. |
| 625 * |
| 626 * May require reading the stream to find the repetition count. |
| 627 * |
| 628 * As such, future decoding calls may require a rewind. |
| 629 * |
| 630 * For single-frame images, this will return 0. |
| 631 */ |
| 632 int getRepetitionCount() { |
| 633 return this->onGetRepetitionCount(); |
| 634 } |
| 635 |
| 621 protected: | 636 protected: |
| 622 /** | 637 /** |
| 623 * Takes ownership of SkStream* | 638 * Takes ownership of SkStream* |
| 624 */ | 639 */ |
| 625 SkCodec(int width, | 640 SkCodec(int width, |
| 626 int height, | 641 int height, |
| 627 const SkEncodedInfo&, | 642 const SkEncodedInfo&, |
| 628 SkStream*, | 643 SkStream*, |
| 629 sk_sp<SkColorSpace>, | 644 sk_sp<SkColorSpace>, |
| 630 Origin = kTopLeft_Origin); | 645 Origin = kTopLeft_Origin); |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 759 virtual int onOutputScanline(int inputScanline) const; | 774 virtual int onOutputScanline(int inputScanline) const; |
| 760 | 775 |
| 761 bool initializeColorXform(const SkImageInfo& dstInfo); | 776 bool initializeColorXform(const SkImageInfo& dstInfo); |
| 762 SkColorSpaceXform* colorXform() const { return fColorXform.get(); } | 777 SkColorSpaceXform* colorXform() const { return fColorXform.get(); } |
| 763 | 778 |
| 764 virtual std::vector<FrameInfo> onGetFrameInfo() { | 779 virtual std::vector<FrameInfo> onGetFrameInfo() { |
| 765 // empty vector - this is not animated. | 780 // empty vector - this is not animated. |
| 766 return {}; | 781 return {}; |
| 767 } | 782 } |
| 768 | 783 |
| 784 virtual int onGetRepetitionCount() { |
| 785 return 0; |
| 786 } |
| 787 |
| 769 /** | 788 /** |
| 770 * Used for testing with qcms. | 789 * Used for testing with qcms. |
| 771 * FIXME: Remove this when we are done comparing with qcms. | 790 * FIXME: Remove this when we are done comparing with qcms. |
| 772 */ | 791 */ |
| 773 virtual sk_sp<SkData> getICCData() const { return nullptr; } | 792 virtual sk_sp<SkData> getICCData() const { return nullptr; } |
| 774 | 793 |
| 775 private: | 794 private: |
| 776 const SkEncodedInfo fEncodedInfo; | 795 const SkEncodedInfo fEncodedInfo; |
| 777 const SkImageInfo fSrcInfo; | 796 const SkImageInfo fSrcInfo; |
| 778 std::unique_ptr<SkStream> fStream; | 797 std::unique_ptr<SkStream> fStream; |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 851 // For testing with qcms | 870 // For testing with qcms |
| 852 // FIXME: Remove these when we are done comparing with qcms. | 871 // FIXME: Remove these when we are done comparing with qcms. |
| 853 friend class DM::ColorCodecSrc; | 872 friend class DM::ColorCodecSrc; |
| 854 friend class ColorCodecBench; | 873 friend class ColorCodecBench; |
| 855 | 874 |
| 856 friend class DM::CodecSrc; // for fillIncompleteImage | 875 friend class DM::CodecSrc; // for fillIncompleteImage |
| 857 friend class SkSampledCodec; | 876 friend class SkSampledCodec; |
| 858 friend class SkIcoCodec; | 877 friend class SkIcoCodec; |
| 859 }; | 878 }; |
| 860 #endif // SkCodec_DEFINED | 879 #endif // SkCodec_DEFINED |
| OLD | NEW |