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

Side by Side Diff: Source/platform/image-decoders/webp/WEBPImageDecoder.h

Issue 352873002: [wip] image color correction (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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 (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 26 matching lines...) Expand all
37 namespace WebCore { 37 namespace WebCore {
38 38
39 class PLATFORM_EXPORT WEBPImageDecoder : public ImageDecoder { 39 class PLATFORM_EXPORT WEBPImageDecoder : public ImageDecoder {
40 public: 40 public:
41 WEBPImageDecoder(ImageSource::AlphaOption, ImageSource::GammaAndColorProfile Option, size_t maxDecodedBytes); 41 WEBPImageDecoder(ImageSource::AlphaOption, ImageSource::GammaAndColorProfile Option, size_t maxDecodedBytes);
42 virtual ~WEBPImageDecoder(); 42 virtual ~WEBPImageDecoder();
43 43
44 virtual String filenameExtension() const OVERRIDE { return "webp"; } 44 virtual String filenameExtension() const OVERRIDE { return "webp"; }
45 virtual bool isSizeAvailable() OVERRIDE; 45 virtual bool isSizeAvailable() OVERRIDE;
46 virtual bool hasColorProfile() const OVERRIDE { return m_hasColorProfile; } 46 virtual bool hasColorProfile() const OVERRIDE { return m_hasColorProfile; }
47 virtual PassRefPtr<ColorSpaceProfile> colorProfile() const OVERRIDE;
47 virtual size_t frameCount() OVERRIDE; 48 virtual size_t frameCount() OVERRIDE;
48 virtual ImageFrame* frameBufferAtIndex(size_t) OVERRIDE; 49 virtual ImageFrame* frameBufferAtIndex(size_t) OVERRIDE;
49 virtual void setData(SharedBuffer* data, bool allDataReceived) OVERRIDE; 50 virtual void setData(SharedBuffer* data, bool allDataReceived) OVERRIDE;
50 virtual int repetitionCount() const OVERRIDE; 51 virtual int repetitionCount() const OVERRIDE;
51 virtual bool frameIsCompleteAtIndex(size_t) const OVERRIDE; 52 virtual bool frameIsCompleteAtIndex(size_t) const OVERRIDE;
52 virtual float frameDurationAtIndex(size_t) const OVERRIDE; 53 virtual float frameDurationAtIndex(size_t) const OVERRIDE;
53 virtual size_t clearCacheExceptFrame(size_t) OVERRIDE; 54 virtual size_t clearCacheExceptFrame(size_t) OVERRIDE;
54 55
55 private: 56 private:
56 bool decode(const uint8_t* dataBytes, size_t dataSize, bool onlySize, size_t frameIndex); 57 bool decode(const uint8_t* dataBytes, size_t dataSize, bool onlySize, size_t frameIndex);
57 58
58 WebPIDecoder* m_decoder; 59 WebPIDecoder* m_decoder;
59 WebPDecBuffer m_decoderBuffer; 60 WebPDecBuffer m_decoderBuffer;
60 int m_formatFlags; 61 int m_formatFlags;
61 bool m_frameBackgroundHasAlpha; 62 bool m_frameBackgroundHasAlpha;
62 bool m_hasColorProfile; 63 bool m_hasColorProfile;
64 RefPtr<ColorSpaceProfile> m_colorProfile;
63 65
64 #if USE(QCMSLIB) 66 #if USE(QCMSLIB)
65 qcms_transform* colorTransform() const { return m_transform; } 67 qcms_transform* colorTransform() const { return m_transform; }
66 void createColorTransform(const char* data, size_t); 68 bool createColorTransform(const char* data, size_t);
69 void clearColorTransform();
67 void readColorProfile(); 70 void readColorProfile();
68 71
69 bool m_haveReadProfile; 72 bool m_haveReadProfile;
70 qcms_transform* m_transform; 73 qcms_transform* m_transform;
71 #endif 74 #endif
72 75
73 bool updateDemuxer(); 76 bool updateDemuxer();
74 bool initFrameBuffer(size_t frameIndex); 77 bool initFrameBuffer(size_t frameIndex);
75 void applyPostProcessing(size_t frameIndex); 78 void applyPostProcessing(size_t frameIndex);
76 virtual void clearFrameBuffer(size_t frameIndex) OVERRIDE; 79 virtual void clearFrameBuffer(size_t frameIndex) OVERRIDE;
77 80
78 WebPDemuxer* m_demux; 81 WebPDemuxer* m_demux;
79 WebPDemuxState m_demuxState; 82 WebPDemuxState m_demuxState;
80 bool m_haveAlreadyParsedThisData; 83 bool m_haveAlreadyParsedThisData;
81 bool m_haveReadAnimationParameters; 84 bool m_haveReadAnimationParameters;
82 int m_repetitionCount; 85 int m_repetitionCount;
83 int m_decodedHeight; 86 int m_decodedHeight;
84 87
85 typedef void (*AlphaBlendFunction)(ImageFrame&, ImageFrame&, int, int, int); 88 typedef void (*AlphaBlendFunction)(ImageFrame&, ImageFrame&, int, int, int);
86 AlphaBlendFunction m_blendFunction; 89 AlphaBlendFunction m_blendFunction;
87 90
88 void clear(); 91 void clear();
89 void clearDecoder(); 92 void clearDecoder();
90 }; 93 };
91 94
92 } // namespace WebCore 95 } // namespace WebCore
93 96
94 #endif 97 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698