)]}'
{
  "commit": "87a83f9012ffa6f12ac113faee9db3bf9d267b4e",
  "tree": "6138e18ec1694d62d1bb76e390d9bd9b9ea40232",
  "parents": [
    "c0663f1584256b2ddbc2330704db1147d8076f86"
  ],
  "author": {
    "name": "Jonas Larsson",
    "email": "ljonas@google.com",
    "time": "Tue Sep 24 10:14:22 2019 -0700"
  },
  "committer": {
    "name": "Jonas Larsson",
    "email": "ljonas@google.com",
    "time": "Tue Sep 24 10:59:40 2019 -0700"
  },
  "message": "buffer: Free memory before meta.\n\nFollowup to \"Add GstParentBufferMeta to copied buffer sharing memory\",\nwhich is a workaround to design issues in NXP\u0027s vpudec. There are\ncases where vpudec will still see new buffers coming out of its buffer\npool while it\u0027s running, which causes it to error out. One such\ncase is\n\nvpudec ! glupload ! tee name\u003dt\n  t. ! queue leaky\u003ddownstream ! ...\n  t. ! sink\n\nWhen the queue leaks a buffer it makes the next buffer writable to\nmark it DISCONT. If the buffer is also in use elsewhere in the tee\na copy of the buffer will be made and the original memories attached.\nWhen original returns to the pool and copy is still alive pool will\ndiscard the buffer as memory isn\u0027t considered writable. Pool instead\nallocates a new buffer for vpudec mid operation, which it\u0027s not\ndesigned to handle and it falls over. Fixing vpudec is non-trivial,\ninstead make sure that any buffer copies outlives the original\nand that we free memories before the metas that keeps the original\nalive.\n\nThis is a NXP specific workaround and is not suitable for upstream.\n\nChange-Id: I6bfbc5cc45342b79c1deddb2f416f823090806d1\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d0f9c6d815a5920c8d22a95e24edb6c1555b1b9f",
      "old_mode": 33188,
      "old_path": "gst/gstbuffer.c",
      "new_id": "0a8f7498daff2128daa23d6f7476381c94a5827c",
      "new_mode": 33188,
      "new_path": "gst/gstbuffer.c"
    }
  ]
}
