Commit ed83a6d0 for libheif
commit ed83a6d0acf09422bf8555122b228176880a3aa2
Merge: a1de57a6 3091af2e
Author: Dirk Farin <dirk.farin@gmail.com>
Date: Sun Dec 21 23:24:49 2025 +0100
Merge branch 'master' into text_elng_2025-07-22
diff --cc libheif/Doxyfile.in
index 894a8bbb,6d3d4059..0d6c1308
--- a/libheif/Doxyfile.in
+++ b/libheif/Doxyfile.in
@@@ -856,10 -856,12 +856,13 @@@ WARN_LOGFILE
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
- INPUT = @CMAKE_CURRENT_SOURCE_DIR@/libheif/api/libheif/heif.h \
+ INPUT = @CMAKE_CURRENT_SOURCE_DIR@/libheif/api/libheif/heif.h \
@CMAKE_CURRENT_SOURCE_DIR@/libheif/api/libheif/heif_items.h \
-@CMAKE_CURRENT_SOURCE_DIR@/libheif/api/libheif/heif_library.h \
@CMAKE_CURRENT_SOURCE_DIR@/libheif/api/libheif/heif_regions.h \
+@CMAKE_CURRENT_SOURCE_DIR@/libheif/api/libheif/heif_text.h
++@CMAKE_CURRENT_SOURCE_DIR@/libheif/api/libheif/heif_library.h \
+ @CMAKE_CURRENT_SOURCE_DIR@/libheif/api/libheif/heif_encoding.h \
+ @CMAKE_CURRENT_SOURCE_DIR@/libheif/api/libheif/heif_sequences.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --cc libheif/api/libheif/heif_text.cc
index fc24afbf,12273421..0b44d692
--- a/libheif/api/libheif/heif_text.cc
+++ b/libheif/api/libheif/heif_text.cc
@@@ -26,11 -25,10 +26,11 @@@
#include <algorithm>
#include <cstring>
#include <memory>
-#include <utility>
#include <string>
+#include <utility>
+#include <vector>
- struct heif_error heif_image_handle_add_text_item(heif_image_handle *image_handle,
+ heif_error heif_image_handle_add_text_item(heif_image_handle *image_handle,
const char *content_type,
const char *text,
heif_text_item** out_text_item)
diff --cc libheif/box.cc
index f2b41cb9,b47f289e..27602ff7
--- a/libheif/box.cc
+++ b/libheif/box.cc
@@@ -4995,30 -5048,33 +5053,62 @@@ Error Box_itai::parse(BitstreamRange& r
return range.get_error();
}
+Error Box_elng::parse(BitstreamRange& range, const heif_security_limits* limits)
+{
+ parse_full_box_header(range);
+
+ if (get_version() > 0) {
+ return unsupported_version_error("elng");
+ }
+
+ m_lang = range.read_string();
+ return range.get_error();
+}
+
+std::string Box_elng::dump(Indent& indent) const
+{
+ std::ostringstream sstr;
+ sstr << Box::dump(indent);
+ sstr << indent << "extended_language: " << m_lang << "\n";
+ return sstr.str();
+}
+
+Error Box_elng::write(StreamWriter& writer) const
+{
+ size_t box_start = reserve_box_header_space(writer);
+ writer.write(m_lang);
+ prepend_header(writer, box_start);
+ return Error::Ok;
+}
++
+
+ Error Box_gimi_content_id::parse(BitstreamRange& range, const heif_security_limits* limits)
+ {
+ m_content_id = range.read_string_until_eof();
+
+ return range.get_error();
+ }
+
+
+ Error Box_gimi_content_id::write(StreamWriter& writer) const
+ {
+ size_t box_start = reserve_box_header_space(writer);
+
+ writer.write(m_content_id, false);
+
+ prepend_header(writer, box_start);
+
+ return Error::Ok;
+ }
+
+
+ std::string Box_gimi_content_id::dump(Indent& indent) const
+ {
+ std::ostringstream sstr;
+ sstr << Box::dump(indent);
+
+ sstr << indent << "content ID: " << m_content_id << "\n";
+
+ return sstr.str();
+ }
++