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

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

?? mpa_frame.s

?? samsung 9908DVD源代碼,
?? S
?? 第 1 頁 / 共 2 頁
字號:
/*
 *  mpa_frame.s
 *
 *  MPEG/audio multichannel decoder.
 *	Copyright (C) 2003 Optical Player P/J, Samsung Electronics.
 *
 */

.defvar 	_MPA_MEMALLOC

.include	"mpa.h"
.include 	"mpa_table.h"

.extern 	MPG_II_denormalize_sample
.extern 	MC_II_denormalize_sample


/* Section definition: MPEG Audio Decoder Main */

.secFILE_mpa_frame



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

 Function:		_MPADecoder

 Description:	MPEG/audio layer I, II multichannel decoder
 				main procedure.

 Prototype:		int MPADecoder(MainCodecShared_t *)

********************************************************************/
/* S5H5002 DVD Player function name */
_MPADecoder::
				push		a14
				jsr			__pushRegs

; Check first time initialization
				ldb			r0, @[a10+_CodecStartFlag]
				cmp			eq, r0, #TRUE
				jpf			initialize_mpeg_audio

START_DECODE:	; start MPEG audio multichannel decoding

.if( _CACHE_SIMULATION == TRUE )
				jsr			__cache_simul_on
.endif
				esec0		#ECP_Z
				esec1		#ECP_nZ
				esec2		#ECP_LE
				eld			c, #0					; zero register

				es			xsd						; default ext index register
				ebk			#1001b
				eld			sd0, c
				eld			sd3, c
				ebk			#0000b
				eld			sd0, c
				eld			sd3, c
				er			xsd
				ebk			#1111b
				eld			sd0, c
				eld			sd1, c
				eld			sd2, c
				eld			sd3, c
				ebk			#0000b
				eld			sd0, c
				eld			sd1, c
				eld			sd2, c
				eld			sd3, c

				er			psh1
				er			usm
				er			op
				er			opm
				er			xsd

; configuration of SBF0, SBF1 read/write mode
; SBF0: r, MAC[23:8] <= EMEM[15:0], MAC[7:0] <= 0
; SBF1: w, MAC[23:8] => EMEM[15:0]
				ld			a8, #SFR_BASE				/* sbl0off or sbl1off */
				ld			a9, #0
				ldw			r0, @[a8+rCONFIG0]
				and			r0, #0x00ff
				or			r0, #0x6600
				ldw			@[a8+rCONFIG0], r0
				ldw			@[a8+rSBL0OFF], a9

; global variable pointer
				eld			rpd0, #header_info
				eld			rpd1, #layer_info


;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;::                                                                ::;
;::                 MPEG-1 Layer I, II decoding                    ::;
;::                                                                ::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
; 3.8mips
__decoding_I_II_base_channel__
.if( _DEBUG_BITS == TRUE )
				ld			a11, #_bit_pos
				ld			r0, #0
				ldw			@[a11], r0
.endif

; search sync word and header parsing
				jsr			MPG_seek_sync_base				; return R2
				cmp			eq, r2, #_DECODE_OK
				brf 		error___MpegAudioDecode

; header parsing
				jsr			MPG_parse_base_header

; check main audio data is present or not
				eld			a, rpd1.frame_size
				ecld		r0, a
				cmp			gt, r0, #BASE_HEADER_SIZE
				brfd		error___MpegAudioDecode
				mRETURN		(_NO_MAIN_AUDIO_DATA)

; check protection and get CRC value if protection enable
				eld			a, rpd0.protection_bit
				ecp			a, #ERROR_PROTECT_NONE
				ebrad		ec0, crc_none
				eld			d, #-1
				eld			a, #CRC_WORD_LENGTH
				jsr			getbits
crc_none		eld			rpd0.crc_val, d

; do decode mpeg-1 stream
				eld			a, rpd0.layer
				ecp			a, #LAYER_I
				ebra		ec0, do_decode_layer_I
				ecp			a, #LAYER_II
				ebra		ec0, do_decode_layer_II
				brad		error___MpegAudioDecode
				mRETURN		(_ILLEGAL_LAYER)

do_decode_layer_I
				jsr			MPG_layer_I_decode
.ifdef _DEBUG_
;/** debug **/	jsr			print_fraction
.endif
				bra			decode_done

do_decode_layer_II
				jsr			MPG_layer_II_decode
.ifdef _DEBUG_
;/** debug **/	jsr			print_fraction
.endif

decode_done		cmp			eq,	r2, #_DECODE_OK
				brf			error___MpegAudioDecode

; detect for start position of MPEG-1 ancillary data field
				eld			a, rpd0.layer
				eld			b, rpd1.mpeg_version
				ecp			a, #LAYER_I
				ebra		ec1, check_offset
				ecp			b, #_MPEG_1_AUDIO
				ebra		ec1, __decoding_II_mc_channel__

check_offset	ld			a8, #SFR_BASE
				ldw			r1, @[a8+rSBL0OFF+0]
				ldw			r0, @[a8+rSBL0OFF+2]
;				ld			r3, #^(BS_MAIN-SB0_BASE)
;				ld			r2, #>(BS_MAIN-SB0_BASE)
				ld			a11, #_buffer_ptr
				ldw			r3, @[a11+_BS_MAIN+0]
				ldw			r2, @[a11+_BS_MAIN+2]
				sub			r2, #>SB0_BASE
				sbc			r3, #^SB0_BASE

				sub			r0, r2
				sbc			r1, r3
				cmp			eq, r1, #0
				brfd		error___MpegAudioDecode
				mRETURN		(_STREAM_IS_BROKEN)

				ecld		a, r0
				efz8		a
				eld			rpd1.base_last_pos, a
				eld			b, rpd1.frame_size
				eld			c, b
				esra		c
				etst 		c, t
				eincct		b
				ecld		r1, b
compare_offset	cmp 		gt, r0, r1
				brtd		error___MpegAudioDecode
				mRETURN		(_STREAM_IS_BROKEN)


;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;::                                                                ::;
;::                 MPEG-2 Multichannel decoding                   ::;
;::                                                                ::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
; routine for MPEG-2 multichannel part
; parsing mc header and search extension sync word
; 7.7mips
__decoding_II_mc_channel__
.if( _DECODER_TYPE != MPEG_1_AUDIO )
	.if( _DEBUG_BITS == TRUE )
				ld			a11, #_bit_pos
				ld			r0, #0
				ldw			@[a11], r0
	.endif
				eld			a, rpd1.mpeg_version
				ecld		r0, a
				cmp			eq, r0, #_MPEG_1_AUDIO
				brt			__synthesis_subband__

				eld			b, rpd0.layer
				ecld		r0, b
				cmp			eq, r0, #LAYER_I
				brt			decode_multichannel

; MC header parsing
				jsr			MC_parse_mc_header

; Default decoder is MPEG 2 decoder, following codes are
; detecting MPEG 1 stream.
				ld			a8, #SFR_BASE
				ldw			r1, @[a8+rSBL0OFF+0]
				ldw			r0, @[a8+rSBL0OFF+2]
;				ld			r3, #^(BS_MAIN-SB0_BASE)
;				ld			r2, #>(BS_MAIN-SB0_BASE)
				ld			a11, #_buffer_ptr
				ldw			r3, @[a11+_BS_MAIN+0]
				ldw			r2, @[a11+_BS_MAIN+2]
				sub			r2, #>SB0_BASE
				sbc			r3, #^SB0_BASE

				sub			r0, r2
				sbc			r1, r3
				cmp			eq, r1, #0
				brfd		error___MpegAudioDecode
				mRETURN		(_STREAM_IS_BROKEN)

				ecld		a, r0
				efz8		a
				eld			rpd1.base_last_pos, a
				eld			b, rpd1.frame_size
				ecld		r1, b
				cmp 		gt, r0, r1
				brt			mc_error

				eld			a, rpd1.mc_channel
				ecp			a, #0
				ebra		ec1, prepare_ext_stream

mc_error		eld			a, #_MPEG_1_AUDIO
				eld			rpd1.mpeg_version, a
				eld			b, #_MPEG1_STEREO
				eld			rpd1.channel_config, b
				jsr			MPG_II_denormalize_sample
				bra			__synthesis_subband__

prepare_ext_stream
				eld			a, rpd0.ext_stream_present
				ecp			a, #TRUE
				ebra		ec1, decode_multichannel

; move remained main frame data to mc buffer and
; remove MPEG1 ancillary data field
				ld			a8, #SFR_BASE
				ld			r0, #SB0_FLUSH
				ldw			@[a8+rSBFCON], r0

;				ld			a11, #BS_MAIN
;				ld			a12, #BS_MULTICHANNEL
				ld			a12, #_buffer_ptr
				ldw			a11, @[a12+_BS_MAIN]
				ldw			a12, @[a12+_BS_MULTICHANNEL]

				eld			a, rpd1.frame_size
				eld			b, rpd1.base_last_pos
				eld			c, rpd0.n_ad_bytes
				esub		a, b
				esub		a, c
				ecld		r6, a
				cmp			gt, r6, #0
/* debug */		brfd		search_ext_syncword
				eld			rpd1.mc_bs_size, a
				dec			r6
				ecld		r1, b
				add			a11, r1
copy_mpeg1		ldb			r0, @[a11]
				add			a11, #1
				ldb			@[a12], r0
				bnzd		r6, copy_mpeg1
				add			a12, #1

; search extension frame header
search_ext_syncword
				jsr			EXT_seek_sync_ext
				cmp			eq, r2, #_DECODE_OK
				brf 		error___MpegAudioDecode

decode_multichannel
				eld			a, #CRC_WORD_LENGTH
				jsr			getbits
				eld			rpd0.mc_crc_val, d

				jsr			MC_layer_II_decode
.ifdef _DEBUG_
;/** debug **/	jsr			print_fraction
.endif

				cmp			eq, r2, #_DECODE_OK
				brf			error___MpegAudioDecode

check_offset_mc	ld			a8, #SFR_BASE
				ldw			r1, @[a8+rSBL0OFF+0]
				ldw			r0, @[a8+rSBL0OFF+2]
;				ld			r3, #^(BS_MULTICHANNEL-SB0_BASE)
;				ld			r2, #>(BS_MULTICHANNEL-SB0_BASE)
				ld			a9, #_buffer_ptr
				ldw			r3, @[a9+_BS_MULTICHANNEL+0]
				ldw			r2, @[a9+_BS_MULTICHANNEL+2]
				sub			r2, #>SB0_BASE
				sbc			r3, #^SB0_BASE

				sub			r0, r2
				sbc			r1, r3
				ecld		a, r0
				efz8		a
				eld			rpd1.mc_last_pos, a


;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;::                                                                ::;
;::                    MPEG-2 LFE Dequantization                   ::;
;::                                                                ::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;

				eld			a, rpd0.lfe
				ecp			a, #TRUE
				ebra		ec1, __decoding_II_aug_channel__
				jsr			MC_II_lfe_dequantize

.endif /* .if( _DECODER_TYPE != MPEG_1_AUDIO ) */


;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;::                                                                ::;
;::                MPEG-2 Augmentation part decoding               ::;
;::                                                                ::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
; 4.35mips
__decoding_II_aug_channel__
.if( _DECODER_TYPE == MPEG_2_71CH )
				eld			rpd1, #layer_info
				eld			a, rpd1.mpeg_version
				eld			b, #0
				ecp			a, #_MPEG_1_AUDIO
				ebrad		ec0, __synthesis_subband__
				eld			rpd1.aug_channel, b
				ecp			a, #_MPEG_2_AUG_AUDIO
				ebra		ec1, __mc_dematrixing__

				eld			a, rpd1.stereo
				ecp			a, #STEREO
				ebra		ec1, aug_error
				eld			b, rpd0.surround
				ecp			b, #STEREO_SURROUND
				ebra		ec1, aug_error
				eld			c, rpd0.center
				ecp			c, #CENTER_NONE
				ebra		ec1, chk_mc_offset

aug_error		eld			a, #_MPEG_2_AUDIO		; mpeg default decoder
				eld			rpd1.mpeg_version, a
				eld			b, #_MPEG2_5CH
				eld			rpd1.channel_config, b
				jsr			MC_II_denormalize_sample
				bra			__mc_dematrixing__

chk_mc_offset	eld			a, rpd1.mc_last_pos
				eld			b, rpd1.mc_bs_size
				eld			c, b
				esra		c
				etst 		c, t
				eincct		b
				ecld		r0, a
				ecld		r1, b
				cmpu		ge, r0, r1
				brt			correct_aug_stream

decode_aug_part	eld			a, #2
				eld			rpd1.aug_channel, a
				jsr			AUG_layer_II_decode
.ifdef _DEBUG_
;/** debug **/	jsr			print_fraction
.endif

				cmp			eq, r2, #_DECODE_OK
				brt			__mc_dematrixing__
				bra			error___MpegAudioDecode

correct_aug_stream
				eld			a, #_MPEG_2_AUDIO		; mpeg default decoder
				eld			rpd1.mpeg_version, a
				eld			b, #_MPEG2_5CH
				eld			rpd1.channel_config, b
				jsr			MC_II_denormalize_sample
				bra			__mc_dematrixing__
.endif /* .if( _DECODER_TYPE == MPEG_2_71CH ) */


;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;::                                                                ::;
;::                    MC prediction coding mode                   ::;
;::                                                                ::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
prediction_buffering
; mc prediction mode is not supported.
;				eld			a, rpd1.mc_prediction_on
;				ecp			a, #TRUE
;				ebra		ec1, __mc_dematrixing__
;				jsr			MC_II_prediction



;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;::                                                                ::;
;::            Multichannel dematrix and denormalization           ::;
;::                                                                ::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
; 3.86mips
__mc_dematrixing__
.if( _DECODER_TYPE != MPEG_1_AUDIO )
				jsr			MC_II_dematricing
	.ifdef _DEBUG_
;/** debug **/	jsr			print_fraction
	.endif

				eld			a, rpd1.mpeg_version
				ecp			a, #_MPEG_2_AUG_AUDIO
				ebra		ec0, __aug_dematrixing__

				jsr			MC_II_denormalizing
	.ifdef _DEBUG_
;/** debug **/	jsr			print_fraction
	.endif
				bra			__synthesis_subband__


__aug_dematrixing__
.if( _DECODER_TYPE == MPEG_2_71CH )
				jsr			MC_AUG_dematricing
	.ifdef _DEBUG_
;/** debug **/	jsr			print_fraction
	.endif

				jsr			MC_AUG_denormalizing
	.ifdef _DEBUG_
;/** debug **/	jsr			print_fraction
	.endif
.endif /* .if( _DECODER_TYPE == MPEG_2_71CH ) */

.endif /* .if( _DECODER_TYPE != MPEG_1_AUDIO ) */



;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;::                                                                ::;
;::                  Subband synthesis processing                  ::;
;::                                                                ::;
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;
;				index registers:
;				@bank0
;						d1		d0		s1		s0
;				---------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级电影网| 欧美亚洲综合另类| 日韩欧美一区二区不卡| 视频在线在亚洲| 3d动漫精品啪啪一区二区竹菊| 视频在线在亚洲| 精品久久99ma| 丁香六月综合激情| 亚洲精品中文字幕在线观看| 欧美日韩成人一区二区| 久久99精品国产麻豆婷婷| 国产亚洲一区二区三区| 成人开心网精品视频| 一区二区免费在线| 91精品国产麻豆| 成熟亚洲日本毛茸茸凸凹| 亚洲理论在线观看| 欧美一卡二卡三卡四卡| 岛国精品在线观看| 天天综合日日夜夜精品| 久久久精品国产免费观看同学| 日本高清视频一区二区| 久久99精品久久久久久久久久久久| 中文字幕欧美区| 欧美肥胖老妇做爰| 不卡一区二区中文字幕| 日日欢夜夜爽一区| 国产精品色眯眯| 91精品婷婷国产综合久久竹菊| 丁香婷婷综合激情五月色| 亚洲国产精品久久一线不卡| 久久精品一区二区| 欧美日韩国产高清一区二区三区| 丰满亚洲少妇av| 日本vs亚洲vs韩国一区三区二区 | 亚洲精品国产a| 精品国产青草久久久久福利| 一本一本大道香蕉久在线精品| 久久精品噜噜噜成人88aⅴ| 亚洲美女电影在线| 国产午夜精品福利| 日韩视频中午一区| 在线视频欧美精品| 成人午夜短视频| 免费美女久久99| 亚洲高清不卡在线观看| 国产精品久久久久天堂| www久久精品| 91精品国产综合久久久久久久久久 | 亚洲电影第三页| 国产精品成人在线观看| 久久久国产一区二区三区四区小说| 欧美猛男男办公室激情| 色欧美片视频在线观看 | 亚洲一区在线视频观看| 中文字幕免费不卡在线| 欧美精品一区二区蜜臀亚洲| 91精品国产91久久久久久一区二区| 色伊人久久综合中文字幕| 99久久精品国产精品久久| 国产成人免费视频网站高清观看视频| 日本sm残虐另类| 亚洲18女电影在线观看| 亚洲第一福利视频在线| 亚洲福利一二三区| 亚洲一级片在线观看| 亚洲影院在线观看| 一区二区三区在线看| 亚洲精品伦理在线| 亚洲一区二区中文在线| 亚洲国产欧美日韩另类综合 | 国产午夜精品一区二区三区四区| 91精品国产综合久久精品图片| 欧美日韩国产系列| 欧美精品高清视频| 51精品秘密在线观看| 日韩免费一区二区| 精品日韩在线观看| 亚洲精品一区二区三区影院 | 亚洲制服丝袜在线| 亚洲成人自拍网| 人人狠狠综合久久亚洲| 极品美女销魂一区二区三区免费| 久久机这里只有精品| 激情欧美一区二区| 国产电影精品久久禁18| 成人av在线网站| 日本道免费精品一区二区三区| 91黄色小视频| 欧美美女喷水视频| xf在线a精品一区二区视频网站| 久久久久成人黄色影片| 国产精品不卡在线| 亚洲尤物在线视频观看| 免费成人av在线| 丁香激情综合五月| 欧洲亚洲国产日韩| 日韩精品专区在线影院观看| 国产丝袜美腿一区二区三区| 亚洲视频一二区| 天天av天天翘天天综合网色鬼国产| 蜜桃精品视频在线观看| 国产99精品在线观看| 色婷婷亚洲综合| 日韩视频一区二区| 国产精品久久久久影院亚瑟| 亚洲成人tv网| 国产成人啪免费观看软件| 在线观看成人免费视频| 欧美大片一区二区三区| 亚洲欧洲日韩综合一区二区| 亚洲成人激情社区| 国产麻豆精品theporn| 在线区一区二视频| 久久综合色播五月| 亚洲五码中文字幕| 国产精品2024| 在线电影欧美成精品| 欧美精品一二三| 91麻豆精品国产91久久久使用方法| 欧美tk—视频vk| 亚洲欧美一区二区三区孕妇| 久久精品99国产精品| 99久久久国产精品| 日韩免费一区二区| 一区二区三国产精华液| 国产乱码精品一品二品| 欧美日韩久久不卡| 中文字幕在线不卡一区二区三区| 捆绑调教美女网站视频一区| 色欧美日韩亚洲| 欧美国产成人在线| 久久丁香综合五月国产三级网站| 色综合天天做天天爱| 久久午夜免费电影| 午夜精品一区二区三区三上悠亚| 97久久超碰精品国产| 久久久久久电影| 麻豆一区二区99久久久久| 欧美日韩免费电影| 最新高清无码专区| 国产成人av电影在线| 日韩欧美一二三四区| 午夜电影一区二区| 日本久久电影网| 中文字幕一区二区日韩精品绯色| 91国产免费观看| 国产人成一区二区三区影院| 麻豆成人综合网| 欧美一区二区久久久| 亚洲成av人影院| 欧美最猛黑人xxxxx猛交| 日韩美女精品在线| 成人av在线观| 国产精品电影一区二区三区| 粉嫩高潮美女一区二区三区| wwww国产精品欧美| 韩国三级电影一区二区| 精品欧美一区二区在线观看| 日韩精品一级二级| 欧美精品vⅰdeose4hd| 亚洲成人精品在线观看| 欧美日韩一区二区三区四区五区 | 国产精品一区不卡| 久久中文娱乐网| 国产一区福利在线| 久久久久久久免费视频了| 韩国一区二区视频| 国产午夜精品久久久久久免费视| 国产传媒一区在线| 久久久精品黄色| 成人丝袜18视频在线观看| 欧美国产乱子伦 | 国产成人综合在线观看| 欧美激情在线观看视频免费| 不卡电影免费在线播放一区| 日韩一区欧美一区| 色欧美日韩亚洲| 亚洲6080在线| 日韩欧美一区在线| 国产一区二区看久久| 久久精品男人天堂av| 91亚洲精品一区二区乱码| 亚洲国产中文字幕| 日韩欧美123| 成人性生交大合| 亚洲一区二区三区四区在线| 51久久夜色精品国产麻豆| 国产精品主播直播| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 一区二区三区成人在线视频| 制服丝袜亚洲色图| 国内一区二区视频| 亚洲色图20p| 91精品国产黑色紧身裤美女| 国产a区久久久| 亚洲国产日韩综合久久精品| 欧美大肚乱孕交hd孕妇| 成人精品视频一区二区三区尤物| 亚洲综合偷拍欧美一区色|