)]}'
{
  "commit": "cbb391c194ee15cf9607e517c269ed99e6bf0197",
  "tree": "261aaefef45a6a2513b38cfa2b90df42a9091987",
  "parents": [
    "062e582e8afda88e6baf988fdcf046a801efa0f5"
  ],
  "author": {
    "name": "Nexory",
    "email": "St4yl3r30@hotmail.de",
    "time": "Wed Aug 26 14:47:18 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Aug 26 14:47:18 2026 +0200"
  },
  "message": "Keep every target of a track \u0027auxl\u0027 or \u0027prem\u0027 reference (#3335)\n\navifTrackReferenceBox() lost track references in two ways. It read one\ntrack_ID and skipped the rest of the box, and it assigned the result\nunconditionally, so a second \u0027auxl\u0027 box overwrote what the first one had\nrecorded. avifParseTrackBox() keeps a seen flag for \u0027tkhd\u0027 and \u0027edts\u0027 but\nnot for \u0027tref\u0027, so several \u0027tref\u0027 boxes in one \u0027trak\u0027 did the same.\n\nSection 8.3.3.2 of ISO/IEC 14496-12 gives TrackReferenceTypeBox an array\nof track_IDs with no count field, so the number of entries follows from\nthe box size.\n\nauxForID is compared against colorTrack-\u003eid when the alpha track is looked\nup. If the color track was not the target that survived, the lookup found\nnothing, alphaTrack stayed null and alphaPresent was false, with no\ndiagnostic and no error code. premByID has the same shape, with\nalphaPremultiplied as its consumer.\n\nGive avifTrack the reference array that avifDecoderItem already has, read\ntrack_IDs until the box runs out, and ask the same helpers. Those helpers\nare renamed and now take the array instead of the item so tracks can use\nthem unchanged, which is why the item call sites move.\n\nA track_ID of 0 is skipped rather than recorded: auxForID was an in-band\nsentinel where 0 meant \"no reference\", and ISO/IEC 14496-12 does not allow\na track_ID of 0.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "311c1d3ad094e5bd8ff093a8c432eb146aa7760a",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "02db6ac2563de658a1ee7b151b725d5a95e2eb08",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "e92136988568c33a715c944c764899807fd2f6bb",
      "old_mode": 33188,
      "old_path": "src/read.c",
      "new_id": "3dc988b50ab3de8f5fe69565b9dc9d0f19cfd99f",
      "new_mode": 33188,
      "new_path": "src/read.c"
    },
    {
      "type": "modify",
      "old_id": "22c5fda5f850f97aeb5d66f412e518444e83f0f4",
      "old_mode": 33188,
      "old_path": "tests/gtest/avifanimationtest.cc",
      "new_id": "5e67583708d695ebe2affdc6d34aa0e47cccb595",
      "new_mode": 33188,
      "new_path": "tests/gtest/avifanimationtest.cc"
    }
  ]
}
