21 #ifndef LIBHEIF_HEIF_FILE_H
22 #define LIBHEIF_HEIF_FILE_H
24 #if defined(HAVE_CONFIG_H)
36 #if ENABLE_PARALLEL_TILE_DECODING
77 auto iter = m_infe_boxes.find(imageID);
78 if (iter == m_infe_boxes.end()) {
92 std::vector<Box_ipco::Property>& properties)
const;
123 std::vector<heif_item_id> to);
130 #if ENABLE_PARALLEL_TILE_DECODING
131 mutable std::mutex m_read_mutex;
134 std::shared_ptr<StreamReader> m_input_stream;
136 std::vector<std::shared_ptr<Box> > m_top_level_boxes;
138 std::shared_ptr<Box_ftyp> m_ftyp_box;
139 std::shared_ptr<Box_hdlr> m_hdlr_box;
140 std::shared_ptr<Box_meta> m_meta_box;
142 std::shared_ptr<Box_ipco> m_ipco_box;
143 std::shared_ptr<Box_ipma> m_ipma_box;
144 std::shared_ptr<Box_iloc> m_iloc_box;
145 std::shared_ptr<Box_idat> m_idat_box;
146 std::shared_ptr<Box_iref> m_iref_box;
147 std::shared_ptr<Box_pitm> m_pitm_box;
148 std::shared_ptr<Box_iinf> m_iinf_box;
150 std::shared_ptr<Box_iprp> m_iprp_box;
152 std::map<heif_item_id, std::shared_ptr<Box_infe> > m_infe_boxes;
160 std::shared_ptr<Box_infe> get_infe(
heif_item_id ID)
const;
Definition: bitstream.h:134
Definition: heif_file.h:47
Error read_from_memory(const void *data, size_t size, bool copy)
int get_num_images() const
Definition: heif_file.h:60
std::shared_ptr< Box_infe > add_new_infe_box(const char *item_type)
std::string debug_dump_boxes() const
std::string get_content_type(heif_item_id ID) const
void add_hvcC_property(heif_item_id id)
Error get_compressed_image_data(heif_item_id ID, std::vector< uint8_t > *out_data) const
Error append_hvcC_nal_data(heif_item_id id, const uint8_t *data, size_t size)
int get_chroma_bits_per_pixel_from_configuration(heif_item_id imageID) const
void add_iref_reference(heif_item_id from, uint32_t type, std::vector< heif_item_id > to)
heif_item_id add_new_image(const char *item_type)
std::shared_ptr< Box_iref > get_iref_box()
Definition: heif_file.h:85
std::string get_item_type(heif_item_id ID) const
int get_luma_bits_per_pixel_from_configuration(heif_item_id imageID) const
heif_item_id get_primary_image_ID() const
Definition: heif_file.h:62
std::shared_ptr< Box_ipco > get_ipco_box()
Definition: heif_file.h:87
void append_iloc_data_with_4byte_size(heif_item_id id, const uint8_t *data, size_t size)
Error read_from_file(const char *input_filename)
void set_auxC_property(heif_item_id id, std::string type)
void append_iloc_data(heif_item_id id, const std::vector< uint8_t > &nal_packets)
void set_primary_item_id(heif_item_id id)
Error read(std::shared_ptr< StreamReader > reader)
void write(StreamWriter &writer)
void set_color_profile(heif_item_id id, const std::shared_ptr< const color_profile > profile)
Error append_hvcC_nal_data(heif_item_id id, const std::vector< uint8_t > &data)
std::shared_ptr< Box_ipma > get_ipma_box()
Definition: heif_file.h:89
void add_ispe_property(heif_item_id id, uint32_t width, uint32_t height)
Error get_properties(heif_item_id imageID, std::vector< Box_ipco::Property > &properties) const
heif_item_id get_unused_item_id() const
bool image_exists(heif_item_id ID) const
Error set_hvcC_configuration(heif_item_id id, const Box_hvcC::configuration &config)
std::vector< heif_item_id > get_item_IDs() const
heif_chroma get_image_chroma_from_configuration(heif_item_id imageID) const
std::shared_ptr< Box_infe > get_infe_box(heif_item_id imageID)
Definition: heif_file.h:76
Definition: bitstream.h:256
heif_chroma
Definition: heif.h:722
uint32_t heif_item_id
Definition: heif.h:276
Definition: bitstream.h:41