Commit 3834467f for libheif

commit 3834467f8cac87a5bcd2452aa9081dfc13c6526c
Author: Dirk Farin <dirk.farin@gmail.com>
Date:   Thu May 28 14:03:38 2026 +0200

    return error during sequence parsing

diff --git a/libheif/sequences/track.cc b/libheif/sequences/track.cc
index db3e00b3..b680c7f6 100644
--- a/libheif/sequences/track.cc
+++ b/libheif/sequences/track.cc
@@ -321,6 +321,8 @@ Error Track::load(const std::shared_ptr<Box_trak>& trak_box)
     };
   }

+  m_ctts = stbl->get_child_box<Box_ctts>();
+
   // --- check that number of samples in various boxes are consistent

   if (m_stts->get_number_of_samples() != m_stsz->num_samples()) {
@@ -508,15 +510,23 @@ Error Track::load(const std::shared_ptr<Box_trak>& trak_box)
             box->get_item_uri_type() == "urn:uuid:15beb8e4-944d-5fc6-a3dd-cb5a7e655c73") {
           heif_item_id id = box->get_item_ID();

+          if (!iloc) {
+            return {
+              heif_error_Invalid_input,
+              heif_suberror_Unspecified,
+              "Track meta references item content-id but file has no 'iloc' box."
+            };
+          }
+
           std::vector<uint8_t> data;
           Error err = iloc->read_data(id, m_heif_context->get_heif_file()->get_reader(), idat, &data, m_heif_context->get_security_limits());
           if (err) {
-            // TODO
+            return err;
           }

-          Result contentIdResult = vector_to_string(data);
+          Result<std::string> contentIdResult = vector_to_string(data);
           if (!contentIdResult) {
-            // TODO
+            return contentIdResult.error();
           }

           m_track_info.gimi_track_content_id = *contentIdResult;