class_docstr: LabeledVideoDataset handles the storage, loading, decoding and clip sampling for a
  video dataset. It assumes each video is stored as either an encoded video
  (e.g. mp4, avi) or a frame video (e.g. a folder of jpg, or png)
class_docstr_tok: ["LabeledVideoDataset","handles","the","storage",",","loading",",","decoding","and","clip","sampling","for","a","video","dataset",".","It","assumes","each","video","is","stored","as","either","an","encoded","video","(","e.g",".","mp4",",","avi",")","or","a","frame","video","(","e.g",".","a","folder","of","jpg",",","or","png",")"]
code: def __iter__(self):
      self._video_sampler_iter = None  # Reset video sampler
  
      # If we're in a PyTorch DataLoader multiprocessing context, we need to use the
      # same seed for each worker's RandomSampler generator. The workers at each
      # __iter__ call are created from the unique value: worker_info.seed - worker_info.id,
      # which we can use for this seed.
      worker_info = torch.utils.data.get_worker_info()
      if (
          self._video_random_generator is not None
          and worker_info is not None
      ):
          base_seed = worker_info.seed - worker_info.id
          self._video_random_generator.manual_seed(base_seed)
  
      return self
  
file_path: pytorchvideo/pytorchvideo/data/labeled_video_dataset.py
imports: from __future__ import annotations
  import gc
  import logging
  from typing import Any, Callable, Dict, List, Optional, Tuple, Type
  import torch.utils.data
  from pytorchvideo.data.clip_sampling import ClipSampler
  from pytorchvideo.data.video import VideoPathHandler
  from .labeled_video_paths import LabeledVideoPaths
  from .utils import MultiProcessSampler
label_desc: Use image node_id 5 for calling the LabeledVideoDataset obj's underlying member method code with example usage: obj.__iter__() and returns: self