..
  autogenerated from source/_templates/autosummary/io_class.rst

{#-
    ################################################################################
    # autosummary template for torchaudio.io module
    # Since StreamReader/StreamWriter have many methods/properties,
    # we want to list them up in the table of contents.
    # The default class template does not do this, so we use custom one here.
    ################################################################################
#}

{{ name | underline }}

.. autoclass:: {{ fullname }}

{%- if attributes %}

Properties
----------

{%- for item in attributes %}
{%- if not item.startswith('_') and item not in inherited_members %}

{{ item | underline("~") }}

.. container:: py attribute

   .. autoproperty:: {{[fullname, item] | join('.')}}

{%- endif %}
{%- endfor %}
{%- endif %}

{%- if members %}

Methods
-------

{%- for item in members %}
{%- if
   not item.startswith('_')
   and item not in inherited_members
   and item not in attributes
   %}

{{ item | underline("~") }}

.. container:: py attribute

   .. automethod:: {{[fullname, item] | join('.')}}

{%- endif %}
{%- endfor %}
{%- endif %}


{%- if name in ["StreamReader", "StreamWriter"] %}

Support Structures
------------------

{%- if name == "StreamReader" %}
{%- for item in [
    "ChunkTensor",
    "SourceStream",
    "SourceAudioStream",
    "SourceVideoStream",
    "OutputStream",
    "OutputAudioStream",
    "OutputVideoStream",
] %}

{{ item | underline("~") }}

.. autoclass:: torchaudio.io._stream_reader.{{item}}()
   :members:

{%- endfor %}

{%- elif name == "StreamWriter" %}

CodecConfig
~~~~~~~~~~~

.. autoclass:: torchaudio.io::CodecConfig
   :members:

{%- endif %}
{%- endif %}
