Viewing File: /opt/alt/python35/lib64/python3.5/__pycache__/aifc.cpython-35.opt-2.pyc



]|@sddlZddlZddlZdddgZGdddeZdZddZd	d
ZddZ	d
dZ
ddZdZddZ
ddZddZddZddZddZddZdd lmZdd!lmZed"d#ZGd$d%d%ZGd&d'd'Zdd(dZeZed)krddlZejd*drejj d+ejd*Z!ee!d,Z"e#d-e!e#d.e"j$e#d/e"j%e#d0e"j&e#d1e"j'e#d2e"j(e#d3e"j)ejd4drejd4Z*e#d5e*ee*d6EZ+e+j,e"j-x(e"j.d7Z/e/rPe+j0e/q~WWdQRXe#d8WdQRXdS)9NErroropenopenfpc@seZdZdS)rN)__name__
__module____qualname__rr)/opt/alt/python35/lib64/python3.5/aifc.pyrsl@QEcCsCy!tjd|jddSWntjk
r>tYnXdS)Nz>lr)structunpackreaderrorEOFError)filerrr	
_read_longs!rcCsCy!tjd|jddSWntjk
r>tYnXdS)Nz>Lr
r)rrr
rr)rrrr	_read_ulongs!rcCsCy!tjd|jddSWntjk
r>tYnXdS)Nz>hr)rrr
rr)rrrr	_read_shorts!rcCsCy!tjd|jddSWntjk
r>tYnXdS)Nz>Hrr)rrr
rr)rrrr	_read_ushorts!rcCs\t|jd}|dkr*d}n|j|}|d@dkrX|jd}|S)Nr)ordr
)rlengthdatadummyrrr	_read_strings	rgcCst|}d}|dkr.d
}|d}t|}t|}||koh|kohdknrvd}n>|dkrt}n)|d}|d|td|d	}||S)Nrrigii?lg@?)rr	_HUGE_VALpow)fexponsignhimantlomantrrr	_read_floats
'		
r&cCs|jtjd|dS)Nz>h)writerpack)r!xrrr	_write_shortsr*cCs|jtjd|dS)Nz>H)r'rr()r!r)rrr	
_write_ushortsr+cCs|jtjd|dS)Nz>l)r'rr()r!r)rrr	_write_longsr,cCs|jtjd|dS)Nz>L)r'rr()r!r)rrr	_write_ulongsr-cCsqt|dkrtd|jtjdt||j|t|d@dkrm|jddS)Nz%string exceeds maximum pstring lengthBrrs)len
ValueErrorr'rr()r!srrr	
_write_strings
r3c	Cseddl}|dkr+d}|d}nd}|dkrRd}d}d}n|j|\}}|dks|dks||kr|dB}d}d}n|d}|dkr|j||}d}||B}|j|d}|j|}t|}|j||d}|j|}t|}t||t||t||dS)	Nriri@ii? r)mathfrexpldexpfloorintr+r-)	r!r)r5r#r"r$r%ZfmantZfsmantrrr	_write_floats8
	$
	



r:)Chunk)
namedtuple_aifc_paramsz7nchannels sampwidth framerate nframes comptype compnamec@s6eZdZdZddZddZddZdd	Zd
dZdd
Z	ddZ
ddZddZddZ
ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1ZdS)2	Aifc_readNcCsd|_d|_g|_d|_||_t|}|jdkrWtd|jd}|dkr~d|_	n$|dkrd|_	ntdd|_
xd|_yt|j}Wntk
rPYnX|j}|d	kr|j
|d|_
ng|d
krA||_|jd}d|_n7|dkr_t||_n|d
krx|j||jqW|j
s|jrtddS)NrsFORMz file does not start with FORM idr
sAIFFsAIFCrznot an AIFF or AIFF-C filesCOMMsSSNDsFVERsMARKz$COMM chunk and/or SSND chunk missing)_version_convert_markers	_soundpos_filer;Zgetnamerr
_aifcZ_comm_chunk_read_ssnd_seek_neededr_read_comm_chunk_ssnd_chunkr	_readmarkskip)selfrchunkZformdataZ	chunknamerrrr	initfp+sH							

	
zAifc_read.initfpc	Cs^t|trMtj|d}y|j|WqZ|jYqZXn
|j|dS)Nrb)
isinstancestrbuiltinsrrMclose)rKr!file_objectrrr	__init__Rs
zAifc_read.__init__cCs|S)Nr)rKrrr		__enter__^szAifc_read.__enter__cGs|jdS)N)rR)rKargsrrr	__exit__aszAifc_read.__exit__cCs|jS)N)rD)rKrrr	getfpgszAifc_read.getfpcCsd|_d|_dS)Nrr)rFrC)rKrrr	rewindjs	zAifc_read.rewindcCs,|j}|dk	r(d|_|jdS)N)rDrR)rKrrrr	rRns		zAifc_read.closecCs|jS)N)rC)rKrrr	telltszAifc_read.tellcCs|jS)N)
_nchannels)rKrrr	getnchannelswszAifc_read.getnchannelscCs|jS)N)_nframes)rKrrr	
getnframeszszAifc_read.getnframescCs|jS)N)
_sampwidth)rKrrr	getsampwidth}szAifc_read.getsampwidthcCs|jS)N)
_framerate)rKrrr	getframerateszAifc_read.getframeratecCs|jS)N)	_comptype)rKrrr	getcomptypeszAifc_read.getcomptypecCs|jS)N)	_compname)rKrrr	getcompnameszAifc_read.getcompnamecCs=t|j|j|j|j|j|jS)N)r=r\r`rbr^rdrf)rKrrr		getparamsszAifc_read.getparamscCs t|jdkrdS|jS)Nr)r0rB)rKrrr	
getmarkersszAifc_read.getmarkerscCsAx%|jD]}||dkr
|Sq
Wtdj|dS)Nrzmarker {0!r} does not exist)rBrformat)rKidmarkerrrr	getmarkszAifc_read.getmarkcCs=|dks||jkr'td||_d|_dS)Nrzposition not in ranger)r]rrCrF)rKposrrr	setposs	zAifc_read.setposcCs|jr^|jjd|jjd}|j|j}|rU|jj|dd|_|dkrndS|jj||j}|jr|r|j|}|jt||j|j	|_|S)Nrr?r)
rFrHseekr
rC
_framesizerAr0r[r_)rKnframesrrmrrrr	
readframess		zAifc_read.readframescCsddl}|j|dS)Nrr)audioopZalaw2lin)rKrrsrrr		_alaw2linszAifc_read._alaw2lincCsddl}|j|dS)Nrr)rsZulaw2lin)rKrrsrrr		_ulaw2linszAifc_read._ulaw2lincCsIddl}t|ds$d|_|j|d|j\}|_|S)Nr_adpcmstater)rshasattrrvZ	adpcm2lin)rKrrsrrr	
_adpcm2lins
	!zAifc_read._adpcm2lincCst||_t||_t|dd|_tt||_|j|j|_|j	rd}|j
dkrd}tjdd|_
|j
d|_|rt|jj
d}|d@dkr|d}|j
||_
|jjddt||_|jd	kr|jd
kr@|j|_nH|jdkr^|j|_n*|jdkr||j|_ntdd|_nd	|_d|_dS)Nr?rrzWarning: bad COMM chunk sizer
sNONEsG722ulawULAWalawALAWzunsupported compression typersnot compressedr)r|r})r~r)rr[rr]r_r9r&rarprE	chunksizewarningswarnr
rcrrrorrerxrArurtr)rKrLZkludgerrrr	rGs<	
	
	zAifc_read._read_comm_chunkcCst|}ydx]t|D]O}t|}t|}t|}|sR|r|jj|||fqWWnVtk
rdt|jt|jdkrdnd|f}tj	|YnXdS)Nz;Warning: MARK chunk contains only %s marker%s instead of %srr2)
rrangerrrBappendrr0rr)rKrLZnmarkersirjrmnamewrrr	rIs!
*
zAifc_read._readmark)rrrrDrMrTrUrWrXrYrRrZr\r^r`rbrdrfrgrhrlrnrrrtrurxrGrIrrrr	r>s2$'&r>c@seZdZdZddZddZddZdd	Zd
dZdd
Z	ddZ
ddZddZddZ
ddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Z d<d=Z!d>d?Z"d@dAZ#dBdCZ$dDdEZ%dFdGZ&dHdIZ'dS)J
Aifc_writeNc	Csvt|tretj|d}y|j|Wn|jYnX|jdrrd|_n
|j|dS)Nwbz.aiffr)rOrPrQrrMrRendswithrE)rKr!rSrrr	rT!s
zAifc_write.__init__cCs||_t|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_g|_
d|_d|_dS)NsNONEsnot compressedrr)rD
_AIFC_versionr@rcrerAr[r_rar]_nframeswritten_datawritten_datalengthrB_marklengthrE)rKrrrr	rM1s														zAifc_write.initfpcCs|jdS)N)rR)rKrrr	__del__BszAifc_write.__del__cCs|S)Nr)rKrrr	rUEszAifc_write.__enter__cGs|jdS)N)rR)rKrVrrr	rWHszAifc_write.__exit__cCs"|jrtdd|_dS)Nz0cannot change parameters after starting to writer)rrrE)rKrrr	aiffNs	zAifc_write.aiffcCs"|jrtdd|_dS)Nz0cannot change parameters after starting to writer)rrrE)rKrrr	aifcSs	zAifc_write.aifccCs:|jrtd|dkr-td||_dS)Nz0cannot change parameters after starting to writerzbad # of channels)rrr[)rK	nchannelsrrr	setnchannelsXs
	zAifc_write.setnchannelscCs|jstd|jS)Nznumber of channels not set)r[r)rKrrr	r\_s	zAifc_write.getnchannelscCsF|jrtd|dks-|dkr9td||_dS)Nz0cannot change parameters after starting to writerr
zbad sample width)rrr_)rK	sampwidthrrr	setsampwidthds
	zAifc_write.setsampwidthcCs|jstd|jS)Nzsample width not set)r_r)rKrrr	r`ks	zAifc_write.getsampwidthcCs:|jrtd|dkr-td||_dS)Nz0cannot change parameters after starting to writerzbad frame rate)rrra)rK	frameraterrr	setframerateps
	zAifc_write.setframeratecCs|jstd|jS)Nzframe rate not set)rar)rKrrr	rbws	zAifc_write.getframeratecCs"|jrtd||_dS)Nz0cannot change parameters after starting to write)rrr])rKrqrrr	
setnframes|s	zAifc_write.setnframescCs|jS)N)r)rKrrr	r^szAifc_write.getnframescCsC|jrtd|d	kr-td||_||_dS)
Nz0cannot change parameters after starting to writeNONEulawULAWalawALAWG722zunsupported compression type)rrrrrr)rrrcre)rKcomptypecompnamerrr	setcomptypes			zAifc_write.setcomptypecCs|jS)N)rc)rKrrr	rdszAifc_write.getcomptypecCs|jS)N)re)rKrrr	rfszAifc_write.getcompnamecCs|\}}}}}}|jr-td|d	krEtd|j||j||j||j||j||dS)
Nz0cannot change parameters after starting to writeNONEulawULAWalawALAWG722zunsupported compression type)rrrrrr)rrrrrrr)rKparamsrrrrqrrrrr		setparamss		



zAifc_write.setparamscCsU|js|js|jr*tdt|j|j|j|j|j|jS)Nznot all parameters set)r[r_rarr=r]rcre)rKrrr	rgszAifc_write.getparamscCs|dkrtd|dkr0tdt|tsKtdxNtt|jD]7}||j|dkra|||f|j|<dSqaW|jj|||fdS)Nrzmarker ID must be > 0zmarker position must be >= 0zmarker name must be bytes)rrObytesrr0rBr)rKrjrmrrrrr	setmarkszAifc_write.setmarkcCsAx%|jD]}||dkr
|Sq
Wtdj|dS)Nrzmarker {0!r} does not exist)rBrri)rKrjrkrrr	rlszAifc_write.getmarkcCs t|jdkrdS|jS)Nr)r0rB)rKrrr	rhszAifc_write.getmarkerscCs|jS)N)r)rKrrr	rZszAifc_write.tellcCst|ttfs*t|jd}|jt|t||j|j}|j	ro|j	|}|j
j||j||_|j
t||_
dS)Nr/)rOr	bytearray
memoryviewcast_ensure_header_writtenr0r_r[rArDr'rr)rKrrqrrr	writeframesraws	zAifc_write.writeframesrawcCs?|j||j|jks1|j|jkr;|jdS)N)rrr]rr_patchheader)rKrrrr	writeframess
zAifc_write.writeframescCs|jdkrdSz|jd|jd@rP|jjd|jd|_|j|j|jks|j|jks|jr|j	Wdd|_
|j}d|_|jXdS)Nrrs)rDrrr'
_writemarkersrr]rrrrArR)rKr!rrr	rRs 


				zAifc_write.closecCsddl}|j|dS)Nrr)rsZlin2alaw)rKrrsrrr		_lin2alawszAifc_write._lin2alawcCsddl}|j|dS)Nrr)rsZlin2ulaw)rKrrsrrr		_lin2ulawszAifc_write._lin2ulawcCsIddl}t|ds$d|_|j|d|j\}|_|S)Nrrvr)rsrwrvZ	lin2adpcm)rKrrsrrr	
_lin2adpcms
	!zAifc_write._lin2adpcmcCs|js|jdkrE|js*d|_|jdkrEtd|jsZtd|jsotd	|jstd
|j|dS)NULAWulawALAWalawG722rzRsample width must be 2 when compressing with ulaw/ULAW, alaw/ALAW or G7.22 (ADPCM)z# channels not specifiedzsample width not specifiedzsampling rate not specified)rrrrr)rrcr_rr[ra
_write_header)rKZdatasizerrr	rs						z!Aifc_write._ensure_header_writtencCs[|jdkr|j|_n9|jdkr<|j|_n|jdkrW|j|_dS)NsG722ulawULAWalawALAW)rr)rr)rcrrArr)rKrrr	_init_compressionszAifc_write._init_compressioncCs
|jr"|jdkr"|j|jjd|jsR||j|j|_|j|j|j|_|jd@r|jd|_|jr|jdkr|jd|_|jd@r|jd|_n@|jd	kr|jd
d|_|jd@r|jd|_y|jj	|_
Wn!ttfk
rJd|_
YnX|j
|j}|jr|jjd|jjd
t|jdt|j|jn|jjd|jjdt|j|t|j|j|j
dk	r|jj	|_t|j|j|jdkrEt|jdnt|j|jdt|j|j|jr|jj|jt|j|j|jjd|j
dk	r|jj	|_t|j|jdt|jdt|jddS)NsNONEsFORMrulawULAWalawALAWrG722r
sAIFCsFVERsAIFFsCOMMr?sSSNDr)rrrr)rrrrr)rErcrrDr'r]r[r_rrZ_form_length_posAttributeErrorOSError_write_form_lengthr-r@r*_nframes_posr:rar3re_ssnd_length_pos)rKZ
initlength
commlengthrrr	rs^
	
	

		zAifc_write._write_headercCst|jr9d	t|j}|d@r0|d}d}nd}d}t|jd||jd|d||S)
Nrzrrr
r?r{)rEr0rer-rDr)rK
datalengthrZ
verslengthrrr	rJs	

		"zAifc_write._write_form_lengthcCs0|jj}|jd@r<|jd}|jjdn	|j}||jkr|j|jkr|jdkr|jj|ddS|jj|j	d|j
|}|jj|jdt|j|j|jj|j
dt|j|d|jj|d|j|_||_dS)Nrsrr?)rDrZrr'rr]rrrorrrr-r)rKZcurposrrrrr	rWs&

	zAifc_write._patchheadercCst|jdkrdS|jjdd}xX|jD]M}|\}}}|t|dd}t|d@dkr9|d}q9Wt|j||d|_t|jt|jxP|jD]E}|\}}}t|j|t|j|t|j|qWdS)NrsMARKrrr?)r0rBrDr'r-rr*r3)rKrrkrjrmrrrr	rms"
zAifc_write._writemarkers)(rrrrDrTrMrrUrWrrrr\rr`rrbrr^rrdrfrrgrrlrhrZrrrRrrrrrrrrrrrrr	rsJ	

3
rcCsi|dkr-t|dr'|j}nd}|dkrCt|S|dkrYt|StddS)	NmoderNrrrz$mode must be 'r', 'rb', 'w', or 'wb')rrN)rr)rwrr>rr)r!rrrr	rs

__main__rz/usr/demos/data/audio/bach.aiffrZReadingznchannels =znframes   =zsampwidth =zframerate =zcomptype  =zcompname  =rZWritingrizDone.)1rrQr__all__	Exceptionrrrrrrrrr&r*r+r,r-r3r:rLr;collectionsr<r=r>rrrrsysargvrfnr!printr\r^r`rbrdrfZgngrrgrrrrrrrr	<module>sf
!	





Back to Directory File Manager