Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
cfx_gifcontext.h
Go to the documentation of this file.
1
// Copyright 2017 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_CFX_GIFCONTEXT_H_
8
#
define
CORE_FXCODEC_GIF_CFX_GIFCONTEXT_H_
9
10
#
include
<
memory
>
11
#
include
<
vector
>
12
13
#
include
"core/fxcodec/gif/cfx_gif.h"
14
#
include
"core/fxcodec/gif/gif_decoder.h"
15
#
include
"core/fxcodec/gif/lzw_decompressor.h"
16
#
include
"core/fxcrt/compiler_specific.h"
17
#
include
"core/fxcrt/retain_ptr.h"
18
#
include
"core/fxcrt/span.h"
19
#
include
"core/fxcrt/unowned_ptr.h"
20
21
class
CFX_CodecMemory;
22
23
namespace
fxcodec
{
24
25
class
CFX_GifContext
:
public
ProgressiveDecoderIface
::
Context
{
26
public
:
27
explicit
CFX_GifContext
(
GifDecoder
::
Delegate
* delegate);
28
~
CFX_GifContext
() override;
29
30
void
ReadScanline
(int32_t row_num, pdfium::span<uint8_t> row_buf);
31
bool
GetRecordPosition
(uint32_t cur_pos,
32
int32_t left,
33
int32_t top,
34
int32_t width,
35
int32_t height,
36
pdfium::span<CFX_GifPalette> pal,
37
int32_t trans_index,
38
bool
interlace);
39
GifDecoder
::
Status
ReadHeader
();
40
GifDecoder
::
Status
GetFrame
();
41
GifDecoder
::
Status
LoadFrame
(size_t frame_num);
42
void
SetInputBuffer
(
RetainPtr
<CFX_CodecMemory> codec_memory);
43
uint32_t
GetAvailInput
()
const
;
44
size_t
GetFrameNum
()
const
{
return
images_.size(); }
45
46
UnownedPtr
<
GifDecoder
::
Delegate
>
const
delegate_
;
47
std
::
vector
<
CFX_GifPalette
>
global_palette_
;
48
uint8_t
global_palette_exp_
= 0;
49
uint32_t
img_row_offset_
= 0;
50
uint32_t
img_row_avail_size_
= 0;
51
int32_t
decode_status_
=
GIF_D_STATUS_SIG
;
52
std
::
unique_ptr
<
CFX_GifGraphicControlExtension
>
graphic_control_extension_
;
53
std
::
vector
<
std
::
unique_ptr
<
CFX_GifImage
>>
images_
;
54
std
::
unique_ptr
<
LZWDecompressor
>
lzw_decompressor_
;
55
int
width_
= 0;
56
int
height_
= 0;
57
uint8_t
bc_index_
= 0;
58
uint8_t
global_sort_flag_
= 0;
59
uint8_t
global_color_resolution_
= 0;
60
uint8_t
img_pass_num_
= 0;
61
62
protected
:
63
bool
ReadAllOrNone
(pdfium::span<uint8_t> dest);
64
GifDecoder
::
Status
ReadGifSignature
();
65
GifDecoder
::
Status
ReadLogicalScreenDescriptor
();
66
67
RetainPtr
<CFX_CodecMemory>
input_buffer_
;
68
69
private
:
70
void
SaveDecodingStatus(int32_t status);
71
GifDecoder
::
Status
DecodeExtension();
72
GifDecoder
::
Status
DecodeImageInfo();
73
void
DecodingFailureAtTailCleanup(
CFX_GifImage
* gif_image);
74
bool
ScanForTerminalMarker();
75
uint8_t GetPaletteExp(
CFX_GifImage
* gif_image)
const
;
76
};
77
78
}
// namespace fxcodec
79
80
#
endif
// CORE_FXCODEC_GIF_CFX_GIFCONTEXT_H_
GIF_SIG_EXTENSION
#define GIF_SIG_EXTENSION
Definition
cfx_gif.h:20
GIF_BLOCK_GCE
#define GIF_BLOCK_GCE
Definition
cfx_gif.h:23
GIF_D_STATUS_TAIL
#define GIF_D_STATUS_TAIL
Definition
cfx_gif.h:30
GIF_D_STATUS_EXT
#define GIF_D_STATUS_EXT
Definition
cfx_gif.h:31
GIF_D_STATUS_EXT_UNE
#define GIF_D_STATUS_EXT_UNE
Definition
cfx_gif.h:35
GIF_SIG_TRAILER
#define GIF_SIG_TRAILER
Definition
cfx_gif.h:22
GIF_D_STATUS_EXT_GCE
#define GIF_D_STATUS_EXT_GCE
Definition
cfx_gif.h:33
GIF_SIG_IMAGE
#define GIF_SIG_IMAGE
Definition
cfx_gif.h:21
GIF_D_STATUS_EXT_CE
#define GIF_D_STATUS_EXT_CE
Definition
cfx_gif.h:32
GIF_D_STATUS_SIG
#define GIF_D_STATUS_SIG
Definition
cfx_gif.h:29
GIF_D_STATUS_IMG_INFO
#define GIF_D_STATUS_IMG_INFO
Definition
cfx_gif.h:36
GIF_BLOCK_PTE
#define GIF_BLOCK_PTE
Definition
cfx_gif.h:24
GIF_MAX_LZW_EXP
#define GIF_MAX_LZW_EXP
Definition
cfx_gif.h:27
GIF_BLOCK_TERMINAL
#define GIF_BLOCK_TERMINAL
Definition
cfx_gif.h:26
GIF_BLOCK_CE
#define GIF_BLOCK_CE
Definition
cfx_gif.h:25
GIF_D_STATUS_IMG_DATA
#define GIF_D_STATUS_IMG_DATA
Definition
cfx_gif.h:37
GIF_D_STATUS_EXT_PTE
#define GIF_D_STATUS_EXT_PTE
Definition
cfx_gif.h:34
fxcodec::CFX_GifContext
Definition
cfx_gifcontext.h:25
fxcodec::CFX_GifContext::CFX_GifContext
CFX_GifContext(GifDecoder::Delegate *delegate)
Definition
cfx_gifcontext.cpp:31
fxcodec::CFX_GifContext::graphic_control_extension_
std::unique_ptr< CFX_GifGraphicControlExtension > graphic_control_extension_
Definition
cfx_gifcontext.h:52
fxcodec::CFX_GifContext::global_palette_exp_
uint8_t global_palette_exp_
Definition
cfx_gifcontext.h:48
fxcodec::CFX_GifContext::GetFrame
GifDecoder::Status GetFrame()
Definition
cfx_gifcontext.cpp:61
fxcodec::CFX_GifContext::SetInputBuffer
void SetInputBuffer(RetainPtr< CFX_CodecMemory > codec_memory)
Definition
cfx_gifcontext.cpp:316
fxcodec::CFX_GifContext::~CFX_GifContext
~CFX_GifContext() override
fxcodec::CFX_GifContext::img_pass_num_
uint8_t img_pass_num_
Definition
cfx_gifcontext.h:60
fxcodec::CFX_GifContext::global_sort_flag_
uint8_t global_sort_flag_
Definition
cfx_gifcontext.h:58
fxcodec::CFX_GifContext::LoadFrame
GifDecoder::Status LoadFrame(size_t frame_num)
Definition
cfx_gifcontext.cpp:158
fxcodec::CFX_GifContext::input_buffer_
RetainPtr< CFX_CodecMemory > input_buffer_
Definition
cfx_gifcontext.h:67
fxcodec::CFX_GifContext::GetFrameNum
size_t GetFrameNum() const
Definition
cfx_gifcontext.h:44
fxcodec::CFX_GifContext::height_
int height_
Definition
cfx_gifcontext.h:56
fxcodec::CFX_GifContext::lzw_decompressor_
std::unique_ptr< LZWDecompressor > lzw_decompressor_
Definition
cfx_gifcontext.h:54
fxcodec::CFX_GifContext::img_row_avail_size_
uint32_t img_row_avail_size_
Definition
cfx_gifcontext.h:50
fxcodec::CFX_GifContext::GetRecordPosition
bool GetRecordPosition(uint32_t cur_pos, int32_t left, int32_t top, int32_t width, int32_t height, pdfium::span< CFX_GifPalette > pal, int32_t trans_index, bool interlace)
Definition
cfx_gifcontext.cpp:41
fxcodec::CFX_GifContext::bc_index_
uint8_t bc_index_
Definition
cfx_gifcontext.h:57
fxcodec::CFX_GifContext::width_
int width_
Definition
cfx_gifcontext.h:55
fxcodec::CFX_GifContext::GetAvailInput
uint32_t GetAvailInput() const
Definition
cfx_gifcontext.cpp:320
fxcodec::CFX_GifContext::ReadScanline
void ReadScanline(int32_t row_num, pdfium::span< uint8_t > row_buf)
Definition
cfx_gifcontext.cpp:36
fxcodec::CFX_GifContext::images_
std::vector< std::unique_ptr< CFX_GifImage > > images_
Definition
cfx_gifcontext.h:53
fxcodec::CFX_GifContext::global_palette_
std::vector< CFX_GifPalette > global_palette_
Definition
cfx_gifcontext.h:47
fxcodec::CFX_GifContext::img_row_offset_
uint32_t img_row_offset_
Definition
cfx_gifcontext.h:49
fxcodec::CFX_GifContext::ReadAllOrNone
bool ReadAllOrNone(pdfium::span< uint8_t > dest)
Definition
cfx_gifcontext.cpp:328
fxcodec::CFX_GifContext::ReadHeader
GifDecoder::Status ReadHeader()
Definition
cfx_gifcontext.cpp:54
fxcodec::CFX_GifContext::ReadLogicalScreenDescriptor
GifDecoder::Status ReadLogicalScreenDescriptor()
Definition
cfx_gifcontext.cpp:354
fxcodec::CFX_GifContext::decode_status_
int32_t decode_status_
Definition
cfx_gifcontext.h:51
fxcodec::CFX_GifContext::delegate_
UnownedPtr< GifDecoder::Delegate > const delegate_
Definition
cfx_gifcontext.h:46
fxcodec::CFX_GifContext::global_color_resolution_
uint8_t global_color_resolution_
Definition
cfx_gifcontext.h:59
fxcodec::CFX_GifContext::ReadGifSignature
GifDecoder::Status ReadGifSignature()
Definition
cfx_gifcontext.cpp:341
fxcodec::GifDecoder::Delegate
Definition
gif_decoder.h:32
fxcodec::GifDecoder
Definition
gif_decoder.h:24
fxcodec::GifDecoder::Status
Status
Definition
gif_decoder.h:26
fxcodec::GifDecoder::Status::kUnfinished
@ kUnfinished
Definition
gif_decoder.h:29
fxcodec::GifDecoder::Status::kSuccess
@ kSuccess
Definition
gif_decoder.h:28
fxcodec::GifDecoder::Status::kError
@ kError
Definition
gif_decoder.h:27
fxcodec::LZWDecompressor
Definition
lzw_decompressor.h:23
fxcodec::LZWDecompressor::Status
Status
Definition
lzw_decompressor.h:25
fxcodec::LZWDecompressor::Status::kUnfinished
@ kUnfinished
Definition
lzw_decompressor.h:28
fxcodec::LZWDecompressor::Status::kSuccess
@ kSuccess
Definition
lzw_decompressor.h:27
fxcodec::LZWDecompressor::Status::kInsufficientDestSize
@ kInsufficientDestSize
Definition
lzw_decompressor.h:29
fxcodec::LZWDecompressor::Status::kError
@ kError
Definition
lzw_decompressor.h:26
fxcodec::ProgressiveDecoderIface::Context
Definition
progressive_decoder_iface.h:23
fxcodec::ProgressiveDecoderIface
Definition
progressive_decoder_iface.h:21
fxcrt::RetainPtr
Definition
retain_ptr.h:28
fxcrt::UnownedPtr
Definition
unowned_ptr.h:76
pdfium::CFDETextOutLargeBitmapTest
Definition
cfde_textout_unittest.cpp:117
UNSAFE_TODO
#define UNSAFE_TODO(...)
Definition
compiler_specific.h:102
fxcodec
Definition
fpdf_parser_decode.h:28
fxcrt
Definition
stl_util.h:17
fxcrt::FromLE16
uint16_t FromLE16(uint16_t x)
Definition
byteorder.h:56
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
CFX_GifGlobalFlags::global_pal
uint8_t global_pal
Definition
cfx_gif.h:44
CFX_GifGlobalFlags::color_resolution
uint8_t color_resolution
Definition
cfx_gif.h:43
CFX_GifGlobalFlags::sort_flag
uint8_t sort_flag
Definition
cfx_gif.h:42
CFX_GifGlobalFlags::pal_bits
uint8_t pal_bits
Definition
cfx_gif.h:41
CFX_GifGraphicControlExtension
Definition
cfx_gif.h:82
CFX_GifHeader
Definition
cfx_gif.h:55
CFX_GifImageInfo
Definition
cfx_gif.h:67
CFX_GifImageInfo::height
uint16_t height
Definition
cfx_gif.h:71
CFX_GifImageInfo::top
uint16_t top
Definition
cfx_gif.h:69
CFX_GifImageInfo::left
uint16_t left
Definition
cfx_gif.h:68
CFX_GifImageInfo::width
uint16_t width
Definition
cfx_gif.h:70
CFX_GifImageInfo::local_flags
CFX_GifLocalFlags local_flags
Definition
cfx_gif.h:72
CFX_GifImage
Definition
cfx_gif.h:114
CFX_GifImage::code_exp
uint8_t code_exp
Definition
cfx_gif.h:123
CFX_GifImage::image_info
CFX_GifImageInfo image_info
Definition
cfx_gif.h:121
CFX_GifImage::local_palette_exp
uint8_t local_palette_exp
Definition
cfx_gif.h:122
CFX_GifImage::row_num
int32_t row_num
Definition
cfx_gif.h:125
CFX_GifLocalFlags
Definition
cfx_gif.h:47
CFX_GifLocalFlags::local_pal
uint8_t local_pal
Definition
cfx_gif.h:52
CFX_GifLocalFlags::interlace
uint8_t interlace
Definition
cfx_gif.h:51
CFX_GifLocalFlags::pal_bits
uint8_t pal_bits
Definition
cfx_gif.h:48
CFX_GifLocalScreenDescriptor
Definition
cfx_gif.h:59
CFX_GifLocalScreenDescriptor::height
uint16_t height
Definition
cfx_gif.h:61
CFX_GifLocalScreenDescriptor::width
uint16_t width
Definition
cfx_gif.h:60
CFX_GifLocalScreenDescriptor::global_flags
CFX_GifGlobalFlags global_flags
Definition
cfx_gif.h:62
CFX_GifLocalScreenDescriptor::bc_index
uint8_t bc_index
Definition
cfx_gif.h:63
CFX_GifPlainTextExtension
Definition
cfx_gif.h:89
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fxcodec
gif
cfx_gifcontext.h
Generated on
for Qt by
1.18.0