Your IP : 3.143.170.30
U
e5d��@s.ddgZddlmZedd�Zdej_dej_dej_d ej_d
ej _dd�Z
dd�ZgZd
d�Z
e�e
�dd�Ze�e�dd�Ze�e�dd�Ze�e�dd�Ze�e�dd�Ze�e�dd�Ze�e�dd�Ze�e�dd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zed)k�r*e�d*S)+�what�whathdr�)�
namedtuple�
SndHeadersz.filetype framerate nchannels nframes sampwidthz�The value for type indicates the data type
and will be one of the strings 'aifc', 'aiff', 'au','hcom',
'sndr', 'sndt', 'voc', 'wav', '8svx', 'sb', 'ub', or 'ul'.zYThe sampling_rate will be either the actual
value or 0 if unknown or difficult to decode.z^The number of channels or 0 if it cannot be
determined or if the value is difficult to decode.z?The value for frames will be either the number
of frames or -1.zAEither the sample size in bits or
'A' for A-LAW or 'U' for u-LAW.cCst|�}|S)N)r)�filename�res�r�/usr/lib64/python3.8/sndhdr.pyr4sc
Cs^t|d��J}|�d�}tD]*}|||�}|rt|�W5QR�SqW5QR�dSQRXdS)N�rbi)�open�read�testsr)r�f�hZtfrrrr r:s
c Cs�ddl}|�d�sdS|dd�dkr,d}n|dd�dkrBd}ndS|�d�z|�|d �}Wnt|jfk
r|YdSX||��|��|��d|� �fS)
Nr�FORM��sAIFC�aifcsAIFFZaiff�r)
r�
startswith�seekr�EOFError�Error�getframerate�getnchannels�
getnframes�getsampwidth)rrrZfmt�arrr � test_aifcKs"
�rc
Cs�|�d�rt}n|dd�dkr&t}ndSd}||dd��}||dd��}||dd��}||dd��}||dd ��}d
} |d
kr�d}
n$|dkr�d}
n|d
kr�d}
d} nd}
| |}|r�||}nd}|||||
fS)Ns.snd�)sds.sdns.Zaurr�����U���?���)r�get_long_be�get_long_le)
rr�func�filetypeZhdr_size� data_size�encoding�rate� nchannelsZsample_sizeZsample_bitsZ
frame_sizeZnframerrr �test_au`s2
r1cCsT|dd�dks |dd�dkr$dSt|dd��}|rBd |}nd
}d|dd
dfS)N�A�EsFSSD��sHCOM��i"VrZhcomr#r(r)r))rrZdivisorr/rrr � test_hcom�s
r8cCst|�d�sdSt|dd��}d}d|kr6dkrfnn,||dkrfd||d}|rftd |�}d
|dddfS)
NsCreative Voice Filer!�ri�r#�rg��.AZvocr(r)r�get_short_le�int)rrZsbseekr/Zratecoderrr �test_voc�s
$r=c Cs�ddl}|�d�r2|dd�dks2|dd�dkr6dS|�d�z|�|d�}Wnt|jfk
rlYdSXd |��|��|��d|� �fS)
NrsRIFFrrsWAVEr sfmt rZwav)
�waverrrrrrrrr)rrr>�wrrr �test_wav�s*
�r@cCs"|�d�r|dd�dkrdSdS)Nrrrs8SVX)Z8svxrr#rr)r)rrrrr � test_8svx�srAcCs<|�d�r8t|dd��}t|dd��}d|d|dfSdS)NsSOUNDrrr!r9Zsndtr#)rr*r;)rrZnsamplesr/rrr � test_sndt�s
rBcCsD|�d�r@t|dd��}d|kr.dkr@nnd|ddd fSdS)
Nsr%ri�i�aZsndrr#r(r)rr;)rrr/rrr � test_sndr�s
rCcCs,|dd>|dd>B|dd>B|dBS)Nrr"r#r r%rr&r��brrr r)�sr)cCs,|dd>|dd>B|dd>B|dBS)Nr&r"r%r r#rrrrDrrr r*�sr*cCs|dd>|dBS)Nrrr#rrDrrr �get_short_be�srFcCs|dd>|dBS)Nr#rrrrDrrr r;�sr;cCs�ddl}d}|jdd�r8|jddkr8|jdd�=d}z8|jdd�r`t|jdd�|d�ntdg|d�Wn*tk
r�|j�d�|�d�YnXdS)Nrr#z-rr%�.z
[Interrupted]
)�sys�argv�testall�KeyboardInterrupt�stderr�write�exit)rH� recursiverrr �test�srPc Cs�ddl}ddl}|D]�}|j�|�r~t|ddd�|s<|rttd�ddl}|�|j�|�|�d��}t||d�q�td�qt|ddd�|j �
�ztt|��Wqtk
r�td �YqXqdS)
Nrz/:� )�endzrecursing down:�*z*** directory (use -r) ***�:z*** not found ***)
rH�os�path�isdir�print�glob�join�escaperJ�stdout�flushr�OSError)�listrOZtoplevelrHrUrrY�namesrrr rJ�s"
rJ�__main__N)�__all__�collectionsrrr,�__doc__Z framerater0ZnframesZ sampwidthrrr
r�appendr1r8r=r@rArBrCr)r*rFr;rPrJ�__name__rrrr �<module>!sH�
?>