xaac-rs 0.2.0

High-level Rust AAC/xHE-AAC encoder and decoder bindings built on libxaac
Documentation
�

iY�i�
��\�ddlmZddlmZegd��Zed��Gd�d��Zy)	�)�annotations)�	dataclass)�rrrrr�r�rr�r�8��qT)�frozenc�R�eZdZUded<ded<ded<ded<ded<edd	��Zy
)�WavFile�int�sample_rate�channels�bits_per_samplez
int | None�channel_mask�bytes�pcm_datac��t|�dks|dddk7s|dddk7rtd��d}d}d}d}d}d}|dzt|�k�r}|||dz}tj||dz|dzd�}	|dz
}||	zt|�kDrtd	��||||	z}
|d
k(r�t|
�dkrtd��tj|
dd
d�}tj|
d
dd�}tj|
ddd�}tj|
ddd�}|dk(rn�|dk(rit|
�dkrtd��tj|
ddd�}tj|
ddd�}|dk7r|}|
ddtk7rtd��td��|dk(r|
}||	z
}|	d
zdk(r|dz
}|dzt|�kr��}|�td��|�td��|�td��|�td��|dvrtd��|dz}
||
z}|dk(st|�|zdk7rtd��||||||� �S)!N�r�sRIFF�sWAVEzinput is not a RIFF/WAVE file�littlez"WAV chunk extends past end of filesfmt rzWAV fmt chunk is too short��ri���(z%WAV extensible fmt chunk is too short���z+only PCM WAV extensible files are supportedz-only uncompressed PCM WAV files are supportedsdataz#WAV fmt chunk missing channel countz!WAV fmt chunk missing sample ratez%WAV fmt chunk missing bits per samplezWAV data chunk not found)rr� z;only 16-bit, 24-bit, and 32-bit PCM WAV files are supportedz/WAV data size is not aligned to full PCM frames)rrrrr)�len�
ValueErrorr�
from_bytes�PCM_SUBFORMAT_GUID)�cls�data�offsetrrrrr�chunk_id�
chunk_size�chunk�audio_format�
valid_bits�bytes_per_sample�
frame_sizes               �examples/python/_wav.py�parsez
WavFile.parse$s����t�9�r�>�T�!�A�Y�'�1�T�!�B�Z�7�5J��<�=�=��������������q�j�C��I�%��F�V�a�Z�0�H�����V�a�Z�&�1�*�(E�x�P�J��a�K�F��
�"�S��Y�.� �!E�F�F���&�:�"5�6�E��7�"��u�:��?�$�%A�B�B�"�~�~�e�A�a�j�(�C���>�>�%��!�*�h�?��!�n�n�U�1�Q�Z��B��"%�.�.��r�"��x�"H���1�$��!�V�+��5�z�B��(�)P�Q�Q�#&�>�>�%��2�,��#I�L�!$����b���h�!G�J�!�Q��*4���R��|�'9�9�(�)V�W�W�$�%T�U�U��W�$� ���j� �F��A�~��"��!���I�q�j�C��I�%�L���B�C�C����@�A�A��"��D�E�E����7�8�8��,�.��Z�[�[�*�a�/��� 0�0�
���?�c�(�m�j�8�A�=��N�O�O��#��+�%��
�	
�N)r'r�returnz	'WavFile')�__name__�
__module__�__qualname__�__annotations__�classmethodr1�r2r0rrs2�����M������O��G
��G
r2rN)�
__future__r�dataclassesrrr%rr9r2r0�<module>r<s>��"�!�����,�$��O
�O
��O
r2