xaac-rs 0.2.0

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

iY�i�����ddlmZddlZddlmZddlZdd�Zdd�Zd
d�Zdd�Z	e
dk(r	ee	ej���y#e
$r!Zeeej �	�ed
��dZ[wwxYw)�)�annotationsN)�Pathc��y)Nz6usage: python examples/python/file_info.py <input.aac>�r��examples/python/file_info.py�usager	
s��Crc� �|�dSt|�S)N�unavailable)�str)�values r�optional_valuers��!�M�=�9�s�5�z�9rc���|dk(ryd}d}d}|dzt|�krx||dk7s||dzdzdk7ry||dzdzdz||dzdzz||d	zd
zd	z	z}|dks||zt|�kDry|dz
}||z
}||z
}|dzt|�kr�x|dk(s|t|�k7ry|tjjk(rd}n"|tjjk(rd}nd
}||z}|dz|z|zS)Nr������������iii�)�len�xaac_rs�SbrMode�Enabled�Esbr)	�data�sample_rate�sbr_mode�offset�frames�
payload_bytes�frame_length�samples_per_frame�
total_sampless	         r�estimate_adts_bitrater(sW���a���
�F�
�F��M�
�1�*��D�	�
!���<�4��D��!��$4�t�$;��#D���6�A�:���%�"�
,��F�Q�J��1�$�
&��V�a�Z� �4�'�A�-�
/�	�
�!��v��4�s�4�y�@���!�����%�
��,����1�*��D�	�
!� ��{�f��D�	�)���7�?�?�*�*�*� ��	�W�_�_�)�)�	)� �� ���.�.�M��A���+�
�=�=rc���t|�dk7rtt���t|d�}|j	�}tj�}|j�}td|���tdt|��d��td|j�d|j���td|j��d��|std	�y
t|�}	|j|�}td
|���td|j�d��td|j���td|jd���td|j ���td|j"�d��td|j$���td|j&���td|j(���tdt+|j,����tdt+|j.����tdt+|j0����tdt+|j2����tdt+|j4����t7||j|j&�}|�td�y
td|�d ��y
#t$r1}td�td|���td
|���Yd}~y
d}~wwxYw)!N�rzfile: zsize: z bytesz	decoder: � zdecoder input capacity: zstream info: file is emptyrzstream info: unavailablezdecoder error: z
probe bytes: z
sample rate: z Hzz
channels: zchannel mask: 0x�xzchannel mode: zpcm word size: z bitszaudio object type: z
sbr mode: zdrc active: zdrc target loudness: zdrc loudness norm: zloudness leveling: zpreroll frames: zgain payload bytes: zbit rate: unavailablez
bit rate: z bps)r�
ValueErrorr	r�
read_bytesr�Decoder�version�print�name�input_capacity�probe_stream_info�	Exceptionr �channels�channel_mask�channel_mode�
pcm_word_size�audio_object_typer!�
drc_activer�drc_target_loudness�drc_loudness_norm�loudness_leveling�preroll_frames�gain_payload_lenr()	�argv�
input_pathr�decoderr0�	probe_len�info�exc�bitrates	         r�mainrH8s���
�4�y�A�~����!�!��d�1�g��J�� � �"�D��o�o��G��o�o��G�	�F�:�,�
� �	�F�3�t�9�+�V�
$�%�	�I�g�l�l�^�1�W�_�_�$5�
6�7�	�$�W�%;�%;�%=�$>�f�
E�F��
�*�+���D�	�I���(�(��.��
�M�)��
%�&�	�M�$�*�*�+�3�
/�0�	�J�t�}�}�o�
&�'�	��T�.�.�q�1�
2�3�	�N�4�,�,�-�
.�/�	�O�D�.�.�/�u�
5�6�	��� 6� 6�7�
8�9�	�J�t�}�}�o�
&�'�	�L����)�
*�+�	�!�.��1I�1I�"J�!K�
L�M�	���t�/E�/E� F�G�
H�I�	���t�/E�/E� F�G�
H�I�	��^�D�,?�,?�@�A�
B�C�	� ���0E�0E�!F� G�
H�I�#�D�$�*:�*:�D�M�M�J�G���
�%�&�
�	�
�7�)�4�(�)���5��
�(�)�
���u�%�&�
�
�i�[�)�*���	�s�&J,�,	K&�5'K!�!K&�__main__)�filer)�returnr)r
z
object | NonerKr)r�bytesr �intr!zxaac_rs.SbrModerKz
int | None)rAz	list[str]rKrM)�
__future__r�sys�pathlibrrr	rr(rH�__name__�
SystemExitrAr5rFr1�stderrrrr�<module>rTsy��"�
���D�:�#>�L0
�f�z�����c�h�h��(�(�����
�c��
�
�#���m����s�A�A*�	A%�%A*