Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Macros | Functions | Variables
SkJpegMultiPicture.cpp File Reference
#include "src/codec/SkJpegMultiPicture.h"
#include "include/core/SkData.h"
#include "include/core/SkStream.h"
#include "src/base/SkEndian.h"
#include "src/codec/SkCodecPriv.h"
#include "src/codec/SkJpegConstants.h"
#include "src/codec/SkJpegSegmentScan.h"
#include "src/codec/SkTiffUtility.h"
#include <cstring>

Go to the source code of this file.

Macros

#define WRITE_UINT16(value)
 
#define WRITE_UINT32(value)
 

Functions

size_t multi_picture_params_serialized_size (size_t numberOfImages)
 

Variables

constexpr size_t kMpEndianSize = 4
 
constexpr uint8_t kMpBigEndian [kMpEndianSize] = {0x4D, 0x4D, 0x00, 0x2A}
 
constexpr uint16_t kTypeUnsignedLong = 0x4
 
constexpr uint16_t kTypeUndefined = 0x7
 
constexpr uint32_t kIfdEntrySize = 12
 
constexpr uint32_t kIfdSerializedEntryCount = 3
 
constexpr uint16_t kVersionTag = 0xB000
 
constexpr uint32_t kVersionCount = 4
 
constexpr size_t kVersionSize = 4
 
constexpr uint8_t kVersionExpected [kVersionSize] = {'0', '1', '0', '0'}
 
constexpr uint16_t kNumberOfImagesTag = 0xB001
 
constexpr uint32_t kNumberOfImagesCount = 1
 
constexpr uint16_t kMPEntryTag = 0xB002
 
constexpr uint32_t kMPEntrySize = 16
 
constexpr uint32_t kMPEntryAttributeFormatMask = 0x7000000
 
constexpr uint32_t kMPEntryAttributeFormatJpeg = 0x0000000
 
constexpr uint32_t kMPEntryAttributeTypeMask = 0xFFFFFF
 
constexpr uint32_t kMPEntryAttributeTypePrimary = 0x030000
 
constexpr uint16_t kIndividualImageUniqueIDTag = 0xB003
 
constexpr uint32_t kIndividualImageUniqueIDSize = 33
 
constexpr uint16_t kTotalNumberCapturedFramesTag = 0xB004
 

Macro Definition Documentation

◆ WRITE_UINT16

#define WRITE_UINT16 (   value)
Value:
do { \
if (!s.write16(SkEndian_SwapBE16(value))) { \
return nullptr; \
} \
} while (0)
#define SkEndian_SwapBE16(n)
Definition SkEndian.h:135
struct MyStruct s

Definition at line 236 of file SkJpegMultiPicture.cpp.

237 { \
238 if (!s.write16(SkEndian_SwapBE16(value))) { \
239 return nullptr; \
240 } \
241 } while (0)

◆ WRITE_UINT32

#define WRITE_UINT32 (   value)
Value:
do { \
if (!s.write32(SkEndian_SwapBE32(value))) { \
return nullptr; \
} \
} while (0)
#define SkEndian_SwapBE32(n)
Definition SkEndian.h:136

Definition at line 243 of file SkJpegMultiPicture.cpp.

244 { \
245 if (!s.write32(SkEndian_SwapBE32(value))) { \
246 return nullptr; \
247 } \
248 } while (0)

Function Documentation

◆ multi_picture_params_serialized_size()

size_t multi_picture_params_serialized_size ( size_t  numberOfImages)

Definition at line 224 of file SkJpegMultiPicture.cpp.

224 {
225 return sizeof(kMpfSig) + // Signature
226 kMpEndianSize + // Endianness
227 sizeof(uint32_t) + // Index IFD Offset
228 sizeof(uint16_t) + // IFD entry count
229 kIfdSerializedEntryCount * kIfdEntrySize + // 3 IFD entries at 12 bytes each
230 sizeof(uint32_t) + // Attribute IFD offset
231 numberOfImages * kMPEntrySize; // MP Entries for each image
232}
static constexpr uint8_t kMpfSig[]
constexpr uint32_t kIfdEntrySize
constexpr size_t kMpEndianSize
constexpr uint32_t kIfdSerializedEntryCount
constexpr uint32_t kMPEntrySize

Variable Documentation

◆ kIfdEntrySize

constexpr uint32_t kIfdEntrySize = 12
constexpr

Definition at line 26 of file SkJpegMultiPicture.cpp.

◆ kIfdSerializedEntryCount

constexpr uint32_t kIfdSerializedEntryCount = 3
constexpr

Definition at line 27 of file SkJpegMultiPicture.cpp.

◆ kIndividualImageUniqueIDSize

constexpr uint32_t kIndividualImageUniqueIDSize = 33
constexpr

Definition at line 47 of file SkJpegMultiPicture.cpp.

◆ kIndividualImageUniqueIDTag

constexpr uint16_t kIndividualImageUniqueIDTag = 0xB003
constexpr

Definition at line 46 of file SkJpegMultiPicture.cpp.

◆ kMpBigEndian

constexpr uint8_t kMpBigEndian[kMpEndianSize] = {0x4D, 0x4D, 0x00, 0x2A}
constexpr

Definition at line 21 of file SkJpegMultiPicture.cpp.

21{0x4D, 0x4D, 0x00, 0x2A};

◆ kMpEndianSize

constexpr size_t kMpEndianSize = 4
constexpr

Definition at line 20 of file SkJpegMultiPicture.cpp.

◆ kMPEntryAttributeFormatJpeg

constexpr uint32_t kMPEntryAttributeFormatJpeg = 0x0000000
constexpr

Definition at line 41 of file SkJpegMultiPicture.cpp.

◆ kMPEntryAttributeFormatMask

constexpr uint32_t kMPEntryAttributeFormatMask = 0x7000000
constexpr

Definition at line 40 of file SkJpegMultiPicture.cpp.

◆ kMPEntryAttributeTypeMask

constexpr uint32_t kMPEntryAttributeTypeMask = 0xFFFFFF
constexpr

Definition at line 43 of file SkJpegMultiPicture.cpp.

◆ kMPEntryAttributeTypePrimary

constexpr uint32_t kMPEntryAttributeTypePrimary = 0x030000
constexpr

Definition at line 44 of file SkJpegMultiPicture.cpp.

◆ kMPEntrySize

constexpr uint32_t kMPEntrySize = 16
constexpr

Definition at line 38 of file SkJpegMultiPicture.cpp.

◆ kMPEntryTag

constexpr uint16_t kMPEntryTag = 0xB002
constexpr

Definition at line 37 of file SkJpegMultiPicture.cpp.

◆ kNumberOfImagesCount

constexpr uint32_t kNumberOfImagesCount = 1
constexpr

Definition at line 35 of file SkJpegMultiPicture.cpp.

◆ kNumberOfImagesTag

constexpr uint16_t kNumberOfImagesTag = 0xB001
constexpr

Definition at line 34 of file SkJpegMultiPicture.cpp.

◆ kTotalNumberCapturedFramesTag

constexpr uint16_t kTotalNumberCapturedFramesTag = 0xB004
constexpr

Definition at line 49 of file SkJpegMultiPicture.cpp.

◆ kTypeUndefined

constexpr uint16_t kTypeUndefined = 0x7
constexpr

Definition at line 24 of file SkJpegMultiPicture.cpp.

◆ kTypeUnsignedLong

constexpr uint16_t kTypeUnsignedLong = 0x4
constexpr

Definition at line 23 of file SkJpegMultiPicture.cpp.

◆ kVersionCount

constexpr uint32_t kVersionCount = 4
constexpr

Definition at line 30 of file SkJpegMultiPicture.cpp.

◆ kVersionExpected

constexpr uint8_t kVersionExpected[kVersionSize] = {'0', '1', '0', '0'}
constexpr

Definition at line 32 of file SkJpegMultiPicture.cpp.

32{'0', '1', '0', '0'};

◆ kVersionSize

constexpr size_t kVersionSize = 4
constexpr

Definition at line 31 of file SkJpegMultiPicture.cpp.

◆ kVersionTag

constexpr uint16_t kVersionTag = 0xB000
constexpr

Definition at line 29 of file SkJpegMultiPicture.cpp.