code: def test_properties(test_images: Path):
      with iio.imopen(
          str(test_images / "cockatoo.mp4"), "r", plugin="pyav"
      ) as plugin:
          with pytest.raises(IOError):
              # subsampled format
              plugin.properties(format="yuv420p")
  
          with pytest.raises(IOError):
              # components per channel differs
              plugin.properties(format="nv24")
  
          props = plugin.properties()
          assert props.shape == (280, 720, 1280, 3)
          assert props.dtype == np.uint8
          assert props.n_images == 280
          assert props.is_batch is True
  
          props = plugin.properties(index=4, format="rgb48")
          assert props.shape == (720, 1280, 3)
          assert props.dtype == np.uint16
          assert props.n_images is None
          assert props.is_batch is False
  
          props = plugin.properties(index=5)
          assert props.shape == (720, 1280, 3)
          assert props.dtype == np.uint8
          assert props.n_images is None
          assert props.is_batch is False
  
imports: import io
  import warnings
  from contextlib import ExitStack
  from pathlib import Path
  import numpy
  import pytest
  from conftest import IS_PYPY
  import imageio.v3
  from av.video.format import names
  from imageio.plugins.pyav import _format_to_dtype
label_desc: Use image node_id 5 for calling a global function with example usage: test_properties(test_images) without return types