)]}'
{
  "commit": "f7e187d3626f029490b8b619fb80da1b0e77dcfe",
  "tree": "601183902f8c58362b7baa219a6933e803be47e5",
  "parents": [
    "bd05d9e480623536e35b76cf3cfd6b8884d254ba"
  ],
  "author": {
    "name": "John Koleszar",
    "email": "jkoleszar@google.com",
    "time": "Thu Nov 04 15:05:45 2010 -0400"
  },
  "committer": {
    "name": "John Koleszar",
    "email": "jkoleszar@google.com",
    "time": "Fri Nov 05 08:42:46 2010 -0400"
  },
  "message": "improve average framerate calculation\n\nChange Ice204e86 identified a problem with bitrate undershoot due to\nlow precision in the timestamps passed to the library. This patch\ntakes a different approach by calculating the duration of this frame\nand passing it to the library, rather than using a fixed duration\nand letting the library average it out with higher precision\ntimestamps. This part of the fix only applies to vpxenc.\n\nThis patch also attempts to fix the problem for generic applications\nthat may have made the same mistake vpxenc did. Instead of\ncalculating this frame\u0027s duration by the difference of this frame\u0027s\nand the last frame\u0027s start time, we use the end times instead. This\nallows the framerate calculation to scavenge \"unclaimed\" time from\nthe last frame. For instance:\n\n  start |  end  | calculated duration\n  \u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    0ms    33ms   33ms\n   33ms    66ms   33ms\n   66ms    99ms   33ms\n  100ms   133ms   34ms\n\nChange-Id: I92be4b3518e0bd530e97f90e69e75330a4c413fc\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5f02a5a0292bbf336a94d33482404ba571a4ba44",
      "old_mode": 33188,
      "old_path": "vp8/encoder/onyx_if.c",
      "new_id": "bceb58602248062c6fc24e02d1a902807777cef4",
      "new_mode": 33188,
      "new_path": "vp8/encoder/onyx_if.c"
    },
    {
      "type": "modify",
      "old_id": "81e32f031d845995c03a043cdcddab04dc553b55",
      "old_mode": 33188,
      "old_path": "vp8/encoder/onyx_int.h",
      "new_id": "134e03075b67db79d0a8d3deff684ef71c9c81ff",
      "new_mode": 33188,
      "new_path": "vp8/encoder/onyx_int.h"
    },
    {
      "type": "modify",
      "old_id": "032e2e8d8bbda675e49dc9e4c04fb6256b0c1156",
      "old_mode": 33188,
      "old_path": "vpxenc.c",
      "new_id": "b139c682950a4f266341479f288c55b562c2c829",
      "new_mode": 33188,
      "new_path": "vpxenc.c"
    }
  ]
}
