private Bitmap allocateBitmap(RectF bounds, Bitmap.Config cfg) {
    // Add 5% to the width and height before allocating. This avoids repeated
    // reallocations in the worst cases of a bitmap growing every frame, while
    // still being relatively speedy to blit and operate on.
    int width = (int)Math.ceil(bounds.width() * 1.05);
    int height = (int)Math.ceil(bounds.height() * 1.05);

    // In certain cases the provided bounds can have a width or height of 0, which will cause a runtime crash
    // when we try to allocate a Bitmap. To guard against this, use a minimum size of 1x1.
    // See https://github.com/airbnb/lottie-android/issues/2620
    return Bitmap.createBitmap(Math.max(width, 1), Math.max(height, 1), cfg);
  }
parentCanvas' pre-existing matrix when start() was called
lottie/src/main/java/com/airbnb/lottie/utils/OffscreenLayer.java