blob: 6b58c3c16dd6ac4ee1e3447ab74e85c3a7f52565 [file] [log] [blame]
kumarashishg826308d2023-06-23 13:21:22 +00001// Copyright 2020 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef CORE_FXCODEC_GIF_GIF_PROGRESSIVE_DECODER_H_
8#define CORE_FXCODEC_GIF_GIF_PROGRESSIVE_DECODER_H_
9
10#include "core/fxcodec/progressive_decoder_iface.h"
11#include "third_party/base/no_destructor.h"
12
13#ifndef PDF_ENABLE_XFA_GIF
14#error "GIF must be enabled"
15#endif
16
17namespace fxcodec {
18
19class GifProgressiveDecoder final : public ProgressiveDecoderIface {
20 public:
21 static GifProgressiveDecoder* GetInstance();
22
23 // ProgressiveDecoderIface:
24 FX_FILESIZE GetAvailInput(Context* context) const override;
25 bool Input(Context* context,
26 RetainPtr<CFX_CodecMemory> codec_memory) override;
27
28 private:
29 friend pdfium::base::NoDestructor<GifProgressiveDecoder>;
30
31 GifProgressiveDecoder();
32 ~GifProgressiveDecoder() override;
33};
34
35} // namespace fxcodec
36
37using GifProgressiveDecoder = fxcodec::GifProgressiveDecoder;
38
39#endif // CORE_FXCODEC_GIF_GIF_PROGRESSIVE_DECODER_H_