
    #)di&3                        	 d dl mZ d dl mZ n# e$ r d dlmZ d dlmZ Y nw xY wd dlZd dlZ	 d dl	m
Z
 n# e$ r	 d dlm
Z
 Y nw xY wd dlmZ  G d de          Zd Zd	 Zd
 Zd/dZd Zd/dZd/dZd/dZd/dZd/dZd/dZd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d  Z%d! Z&d" Z'd# Z(d$ Z)d% Z*d& Z+d0d(Z,d) Z-d* Z.d+ Z/d, Z0d- Z1d. Z2dS )1    )max)minN)gcd)create_string_bufferc                       e Zd ZdS )errorN)__name__
__module____qualname__     V/var/www/menimich/repos/protonApp/venv/lib/python3.11/site-packages/pydub/pyaudioop.pyr   r      s        Dr   r   c                 P    | dk    r| dk    r| dk    rt          d          d S d S d S )N         zSize should be 1, 2 or 4)r   )sizes    r   _check_sizer      s9    qyyTQYY4199./// yYY99r   c                 T    t          |           | |z  dk    rt          d          d S )Nr   not a whole number of frames)r   r   )lengthr   s     r   _check_paramsr      s6    }2333 r   c                 &    t          |           |z  S N)lencpr   s     r   _sample_countr      s    r77T>r   Tc              #   r   K   t          t          | |                    D ]}t          | |||          V  d S r   )ranger   _get_sample)r   r   signedis       r   _get_samplesr$   #   sN      =T**++ / /"dAv....../ /r   c                 N    | dk    r|rdndS | dk    r|rdndS | dk    r|rdnd	S d S )
Nr   bBr   hHr   r#   Ir   r   r"   s     r   _struct_formatr,   (   sQ    qyy%ss#%	%ss#%	%ss#% 
r   c                     t          ||          }||z  }||z   }t          j        |t          |           ||                   d         S Nr   )r,   structunpack_frombuffer)r   r   r#   r"   fmtstartends          r   r!   r!   1   sJ    
v
&
&CHE
$,Cc6"::eCi#899!<<r   c                 Z    t          ||          }t          j        || ||z  |           d S r   )r,   r/   	pack_into)r   r   r#   valr"   r2   s         r   _put_sampler8   8   s2    
v
&
&C
S"a$h,,,,,r   c                 r    |r| dk    rdS | dk    rdS |r| dk    rdS | dk    rdS |r| dk    rdS | dk    rd	S d S )
Nr         r   i  i  r   il    r   r+   s     r   _get_maxvalr<   =   sr     $!))t	t	 DAIIv	v	 DAIIz	z 
r   c                 >    |sdS | dk    rdS | dk    rdS | dk    rdS d S )Nr   r   ir   i r   i   r   r+   s     r   _get_minvalr>   L   s@     q	u	w	{ 
r   c                 R    t          | |          t          | |          fdS )Nc                 @    t          t          |                     S r   )builtin_maxr   )r7   maxvalminvals    r   <lambda>z_get_clipfn.<locals>.<lambda>Z   s    {3sF#3#3V<< r   )r<   r>   )r   r"   rB   rC   s     @@r   _get_clipfnrE   W   s4    v&&Fv&&F<<<<<<r   c                     t          ||          }t          ||          }|| cxk    r|k    rn n| S |dz  }|rd|dz
  z  }| |z   d|z  z  |z
  S | d|z  z  S )N   r   r   )r>   r<   )r7   r   r"   rC   rB   bitsoffsets          r   	_overflowrJ   ]   s    v&&Fv&&F
!8D T!Vv!T'*f44agr   c                     t          t          |           |           d|cxk    rt          |           |z  k     sn t          d          t          | ||          S )Nr   zIndex out of range)r   r   r   r!   )r   r   r#   s      r   	getsamplerL   k   sb    #b''4   ####SWWt^####()))r4###r   c                     t          t          |           |           t          |           dk    rdS t          d t          | |          D                       S )Nr   c              3   4   K   | ]}t          |          V  d S r   )abs.0samples     r   	<genexpr>zmax.<locals>.<genexpr>x   s(      HHvs6{{HHHHHHr   )r   r   rA   r$   r   s     r   r   r   r   sS    #b''4   
2ww!||qHHb$1G1GHHHHHHr   c                     t          t          |           |           d\  }}t          | |          D ]"}t          ||          }t	          ||          }#||fS )N)r   r   )r   r   r$   rA   builtin_min)r   r   
max_sample
min_samplerR   s        r   minmaxrX   {   sf    #b''4   !J
r4(( 5 5 44
 44

z!!r   c                     t          t          |           |           t          | |          }|dk    rdS t          t	          | |                    |z  S r.   )r   r   r   sumr$   )r   r   sample_counts      r   avgr\      sT    #b''4    T**Lqq|B%%&&55r   c                    t          t          |           |           t          | |          }|dk    rdS t          d t	          | |          D                       }t          t          j        ||z                      S )Nr   c              3       K   | ]	}|d z  V  
dS )r   Nr   rP   s     r   rS   zrms.<locals>.<genexpr>   s&      EEFfaiEEEEEEr   )r   r   r   rZ   r$   intmathsqrt)r   r   r[   sum_squaress       r   rmsrc      sz    #b''4    T**LqqEEl2t.D.DEEEEEKty|344555r   c                 ~    d}d}t          |          D ](}|t          | ||          t          |||          z  z  })|S )Nr   r   )r    rL   )cp1cp2r   r   totalr#   s         r   _sum2rh      sQ    DE6]] C C3a((9S$+B+BBBLr   c                 *   d}t          |           dz  dk    st          |          dz  dk    rt          d          t          |           t          |          k     rt          d          t          | |          }t          ||          }t          |||          }t          | | |          }t          | ||          }||z  ||z  z
  |z  }|}	d}
t	          d||z
  dz             D ]|}t          | ||dz
            }t          | |||z   dz
            }||dz  |dz  z
  z  }t          t          |           ||z  d          ||          }||z  ||z  z
  |z  }||	k     r|}	|}
}t          t          |           |
|z  d          ||          |z  }|
|fS )Nr   r   Strings should be even-sizedzFirst sample should be longerr   )r   r   r   rh   r    r!   r1   )re   rf   r   len1len2sum_ri_2	sum_aij_2
sum_aij_riresultbest_resultbest_ir#   aj_m1aj_lm1factors                  r   findfitrv      s   D
3xx!|qCHHqLA--2333
3xx#c((3444d##Dd##DS#t$$Hc3%%IsC&&J"Z*%<<	IFKF1dTkAo&&  Cq1u--S$D155VQY))	6#;;qvww/d;;
Y&j)@@IMK KF6#;;vd{||,c4888CF6>r   c                    d}t          |           dz  dk    rt          d          t          |           t          |          k    rt          d          t          | |          }t          |||          }t          | ||          }||z  S )Nr   r   rj   zSamples should be same size)r   r   r   rh   )re   rf   r   r[   rm   ro   s         r   
findfactorrx      s    D
3xx!|q2333
3xx3s881222 d++LS#|,,HsC..J  r   c                    d}t          | |          }t          |           dz  dk    rt          d          |dk     s||k     rt          d          |dk    rdS t          | | |          }|}d}t	          d||z
  dz             D ]G}t          | ||dz
            }t          | |||z   dz
            }	||dz  z  }||	dz  z  }||k    r|}|}H|S )Nr   r   rj   zInput sample should be longerr   )r   r   r   rh   r    rL   )
r   rl   r   r[   rp   rq   rr   r#   sample_leaving_windowsample_entering_windows
             r   findmaxr|      s   D T**L
2ww{a2333axx<$&&3444qq2r4  FKF1lT)A-.. 	 	 )"dAE : :!*2tQX\!B!B'**(!++K KFMr   c                    t          t          |           |           t          | |          }d}d }d}d}t          | |d          }t          | |d          }||z
  }	t	          d|          D ]K}
t          | ||
          }||z
  }||	z  dk     r |r|t          ||z
            z  }|dz  }d}|}|}|dk    r|}	L|dk    rdS ||z  S NFr   r   Tr   r   r   rL   r    rO   )r   r   r[   prevextremevalidprevextremer\   nextremeprevvalr7   prevdiffr#   diffs               r   avgppr      s   #b''4    T**LK
CHD!$$G
Ba
 
 CW}H1l##  D!$$W}(?Q s7[0111A#!K199H1}}q>r   c                 r   t          t          |           |           t          | |          }d}d }d}t          | |d          }t          | |d          }||z
  }t	          d|          D ]K}	t          | ||	          }||z
  }
|
|z  dk     r |rt          ||z
            }||k    r|}d}|}|}|
dk    r|
}L|S r~   r   )r   r   r[   r   r   r   r   r7   r   r#   r   extremediffs               r   maxppr     s    #b''4    T**LK
CD!$$G
Ba
 
 CW}H1l##  D!$$W}(?Q &!'K"788$$%C#!K199HJr   c                     t          t          |           |           d}d}t          | |          D ](}|dcxk    r|k     sn |dcxk    r|k    rn n|dz  }|})|S )Nr   r   )r   r   r$   )r   r   	crossingslast_samplerR   s        r   crossr   <  s    #b''4   IKr4((  Q$$$$$$$$!(A(A(A(Ak(A(A(A(A(ANIr   c                 @   t          t          |           |           t          |          }t          t          |                     }t	          t          | |                    D ]2\  }} |t          ||z                      }t          ||||           3|j        S r   )	r   r   rE   r   	enumerater$   r_   r8   raw)r   r   ru   cliprp   r#   rR   s          r   mulr   I  s    #b''4   tD!#b''**F|B5566 - -	6c&6/**++FD!V,,,,:r   c                    t          t          |           |           t          |          }t          | |          }t	          t          |           dz            }t          d|d          D ]R}t          | ||          }t          | ||dz             }	||z  |	|z  z   }
 ||
          }
t          |||dz  |
           S|j        S )Nr   r   r   )	r   r   rE   r   r   r    rL   r8   r   )r   r   fac1fac2r   r[   rp   r#   l_sampler_samplerR   s              r   tomonor   V  s    #b''4   tD T**L!#b''A+..F1lA&& 1 1Rq))Rq1u--T/ho6fFD!a%0000:r   c                    t          t          |           |           t          | |          }t          t          |           dz            }t	          |          }t          |          D ]\}t          | ||          } |||z            }	 |||z            }
t          |||dz  |	           t          |||dz  dz   |
           ]|j        S )Nr   r   )	r   r   r   r   rE   r    r!   r8   r   )r   r   r   r   r[   rp   r   r#   rR   r   r   s              r   tostereor   j  s    #b''4    T**L!#b''A+..FtD<   7 7Rq))4&&4&&FD!a%222FD!a%!)X6666:r   c                    t          t          |           |           t          |           t          |          k    rt          d          t          |          }t	          | |          }t          t          |                     }t          |          D ]D}t          | ||          }t          |||          } |||z             }	t          ||||	           E|j	        S )NzLengths should be the same)
r   r   r   rE   r   r   r    rL   r8   r   )
re   rf   r   r   r[   rp   r#   sample1sample2rR   s
             r   addr   ~  s    #c((D!!!
3xx3s880111tD d++L!#c((++F<   - -Cq))Cq))g'((FD!V,,,,:r   c                    t          t          |           |           t          t          |                     }t          t	          | |                    D ]*\  }}t          ||z   |          }t          ||||           +|j        S r   )r   r   r   r   r$   rJ   r8   r   )r   r   biasrp   r#   rR   s         r   r   r     s    #b''4   !#b''**F|B5566 - -	66D=$//FD!V,,,,:r   c                    t          t          |           |           t          | |          }t          t          |                     }t	          t          | |                    D ]\  }}t          ||||z
  dz
  |           |j        S )Nr   )r   r   r   r   r   r$   r8   r   )r   r   r[   rp   r#   rR   s         r   reverser     s    #b''4    T**L!#b''**F|B5566 @ @	6FD,"2Q"6????:r   c                    t          t          |           |           t          |           ||k    r| S t          |           |z  |z  }t          |          }t	          t          | |                    D ]X}t          | ||          }||k     r|d|z  |z  z  }n||k    r|d|z  |z  z	  }t          ||          }t          ||||           Y|j	        S )Nr   )
r   r   r   r   r    r   r!   rJ   r8   r   )r   r   size2new_lenrp   r#   rR   s          r   lin2linr     s    #b''4   u}}	2ww~&G!'**F=T**++ 	. 	.Rq))%<<E	D 01FFE\\D5 01F65))FE1f----:r   r   c           
      6   t          t          |           |           |dk     rt          d          ||z  }t          |           |z  }	||z  |k    rt          d          |dk     s|dk     rt          d          t          |           |z  dk    rt          d          |dk    s|dk    rt          d          t	          ||          }
||
z  }||
z  }dg|z  }dg|z  }|| }
nQ|\  }
}t          |          |k    rt          d          t          | \  }}t          |          t          |          }}|	|z  }|dz   |z  }||z  }t          |          }t          | |          }d}	 |
dk     r|	dk    rVt          ||          }|j	        }||z  t          |          z
  }t          |          d |         }||
t          |          ffS t          |          D ]D}||         ||<   |                                ||<   |||         z  |||         z  z   ||z   z  ||<   E|	dz  }	|
|z  }
|
dk     |
dk    r_t          |          D ]D}||         |
z  ||         ||
z
  z  z   |z  }t          |||t          ||                     |dz  }E|
|z  }
|
dk    _-)	Nr   z# of channels should be >= 1z%width * nchannels too big for a C intr   z.weightA should be >= 1, weightB should be >= 0r   zsampling rate not > 0zillegal state argument)r   r   r   OverflowErrorr   ziplistr   r$   r   r1   tupler    nextr8   rJ   )r   r   	nchannelsinrateoutratestateweightAweightBbytes_per_frameframe_countdprev_icur_isampsqceilingnbytesrp   samplesout_iretval
trim_indexchancur_os                           r   ratecvr     s+   #b''4   1}}2333Y&Ob''O+K"d**CDDD{{gkkDEEE
2ww A%%2333{{gll+,,,FGA
aKFqLGS9_FC)OE}H5u::""0111UVd5kkfA1uG&F!&))F2t$$GE !eeaFE** $o5VD
4E%LL 122i((  $T{t%llnnd uT{*Wvd|-CC(* d
 1KLA+ !ee. 1ffi((  D\A%dw{(CC  FD%5$1G1GHHH
KA 1ff1 r   c                     t                      r   NotImplementedErrorr   s     r   lin2ulawr         


r   c                     t                      r   r   r   s     r   ulaw2linr     r   r   c                     t                      r   r   r   s     r   lin2alawr     r   r   c                     t                      r   r   r   s     r   alaw2linr      r   r   c                     t                      r   r   r   r   r   s      r   	lin2adpcmr   $  r   r   c                     t                      r   r   r   s      r   	adpcm2linr   (  r   r   )T)r   r   )3__builtin__r   rA   r   rU   ImportErrorbuiltinsr`   r/   	fractionsr   ctypesr   	Exceptionr   r   r   r   r$   r,   r!   r8   r<   r>   rE   rJ   rL   rX   r\   rc   rh   rv   rx   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s{  ,............. , , ,++++++++++++++,      ' ' ' ' ' '	 	 	 	 	I 	 	 	0 0 0
4 4 4  / / / /
& & &= = = =- - - -
      = = = =   $ $ $I I I" " "6 6 66 6 6  $ $ $N! ! !"  >! ! !H  @
 
 

 
 
  (  (  *	 	 	    2N N N Nb                                  s    ##6 AA