static InnerAccessUnit insertDecodingTime(InnerAccessUnit current, InnerAccessUnit previous) {
    int DeltaTfiDivisorIdx;
    if (!current.sliceHeaders.get(0).sps.vuiParams.pic_struct_present_flag) {
      DeltaTfiDivisorIdx = 1 + (1 - (!current.sliceHeaders.get(0).field_pic_flag ? 0 : 1));
    } else {
      throw new UnsupportedOperationException("Hmm I cannot deal with picTimingSei");
      // get details here
      // D.1.2 Picture timing SEI message syntax

      /*SEI.SEIMessage picTimingSei = null;
      for (SEI.SEIMessage message : current.sei.messages) {
          if (message.payloadType == 1) {
              picTimingSei = message;
          }
      }
      if (picTimingSei != null) {

          if (!avc.sei.pic_timing.pic_struct)
              DeltaTfiDivisorIdx = 2;
          else if (avc.sei.pic_timing.pic_struct == 8)
             DeltaTfiDivisorIdx = 6;
           else
           DeltaTfiDivisorIdx = (avc.sei.pic_timing.pic_struct + 1) / 2;
      } */
    }

    current.decodingTime =
        previous.decodingTime
            + 2 * current.sliceHeaders.get(0).sps.vuiParams.num_units_in_tick * DeltaTfiDivisorIdx;
    // System.err.print("FPS: " + 2 * current.sliceHeaders.get(0).sps.vuiParams.time_scale);
    return current;
  }