亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mpa_output.s

?? samsung 9908DVD源代碼,
?? S
?? 第 1 頁 / 共 3 頁
字號:
/*
 *  mpa_output.s
 *
 *  MPEG/audio multichannel decoder.
 *	Copyright (C) 2003 Optical Player P/J, Samsung Electronics.
 *
 *  Output audio to IIS module or write file (*.pcm).
 */

.include	"mpa.h"

.secFILE_mpa_output

.if( OUPUT_2CH == TRUE )

/********************************************************************

 Function:		output_pcm_sample	(2-ch only)

 Description:	output channel mode:
 				
					typedef enum {
						AUDIO_NULL,
						MPEG1_MONO,
						MPEG1_STEREO,
						MPEG2_5CH,
						MPEG2_7CH,
						CHANNEL_TEST	// output test tone
					} MPA_Output_t;

				pcm_ch_buffer sample array:
				<---------  fixed length  --------->
				+----+----+----+----+----+----+----+-----------+
				|  L |  R |  C | Ls | Rs | Lc | Rc | ... next  |
				+----+----+----+----+----+----+----+-----------+

				audio buffer map:
				
				2-channel mode

				<----------  sample per each channel ---------->
				+---+---+---+---+---+---+----------------------+
				| L | R | L | R | L | R |       ....           |
				+---+---+---+---+---+---+----------------------+
				... 1152 th sample of channel 

				Configuration of SBF1 write mode:
				 - 16-bit mode 
				 	(1) MAC[23:8] => EMEM[15:0]
						mOVERFLOW_CHECK	An :  "eadd An, p"
								 	
				    (2) MAC[15:0] => EMEM[15:0]
				    	mOVERFLOW_CHECK	An :  "esra8 An" and "eincc An"

				 - 24-bit mode => MAC[23:0] => EMEM[31:0], zero extension

 Arguments:		
				index registers:
				@bank0
						d1		d0		s1		s0
				---------------------------------------
				sd0: 	 1 		 x	     -       1
				sd1: 	 x 		 x	     x       1
				sd2: 	 x 		 x	     x       1
				sd3:	 x		 0		 x	     x		SBF1

********************************************************************/
output_pcm_sample::
				er			xsd
				eld			sd0, #0x1001
				eld			sd1, #0x0001
				eld			sd2, #0x0001
				eld			sd3, #0x0000
				
				eld			rp0, #pcm_ch_buffer
	.if( _DECODER_TYPE != MPEG_1_AUDIO )
				eld			rp1, #pcm_dm_buffer
				eld			rp2, #pcm_lfe_buffer
	.endif
				eld			rp3, #SBF1_PTR

				ldw			a11, @[a10+_pParameter]
				ldb			r0, @[a11+_CH_Mode]
				ldb			r1, @[a11+_CH_Content]
				ldb			r2, @[a11+_LFE_Enable]
				ldb			r3, @[a10+_OutPCMSize]				
				ldw			a9, @[a10+_OutputBufferOffset]

				eld			d, #0				; zero sample
				ld			r6, #SAMPLES_PER_FRAME-1
				eld			a, rpd0.layer
				ecp			a, #LAYER_I
				ebra		ec1, %f2
				eld			a, rpd1.mpeg_version
				ecp			a, #_MPEG_1_AUDIO
				ebra		ec1, %f2
				ld			r6, #SAMPLES_PER_FRAME/3-1
				eld			a, rpd1.frameNo
				eld			b, #3
				mDIVIDE		a, b
				ecp			b, #0
				ebra		ec0, %f2
				ecld		r7, b
				dec			r7
				ld			r4, #0x1800
				cmp			eq, r3, #PCM_SAMPLE_24BITS
				brf			%f1
				sl			r4
%1				bnzd		r7, $
				add			a9, r4


; configuration of SBF1 write mode
%2				ld			a8, #SFR_BASE
				ldw			r4, @[a8+rCONFIG0]
				and			r4, #0xf0ff
				cmp			eq, r3, #PCM_SAMPLE_24BITS
				brt			mode_24bit
mode_16bit		or			r4, #0x0600
mode_24bit		ldw			@[a8+rCONFIG0], r4
				ldw			@[a8+rSBL1OFF], a9

; check channel mode
				cmp			eq, r0, #_MPEG1_MONO
				brt			chmd_mono
				cmp			eq, r0, #_MPEG1_STEREO
				brt			chmd_stereo
; if chmd set to _MPEG2_5CH or _MPEG2_7CH
				eld			a, rpd1.mc_channel
				ecp			a, #0
				ebra		ec1, chmd_downmix
				eld			b, rpd1.stereo
				ecp			b, #STEREO
				ebra		ec0, chmd_stereo
				ecp			b, #MONO
				ebra		ec0, chmd_mono
/** debug **/	bra			chmd_stereo


;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;::::::::::::::::::::[  channel config: MONO  ]::::::::::::::::::::::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
chmd_mono		esd0		s1, #MAX_CHANNEL
				cmp			eq, r1, #0			; channel content -> left ch
				brt			chmd_L_mono
				cmp			eq, r1, #1			; channel content -> right ch
				brf			chmd_L_mono

				erpn		rp0, #1				
chmd_R_mono		eld			a, @rp0+s1			; R

				eld			@rp3+d0, a			; L
				bnzd		r6, chmd_R_mono
				eld			@rp3+d0, a			; R
				bra			end_audio_output

chmd_L_mono		eld			a, @rp0+s1			; L

				eld			@rp3+d0, a			; L)
				bnzd		r6, chmd_L_mono
				eld			@rp3+d0, a			; R
				bra			end_audio_output


;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;:::::::::::::::::::[  channel config: STEREO  ]:::::::::::::::::::::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
chmd_stereo		esd0		s1, #MAX_CHANNEL-1
				
				;eld			a, rpd1.stereo
				;ecp			a, #MONO
				;ebra		ec0, chmd_mono

				;cmp			eq, r2, #TRUE
				;brf			chmd_stereo_2ch
				;eld			a, rpd0.lfe
				;ecp			a, #TRUE
				;ebra		ec0, chmd_stereo_lfe

chmd_stereo_2ch	eld			a, @rp0+s0			; L
				eld			b, @rp0+s1			; R

				eld			@rp3+d0, a			; L
				bnzd		r6, chmd_stereo_2ch
				eld			@rp3+d0, b			; R
				bra			end_audio_output

null_audio_output:
				eld			@rp3+d0, d			; L
				bnzd		r6, null_audio_output
				eld			@rp3+d0, d			; R

end_audio_output:
				ret


;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;:::::::::::::::::::[  channel config: DOWNMIX  ]::::::::::::::::::::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
chmd_downmix	eld			a, @rp1+s0			; Lo
				eld			b, @rp1+s0			; Ro

				eld			@rp3+d0, a			; L
				bnzd		r6, chmd_downmix
				eld			@rp3+d0, b			; R
				bra			end_audio_output

.endif /* .if( OUPUT_2CH == TRUE ) */


.if( OUPUT_6CH == TRUE )

/********************************************************************

 Function:		output_pcm_sample

 Description:	output channel mode:
 				
					typedef enum {
						AUDIO_NULL,
						MPEG1_MONO,
						MPEG1_STEREO,
						MPEG2_5CH,
						MPEG2_7CH,
						CHANNEL_TEST	// output test tone
					} MPA_Output_t;

				pcm_ch_buffer sample array:
				<---------  fixed length  --------->
				+----+----+----+----+----+----+----+-----------+
				|  L |  R |  C | Ls | Rs | Lc | Rc | ... next  |
				+----+----+----+----+----+----+----+-----------+

				pcm_dm_buffer sample array:				
				+----+----+----+----+-------------+
				| Lo | Ro | Lo | Ro |   ... next  |
				+----+----+----+----+-------------+

				pcm_lfe_buffer sample array:				
				+----+----+----+----+-------------+
				| s1 | s2 | s3 | s4 |   ... next  |
				+----+----+----+----+-------------+


				audio buffer map:
				
				8-channel mode (MPEG2_7CH)

				<----------  sample per each channel ---------->
				+-------+----+----+----+-------+----+-----+----+
				| L(Lo) | Ls |  C | Lc | R(Ro) | Rs | LFE | Rc | 
				+-------+----+----+----+-------+----+-----+----+
				... 1152 th sample of channel 


				6-channel mode (MPEG2_5CH) without augmentation channel 

				<-----  sample per each channel ----->
				+-------+----+----+-------+----+-----+
				| L(Lo) | Ls |  C | R(Ro) | Rs | LFE |
				+-------+----+----+-------+----+-----+
				... 1152 th sample of channel 
				NOTE: In downmix mode, other channels are pilled by zero

				Configuration of SBF1 write mode:
				 - 16-bit mode 
				 	(1) MAC[23:8] => EMEM[15:0]
						mOVERFLOW_CHECK	An :  "eadd An, p"
								 	
				    (2) MAC[15:0] => EMEM[15:0]
				    	mOVERFLOW_CHECK	An :  "esra8 An" and "eincc An"

				 - 24-bit mode => MAC[23:0] => EMEM[31:0], zero extension

 Arguments:		
				index registers:
				@bank0
						d1		d0		s1		s0
				---------------------------------------
				sd0: 	 1 		 x	     -       1
				sd1: 	 x 		 x	     x       1
				sd2: 	 x 		 x	     x       1
				sd3:	 x		 0		 x	     x		SBF1

********************************************************************/
output_pcm_sample::
				er			xsd
				eld			sd0, #0x1001
				eld			sd1, #0x0001
				eld			sd2, #0x0001
				eld			sd3, #0x0000
				
				eld			rp0, #pcm_ch_buffer
	.if( _DECODER_TYPE != MPEG_1_AUDIO )
				eld			rp1, #pcm_dm_buffer
				eld			rp2, #pcm_lfe_buffer
	.endif
				eld			rp3, #SBF1_PTR

				ldw			a11, @[a10+_pParameter]
				ldb			r0, @[a11+_CH_Mode]
				ldb			r1, @[a11+_CH_Content]
				ldb			r2, @[a11+_LFE_Enable]
				ldb			r3, @[a10+_OutPCMSize]				
				ldw			a9, @[a10+_OutputBufferOffset]

				eld			d, #0				; zero sample
				ld			r6, #SAMPLES_PER_FRAME-1
				eld			a, rpd0.layer
				ecp			a, #LAYER_I
				ebra		ec1, %f2
				eld			a, rpd1.mpeg_version
				ecp			a, #_MPEG_1_AUDIO
				ebra		ec1, %f2
				ld			r6, #SAMPLES_PER_FRAME/3-1
				eld			a, rpd1.frameNo
				eld			b, #3
				mDIVIDE		a, b
				ecp			b, #0
				ebra		ec0, %f2
				ecld		r7, b
				dec			r7
				ld			r4, #0x1800
				cmp			eq, r3, #PCM_SAMPLE_24BITS
				brf			%f1
				sl			r4
%1				bnzd		r7, $
				add			a9, r4


; configuration of SBF1 write mode
%2				ld			a8, #SFR_BASE
				ldw			r4, @[a8+rCONFIG0]
				and			r4, #0xf0ff
				cmp			eq, r3, #PCM_SAMPLE_24BITS
				brt			mode_24bit
mode_16bit		or			r4, #0x0600
mode_24bit		ldw			@[a8+rCONFIG0], r4
				ldw			@[a8+rSBL1OFF], a9

; check channel mode
				cmp			eq, r0, #_MPEG1_MONO
				brt			chmd_mono
				cmp			eq, r0, #_MPEG1_STEREO
				brt			chmd_stereo
; if chmd set to _MPEG2_5CH or _MPEG2_7CH
				eld			a, rpd1.mc_channel
				ecp			a, #0
				ebra		ec1, chmd_multich
				eld			b, rpd1.stereo
				ecp			b, #STEREO
				ebra		ec0, chmd_stereo
				ecp			b, #MONO
				ebra		ec0, chmd_mono
/** debug **/	bra			chmd_stereo

chmd_multich	cmp			eq, r0, #_MPEG2_DOWNMIX
				brt			chmd_downmix_51ch
				
				cmp			eq, r0, #_MPEG2_5CH
				brt			chmd_5ch_with_lfe
				cmp			eq, r0, #_MPEG2_7CH
				brt			chmd_7ch_with_lfe
				cmp			eq, r0, #_AUDIO_NULL
				brt			null_audio_output
				brf			null_audio_output


;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;::::::::::::::::::::[  channel config: MONO  ]::::::::::::::::::::::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
chmd_mono		esd0		s1, #MAX_CHANNEL
				cmp			eq, r1, #0			; channel content -> left ch
				brt			chmd_L_mono
				cmp			eq, r1, #1			; channel content -> right ch
				brf			chmd_L_mono

				erpn		rp0, #1				
chmd_R_mono		eld			a, @rp0+s1			; R

				eld			@rp3+d0, a			; L(Lo)
				eld			@rp3+d0, d			; Ls
				eld			@rp3+d0, d			; C
				eld			@rp3+d0, a			; R(Ro)
				eld			@rp3+d0, d			; Rs
				bnzd		r6, chmd_R_mono
				eld			@rp3+d0, d			; Lfe
				bra			end_audio_output

chmd_L_mono		eld			a, @rp0+s1			; L

				eld			@rp3+d0, a			; L(Lo)
				eld			@rp3+d0, d			; Ls
				eld			@rp3+d0, d			; C
				eld			@rp3+d0, a			; R(Ro)
				eld			@rp3+d0, d			; Rs
				bnzd		r6, chmd_L_mono
				eld			@rp3+d0, d			; Lfe
				bra			end_audio_output


chmd_mono_2ndST	esd0		s1, #MAX_CHANNEL-2
				
_2ndST			eld			a, @rp0+s0			; MONO
				eld			b, @rp0+s0			; L2
				eld			c, @rp0+s1			; R2

				eld			@rp3+d0, a			; L(Lo)
				eld			@rp3+d0, b			; Ls
				eld			@rp3+d0, d			; C
				eld			@rp3+d0, a			; R(Ro)
				eld			@rp3+d0, c			; Rs
				bnzd		r6, _2ndST
				eld			@rp3+d0, d			; Lfe
				bra			end_audio_output

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品婷婷国产综合久久性色| 久久综合色8888| 日韩一区在线免费观看| 成人妖精视频yjsp地址| 中文字幕在线免费不卡| 92精品国产成人观看免费| 亚洲人成7777| 69精品人人人人| 久久99精品久久久久婷婷| 久久五月婷婷丁香社区| 99视频热这里只有精品免费| 亚洲自拍偷拍综合| 日韩美女一区二区三区| 国产91高潮流白浆在线麻豆| 综合色天天鬼久久鬼色| 欧美一区二区三区在线观看视频| 精品亚洲国内自在自线福利| 欧美激情资源网| 欧美日韩在线三级| 狠狠色综合日日| 中文字幕佐山爱一区二区免费| 欧美日韩精品二区第二页| 国产一区二区精品久久91| 亚洲欧美激情视频在线观看一区二区三区 | 男男gaygay亚洲| 欧美成人官网二区| 91在线无精精品入口| 亚洲va韩国va欧美va| 26uuu国产日韩综合| 一本高清dvd不卡在线观看| 免费成人美女在线观看.| 国产精品色婷婷久久58| 91精选在线观看| 99久久久精品免费观看国产蜜| 日韩国产欧美视频| 亚洲欧美一区二区久久| 欧美成人性福生活免费看| 97久久精品人人爽人人爽蜜臀 | 成人欧美一区二区三区1314 | 欧美这里有精品| 国产乱子伦视频一区二区三区 | 久久色在线观看| 欧美亚洲国产一区二区三区va| 国产一区二区三区免费播放| 亚洲最快最全在线视频| 日本一区二区三区在线不卡 | 日韩vs国产vs欧美| 亚洲欧美自拍偷拍| 精品成人在线观看| 欧美日韩二区三区| 成人久久18免费网站麻豆| 日本亚洲一区二区| 怡红院av一区二区三区| 欧美精彩视频一区二区三区| 欧美va亚洲va国产综合| 欧美日韩精品电影| 欧美在线你懂得| 99久久精品国产一区二区三区| 另类人妖一区二区av| 午夜精品久久久久久久久久| 亚洲色图视频免费播放| 国产精品久久久久久久裸模| 久久亚洲春色中文字幕久久久| 69久久夜色精品国产69蝌蚪网| 欧美系列亚洲系列| 色天使色偷偷av一区二区| 99免费精品在线观看| 成人午夜碰碰视频| 成人一区在线观看| 国产成人综合在线观看| 精品一二三四区| 久久se这里有精品| 美女久久久精品| 久久精品国产**网站演员| 免费在线观看一区| 蜜桃视频在线观看一区| 日本不卡一区二区三区高清视频| 亚洲成人av福利| 午夜激情一区二区| 丝袜美腿亚洲一区| 免费av成人在线| 极品美女销魂一区二区三区免费| 麻豆免费精品视频| 国产九色sp调教91| 成人免费毛片高清视频| 成人福利视频在线看| 91在线观看成人| 欧美日韩一区国产| 337p亚洲精品色噜噜噜| 欧美电视剧在线看免费| 久久九九影视网| 亚洲欧洲无码一区二区三区| 一区二区在线观看av| 亚洲成av人片在线| 激情综合网天天干| 懂色av中文一区二区三区| av在线不卡免费看| 在线观看网站黄不卡| 欧美顶级少妇做爰| 欧美v日韩v国产v| 国产精品青草久久| 亚洲国产综合在线| 久久精品久久99精品久久| 国产精品一区二区三区网站| av亚洲精华国产精华精华 | av中文字幕在线不卡| 欧美无砖砖区免费| 欧美精品一区二区精品网| 国产精品素人视频| 亚洲自拍都市欧美小说| 精品在线播放免费| a4yy欧美一区二区三区| 欧美久久久久久久久久| 久久久久国色av免费看影院| 亚洲少妇最新在线视频| 美腿丝袜亚洲色图| 99精品国产91久久久久久| 在线不卡中文字幕| 国产精品免费看片| 日韩高清欧美激情| 成人免费精品视频| 国产激情视频一区二区在线观看| 色久综合一二码| 精品国产污网站| 亚洲综合在线视频| 成人一区二区视频| 在线综合亚洲欧美在线视频 | 一区二区三区高清不卡| 久久av资源站| 欧美日韩中文字幕一区二区| 国产亚洲综合性久久久影院| 亚洲h在线观看| 不卡免费追剧大全电视剧网站| 欧美日韩一区不卡| 最新热久久免费视频| 狠狠网亚洲精品| 4438x成人网最大色成网站| 国产精品国产a| 国产在线麻豆精品观看| 欧美美女视频在线观看| 亚洲三级在线播放| 国产精品中文字幕一区二区三区| 欧美老肥妇做.爰bbww视频| 国产精品夫妻自拍| 国产精品99久久久久久有的能看| 欧美三级日韩三级| 亚洲激情成人在线| 91美女片黄在线观看| 中文字幕第一区二区| 激情五月激情综合网| 在线播放亚洲一区| 亚州成人在线电影| 日本福利一区二区| 亚洲蜜臀av乱码久久精品蜜桃| 国产成人免费视频一区| 欧美v国产在线一区二区三区| 日韩av在线发布| 欧美精品v国产精品v日韩精品 | 国产精品乱人伦中文| 国产在线精品免费| 精品成人在线观看| 国产一区二区三区国产| 久久奇米777| 国产精品18久久久久| 精品福利一区二区三区| 激情图片小说一区| 久久亚洲欧美国产精品乐播| 国产伦精品一区二区三区在线观看| 精品国产成人系列| 国产高清在线观看免费不卡| 久久久久久久久一| 成人亚洲一区二区一| 国产精品卡一卡二| 色爱区综合激月婷婷| 亚洲午夜精品17c| 7799精品视频| 国产一区二区剧情av在线| 国产精品视频在线看| av成人免费在线观看| 亚洲毛片av在线| 91.com视频| 激情综合色播激情啊| 国产日韩欧美一区二区三区综合| 福利一区在线观看| 亚洲品质自拍视频网站| 欧美日本一区二区三区四区| 日韩vs国产vs欧美| 国产亚洲欧美色| 97超碰欧美中文字幕| 亚洲成人7777| 久久综合色一综合色88| 成人h动漫精品一区二区| 亚洲欧美区自拍先锋| 69堂国产成人免费视频| 国产剧情av麻豆香蕉精品| 日韩美女啊v在线免费观看| 91福利社在线观看| 日本不卡1234视频| 国产精品成人免费精品自在线观看| 色天使久久综合网天天|