class_docstr: A wrapper for adapting untrimmed annotated clips from the json_dataset to the
  standard `pytorchvideo.data.ClipSampler` expected format. Specifically, for each
  clip it uses the provided `clip_sampler` to sample between "clip_start_sec" and
  "clip_end_sec" from the json_dataset clip annotation.
class_docstr_tok: ["A","wrapper","for","adapting","untrimmed","annotated","clips","from","the","json_dataset","to","the","standard","`","pytorchvideo.data.ClipSampler","`","expected","format",".","Specifically",",","for","each","clip","it","uses","the","provided","`","clip_sampler","`","to","sample","between","``","clip_start_sec","''","and","''","clip_end_sec","''","from","the","json_dataset","clip","annotation","."]
code: def __call__(
      self,
      last_clip_time: float,
      video_duration: float,
      clip_info: Dict[str, Any],
  ) -> ClipInfo:
      clip_start_boundary = clip_info["clip_start_sec"]
      clip_end_boundary = clip_info["clip_end_sec"]
      duration = clip_start_boundary - clip_end_boundary
  
      # Sample between 0 and duration of untrimmed clip, then add back start boundary.
      clip_info = self._trimmed_clip_sampler(
          last_clip_time, duration, clip_info
      )
      return ClipInfo(
          clip_info.clip_start_sec + clip_start_boundary,
          clip_info.clip_end_sec + clip_start_boundary,
          clip_info.clip_index,
          clip_info.aug_index,
          clip_info.is_last_clip,
      )
  
file_path: pytorchvideo/pytorchvideo/data/json_dataset.py
imports: import json
  import logging
  import os
  from typing import Any, Callable, Dict, Optional, Type
  import torch
  from iopath.common.file_io import g_pathmgr
  from pytorchvideo.data.clip_sampling import ClipInfo, ClipSampler
  from pytorchvideo.data.labeled_video_dataset import LabeledVideoDataset
label_desc: Use image node_id 2 for calling the UntrimmedClipSampler obj's underlying member method code with example usage: obj.__call__(last_clip_time, video_duration, clip_info) and returns: ClipInfo