ó
    ‡Ó}jý  ã                   óš   • S SK r S SKJrJr  S SK Jr  S SKJr  S r\ " S S\5      5       r\ " S S	\5      5       r	\ " S
 S\5      5       r
g)é    N)ÚIterableÚIterator)Ú	dataclass)ÚTensorc                 óä   • U R                   R                  S-   nSn[        R                  " U 5       H:  nUR                  n[        X5      nUS:X  a  SnUR                  nX U SU S3-  nM<     U$ )Nz:
z  Údatazdata (shape)z: Ú
)Ú	__class__Ú__name__ÚdataclassesÚfieldsÚnameÚgetattrÚshape)ÚselfÚsÚspacesÚfieldÚ
field_nameÚ	field_vals         ÚŸC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torchcodec/_frame.pyÚ_frame_reprr      s{   € ð 	�‰×Ñ %Ñ'€AØ€FÜ×#Ò# DÖ)ˆØ—Z‘Zˆ
Ü˜DÓ-ˆ	Ø˜ÓØ'ˆJØ!Ÿ™ˆIØ	ˆx˜
�| 2 i [°Ð3Ñ3Šñ *ð €Hó    c                   ód   • \ rS rSr% Sr\\S'    \\S'    \\S'    S rS\	\\-     4S jr
S	 rS
rg)ÚFrameé   z.A single video frame with associated metadata.r   Úpts_secondsÚduration_secondsc                 óæ   • U R                   R                  S:X  d#  [        SU R                   R                  < 35      e[	        U R
                  5      U l        [	        U R                  5      U l        g )Né   z2data must be 3-dimensional, got self.data.shape = )r   ÚndimÚ
ValueErrorr   Úfloatr   r   ©r   s    r   Ú__post_init__ÚFrame.__post_init__*   sV   € ð �y‰y�~‰~ Ó"ÜÐRÀÇ	Á	ÇÁÑ?SÐTÓUÐUÜ  ×!1Ñ!1Ó2ˆÔÜ % d×&;Ñ&;Ó <ˆÕr   Úreturnc              #   ót   #   • [         R                  " U 5       H  n[        XR                  5      v •  M     g 7f©N©r   r   r   r   ©r   r   s     r   Ú__iter__ÚFrame.__iter__2   ó)   é € Ü ×'Ò'¨Ö-ˆEÜ˜$§
¡
Ó+Ô+ò .ùó   ‚68c                 ó   • [        U 5      $ r)   ©r   r$   s    r   Ú__repr__ÚFrame.__repr__6   ó   € Ü˜4Ó Ð r   )r   r   N)r   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__annotations__r#   r%   r   r,   r2   Ú__static_attributes__© r   r   r   r      s>   ‡ á8à
ƒLØ3ØÓØ;ØÓØ8ò=ð,˜( 6¨E¡>Ñ2ô ,õ!r   r   c                   ón   • \ rS rSr% Sr\\S'    \\S'    \\S'    S rS\S    4S jr	SS	 jr
S
 rS rSrg)Ú
FrameBatché:   aÚ  Multiple video frames with associated metadata.

The ``data`` tensor is typically 4D for sequences of frames (NHWC or NCHW),
or 5D for sequences of clips, as returned by the :ref:`samplers
<sphx_glr_generated_examples_decoding_sampling.py>`. When ``data`` is 4D (resp.  5D)
the ``pts_seconds`` and ``duration_seconds`` tensors are 1D (resp. 2D).

.. note::
    The ``pts_seconds`` and ``duration_seconds`` Tensors are always returned
    on CPU, even if ``data`` is on GPU.
r   r   r   c                 óÌ  • U R                   R                  S:  a#  [        SU R                   R                  < 35      eU R                   R                  S S nXR                  R                  s=:X  a  U R
                  R                  :X  dZ  O  [        SU R                   R                  < SU< SU R                  R                  < SU R
                  R                  < S3	5      eg )	Nr    z;data must be at least 3-dimensional, got self.data.shape = éýÿÿÿzjTried to create a FrameBatch but the leading dimensions of the inputs do not match. Got self.data.shape = zS so we expected the shape of pts_seconds and duration_seconds to be leading_dims = z#, but got self.pts_seconds.shape = z# and self.duration_seconds.shape = Ú.)r   r!   r"   r   r   r   )r   Úleading_dimss     r   r%   ÚFrameBatch.__post_init__O   sÒ   € ð �9‰9�>‰>˜AÓÜØN¸D¿I¹I¿O¹OÑ;OÐPóð ð —y‘y—‘ s¨Ð+ˆØ× 0Ñ 0× 6Ñ 6ÕU¸$×:OÑ:O×:UÑ:UÕUÜð*Ø—y‘y—‘Ñ*ð +:Ø*6Ñ):ð ;-Ø×#Ñ#×)Ñ)Ñ-Ð-Q°4×3HÑ3H×3NÑ3NÑ2RÐRSðUóð ð Vr   r'   c              #   ó�   #   • [        U R                  U R                  U R                  5       H  u  pn[	        UUUS9v •  M     g 7f©N)r   r   r   )Úzipr   r   r   r=   )r   r   r   r   s       r   r,   ÚFrameBatch.__iter__`   sI   é € Ü36Ø�I‰I�t×'Ñ'¨×)>Ñ)>ö4
Ñ/ˆDÐ/ô ØØ'Ø!1ñô ò4
ùs   ‚AAc                 óf   • [        U R                  U   U R                  U   U R                  U   S9$ rE   )r=   r   r   r   )r   Úkeys     r   Ú__getitem__ÚFrameBatch.__getitem__j   s6   € ÜØ—‘˜3‘Ø×(Ñ(¨Ñ-Ø!×2Ñ2°3Ñ7ñ
ð 	
r   c                 ó,   • [        U R                  5      $ r)   )Úlenr   r$   s    r   Ú__len__ÚFrameBatch.__len__q   s   € Ü�4—9‘9‹~Ðr   c                 ó   • [        U 5      $ r)   r1   r$   s    r   r2   ÚFrameBatch.__repr__t   r4   r   r;   N)r'   r=   )r   r5   r6   r7   r8   r   r9   r%   r   r,   rJ   rN   r2   r:   r;   r   r   r=   r=   :   sH   ‡ ñ
ð ƒLØUØÓØPØÓØMòð"˜( <Ñ0ô ô
òõ!r   r=   c                   óp   • \ rS rSr% Sr\\S'    \\S'    \\S'    \\S'    S r	S\
\\-     4S	 jrS
 rSrg)ÚAudioSampleséx   z'Audio samples with associated metadata.r   r   r   Úsample_ratec                 óæ   • U R                   R                  S:X  d#  [        SU R                   R                  < 35      e[	        U R
                  5      U l        [        U R                  5      U l        g )Né   z2data must be 2-dimensional, got self.data.shape = )r   r!   r"   r   r#   r   ÚintrU   r$   s    r   r%   ÚAudioSamples.__post_init__…   sV   € ð �y‰y�~‰~ Ó"ÜÐRÀÇ	Á	ÇÁÑ?SÐTÓUÐUÜ  ×!1Ñ!1Ó2ˆÔÜ˜t×/Ñ/Ó0ˆÕr   r'   c              #   ót   #   • [         R                  " U 5       H  n[        XR                  5      v •  M     g 7fr)   r*   r+   s     r   r,   ÚAudioSamples.__iter__�   r.   r/   c                 ó   • [        U 5      $ r)   r1   r$   s    r   r2   ÚAudioSamples.__repr__‘   r4   r   )r   rU   N)r   r5   r6   r7   r8   r   r9   r#   rX   r%   r   r,   r2   r:   r;   r   r   rS   rS   x   sG   ‡ á1à
ƒLØkØÓØ:ØÓØ2ØÓØ0ò1ð,˜( 6¨E¡>Ñ2ô ,õ!r   rS   )r   Úcollections.abcr   r   r   Útorchr   r   r   r=   rS   r;   r   r   Ú<module>r`      sj   ðó ß .Ý !å òð  ô!ˆHó !ó ð!ð4 ô:!�ó :!ó ð:!ðz ô!�8ó !ó ñ!r   