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

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

?? buffer.h

?? 一個兩碟控制的VCD的代碼,兩碟之間的轉動及連續播放,已大量生產的CODE.
?? H
字號:
/* Copyright 1996, ESS Technology, Inc.					*//* SCCSID @(#)buffer.h	1.68 3/6/98 *//* * $Log$ */#ifndef __BUFFER_H__#define __BUFFER_H__#include "common.h"#ifdef SUB_PICTURE#include "spu/spu.h"#endif/****************************************************************************** Audio and Video bitstream buffer in DRAM. All units in dword. ******************************************************************************/#ifdef MPEG1#ifdef SVCD#define ADAM		128#define MPEG_VBV_size	(4*47*8*ADAM/4)#define ABV_size	(4*11*ADAM)#define MPEG_VBV_start  (210032 + ADJUST_4_LINE)#define ABV_start       (8876+ADJUST_4_LINE)#else#define ADAM		128#define MPEG_VBV_size	(47*8*ADAM/4)#define ABV_size	(11*ADAM)#define MPEG_VBV_start	(3708+ADJUST_4_LINE)#define ABV_start	(2300+ADJUST_4_LINE)#endif#else#define ADAM		127#define MPEG_VBV_start	(0x46800/4)#define MPEG_VBV_size	(300*8*ADAM/4)#ifdef SUB_PICTURE#if SP_4_BITMODE/* 4 bit mode *//* old */#define ABV_start       (0x2b348/4)#define ABV_size        (ADAM*840/4)#if 0/* new */#define ABV_start       (0x68/4)#define ABV_size        (ADAM*872/4)#endif#else/* 8 bit mode */#define ABV_start       (0x5c00/4)#define ABV_size        (ADAM*2048/4)#endif#else#define ABV_start	(0x91800/4)#define ABV_size	(10*8*ADAM/4)#endif#endif#define MPEG_VBV_end		(VBV_start + VBV_size)#define ABV_end		(ABV_start + ABV_size)GBLDEF(int VBV_start, MPEG_VBV_start);GBLDEF(int VBV_end, 0);GBLDEF(int VBV_size, MPEG_VBV_size);/****************************************************************************** Number of dwords we read/write to the buffer with each DMA. Max 512. ******************************************************************************/#define VBV_read	(2*ADAM)#define VBV_write	(2*ADAM)#define ABV_read	ADAM#define ABV_write	ADAM/****************************************************************************** R/W pointers and transfer status flags. "filling" means xport buscon is running so buffer is being filled. "draining" means huffdec buscon is running so buffer is being drained. ******************************************************************************/GBLDEF_0 (int VBV_wrptr, 0);GBLDEF_0 (int VBV_rdptr, 0);GBLDEF (int ABV_wrptr, ABV_start);GBLDEF (int ABV_rdptr, ABV_start);GBLDEF_0 (int VBV_trigger, 0);GBLDEF_0 (int ABV_wrptr_save, 0);GBLDEF_0 (int BUF_ABV_overflow, 0);GBLDEF_0 (int ABV_filling,  0);GBLDEF_0 (int VBV_filling,  0);GBLDEF_0 (int ABV_draining, 0);GBLDEF_0 (int VBV_draining, 0);GBLDEF (int VBV_alarm, 1024);	/* VBV space threshold when alarm goes off */GBLDEF (int PCM_starved, 1);GBLDEF (int PCM_fake_data, 0);#ifdef WATCHDOGGBLDEF_0 (int VBV_ABV_xport_xfer_count, 0);GBLDEF_0 (int VBV_ABV_huffman_xfer_count, 0);#endif/****************************************************************************** Some macros for internal use. ******************************************************************************/#define BUF_distance(front_ptr, back_ptr, val, buf_size) do { \    (val) = (front_ptr) - (back_ptr); \    if (val < 0) val += buf_size; \} while (0)#define BUF_advance_ptr(ptr, ndword, buf) do {\    (ptr) += (ndword); \    if ((ptr) >= cat2(buf,_end)) (ptr) -= cat2(buf,_size); \} while (0)#define BUF_retreat_ptr(ptr, ndword, buf) do {\    (ptr) -= (ndword); \    if ((ptr) < cat2(buf,_start)) (ptr) += cat2(buf,_size); \} while (0)/****************************************************************************** Occupancy in system buffer. 0 means empty. ******************************************************************************/#define VBV_update_occupancy(val) \    BUF_distance(VBV_wrptr, VBV_rdptr, val, VBV_size)#define ABV_update_occupancy(val) \    BUF_distance(ABV_wrptr, ABV_rdptr, val, ABV_size)/****************************************************************************** Space in system buffer. ******************************************************************************/#define VBV_update_space(val) do {	\    val = VBV_rdptr - VBV_wrptr;	\    if (val <= 0) val += VBV_size;	\} while (0)#define ABV_update_space(val) do {	\    val = ABV_rdptr - ABV_wrptr;	\    if (val <= 0) val += ABV_size;	\} while (0)/****************************************************************************** The PCM buffer followed by the zero buffer. The zero buffer should be no more than 256 dwords in the MPEG2 layout, and 252 dwords in the MPEG1 layout. PCM_size must be a multiple of 384 for MUSICAM, and a multiple of 256 for AC3. ******************************************************************************/#ifdef MPEG1#ifdef ECHO#ifdef SVCD#define PCM_start       3836 #define PCM_size        4992	/* Must be multiple of 384 */#else#define PCM_start       126032#define PCM_size        4992	/* Must be multiple of 384 */#endif#else  /* No echo */#ifdef SVCD#define PCM_start       3068 #define PCM_size        5760    /* Must be multiple of 384 */#else#ifdef BF43#define PCM_start       125264#define PCM_size        5760    /* Must be multiple of 384 */#else#define PCM_start       126032#define PCM_size        4992    /* Must be multiple of 384 */#endif#endif#endif /* end of #ifdef ECHO */#define PCM_zero_size   48	/* The first 4 DW are used for "do blank" and				   the rest 44 DW are used for spatializer */#else#define PCM_start       773632#define PCM_size        2*6144	/* Must be multiple of 256 and 384 */#define PCM_zero_size   128#endif#define PCM_end         (PCM_start + PCM_size)#define PCM_zero_start  PCM_end#define PCM_zero_end    (PCM_zero_start + PCM_zero_size)/****************************************************************************** R/W pointers. PCM_raw_wrptr is where decoded audio goes. Data is taken from PCM_rdptr to be sent to the audio DAC.  Karaoke takes input from PCM_raw_rdptr. Results go to PCM_wrptr. If there is no karaoke PCM_raw_wrptr and PCM_wrptr are the same, and PCM_raw_rdptr doesn't exist. ******************************************************************************/GBLDEF (int PCM_raw_wrptr, PCM_start);GBLDEF (int PCM_rdptr, PCM_start);#ifdef KARAOKEGBLDEF (int PCM_wrptr, PCM_start);GBLDEF (int PCM_raw_rdptr, PCM_start);#ifdef SPATIALGBLDEF (int SPA_wrptr, PCM_start);#endif#else#define PCM_wrptr PCM_raw_wrptr#undef PCM_raw_rdptr#endif/****************************************************************************** Initialise all PCM pointers. ******************************************************************************/#ifdef KARAOKE#ifdef SPATIAL#define PCM_init_pointers() do {		\    PCM_rdptr = PCM_raw_wrptr = PCM_start;	\    PCM_wrptr = PCM_raw_rdptr = PCM_start;	\    SPA_wrptr = PCM_wrptr;                      \} while (0)#else#define PCM_init_pointers() do {		\    PCM_rdptr = PCM_raw_wrptr = PCM_start;	\    PCM_wrptr = PCM_raw_rdptr = PCM_start;	\} while (0)#endif#else#define PCM_init_pointers() PCM_rdptr = PCM_raw_wrptr = PCM_start#endif/****************************************************************************** Occupancy in PCM buffer. SPA_wrptr == PCM_rdptr means empty. ******************************************************************************/#if defined(KARAOKE) && defined(SPATIAL)#define PCM_update_occupancy(val) \    BUF_distance(SPA_wrptr, PCM_rdptr, val, PCM_size)#else#define PCM_update_occupancy(val) \    BUF_distance(PCM_wrptr, PCM_rdptr, val, PCM_size)#endif#ifdef KARAOKE#define PCM_update_raw_occupancy(val) \    BUF_distance(PCM_raw_wrptr, PCM_raw_rdptr, val, PCM_size)#else#define PCM_update_raw_occupancy(val) \    BUF_distance(PCM_raw_wrptr, PCM_rdptr, val, PCM_size)#endif/****************************************************************************** Room in PCM buffer for karaoke. ******************************************************************************/#ifdef KARAOKE#define PCM_update_kra_output_room(val) \    BUF_distance(PCM_raw_rdptr, PCM_wrptr, val, PCM_size)#define PCM_update_kra_input_available(val) \    BUF_distance(PCM_raw_wrptr, PCM_raw_rdptr, val, PCM_size)#endif/****************************************************************************** Room in PCM buffer for audio decoding. PCM_raw_wrptr == PCM_rdptr means buffer empty. ******************************************************************************/#define PCM_update_space(val) do { 	\    val = PCM_rdptr - PCM_raw_wrptr;	\    if (val <= 0) val += PCM_size;	\} while (0);/****************************************************************************** Some pointer advancement macros. These all assume that the buffer size is an integer multiple of the xfer size. ******************************************************************************/#define nice_ptr_advance(A, rw, n) do {	\    A##_##rw += n;			\    if (A##_##rw == A##_end)		\	A##_##rw = A##_start;		\} while (0)#define PCM_raw_wrptr_advance(n) nice_ptr_advance(PCM, raw_wrptr, n)#define PCM_rdptr_advance(n) nice_ptr_advance(PCM, rdptr, n)#define VBV_wrptr_advance(n) nice_ptr_advance(VBV, wrptr, n)#define VBV_rdptr_advance(n) nice_ptr_advance(VBV, rdptr, n)#define ABV_wrptr_advance(n) nice_ptr_advance(ABV, wrptr, n)#define ABV_rdptr_advance(n) nice_ptr_advance(ABV, rdptr, n)/****************************************************************************** Start d2a buscon. ******************************************************************************/#ifdef ZERO_BUFFER#define PCM_start_take_out() do {			\    assert(!(mvd[gate_d2a_ff_status]&0xff));		\    PCM_take_out();					\    buscon_irq_enable(buscon_d2a_runbit);		\} while (0);#else#define PCM_start_take_out() do {			\    assert(!(mvd[gate_d2a_ff_status]&0xff));		\    PCM_take_out();					\} while (0);#endif/****************************************************************************** Clear buffers. ******************************************************************************/#define PCM_clear_buffer() dram_clear(PCM_start, PCM_size)#define PCM_clear_zero_buffer() dram_clear(PCM_zero_start, PCM_zero_size)/****************************************************************************** Exported functions. ******************************************************************************/void VBV_start_filling(void);void ABV_start_filling(void);void VBV_stop_filling(void);void ABV_stop_filling(void);void VBV_ABV_stop_filling(void);void VBV_ABV_stop_draining(void);void VBV_ABV_set_parameters(int);void PCM_init(void);void PCM_take_out(void);void PCM_back_track(void);void BUSCON_interrupt_service(void);#endif /* __BUFFER_H__ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区欧美| 国产美女精品在线| 欧美色图第一页| 亚洲国产日产av| 91精品国产综合久久久久| 日韩综合小视频| 日韩欧美的一区| 国产成人啪免费观看软件| 中文字幕亚洲在| 婷婷六月综合网| 2024国产精品| 94色蜜桃网一区二区三区| 亚洲成人av中文| 精品欧美一区二区三区精品久久| 久久精品国产精品亚洲红杏| 国产欧美综合色| 色噜噜狠狠色综合中国| 日韩av一二三| 日本一区二区三区四区在线视频 | 一区二区三区四区在线播放| 日本精品一级二级| 久久99久国产精品黄毛片色诱| 久久久天堂av| 欧美在线你懂的| 精品系列免费在线观看| **欧美大码日韩| 91精品久久久久久久91蜜桃 | 久久综合色鬼综合色| 99久久精品国产麻豆演员表| 亚洲国产裸拍裸体视频在线观看乱了| 日韩一级片网站| 色呦呦日韩精品| 九一九一国产精品| **欧美大码日韩| 精品国产自在久精品国产| 在线免费观看一区| 国产精品一区二区久久精品爱涩| 亚洲三级久久久| 成人禁用看黄a在线| 午夜精品福利久久久| 亚洲国产成人午夜在线一区| 欧美精品v日韩精品v韩国精品v| 狠狠色综合日日| 五月婷婷久久丁香| 亚洲日本韩国一区| 国产日韩三级在线| 欧美一级搡bbbb搡bbbb| 色综合天天综合网天天狠天天| 韩国成人精品a∨在线观看| 亚洲一区二区三区激情| 国产精品久久久一本精品 | 日韩三级精品电影久久久| 91色|porny| 高清不卡在线观看av| 激情偷乱视频一区二区三区| 亚洲一区二区三区视频在线播放 | 亚洲婷婷在线视频| 中文字幕成人av| 日韩一区二区中文字幕| 欧美在线免费观看亚洲| 日本精品一级二级| 99久久99久久精品国产片果冻| 国产成人在线网站| 国产一区中文字幕| 久久成人羞羞网站| 全国精品久久少妇| 亚洲bt欧美bt精品| 亚洲一区二区三区三| 一区二区三区波多野结衣在线观看| 国产精品午夜在线| 国产精品美女久久久久av爽李琼| 精品国产乱码久久久久久蜜臀 | 欧美日韩免费电影| 91精彩视频在线观看| 在线免费观看日本欧美| 欧美在线观看一区二区| 丝袜诱惑制服诱惑色一区在线观看| 一区二区三区欧美| 洋洋av久久久久久久一区| 亚洲综合一区二区三区| 日韩美女精品在线| 欧美美女一区二区| 91麻豆精品国产综合久久久久久 | 亚洲国产视频一区| 污片在线观看一区二区| 免费成人在线播放| 国产在线视频不卡二| 国产成人欧美日韩在线电影| 成人免费毛片aaaaa**| 色综合久久中文综合久久97| 日本精品一区二区三区高清 | 2023国产精品视频| 亚洲国产高清aⅴ视频| 亚洲欧美综合在线精品| 亚洲综合精品久久| 免费一级欧美片在线观看| 老司机午夜精品99久久| 国产电影一区在线| 91麻豆自制传媒国产之光| 男女男精品视频网| 国产成人啪午夜精品网站男同| 99精品视频一区二区| 欧美三级三级三级爽爽爽| 日韩无一区二区| 亚洲国产精品成人久久综合一区| 一区二区三区在线观看视频| 日本欧美久久久久免费播放网| 国产麻豆午夜三级精品| 99re这里都是精品| 日韩欧美一级在线播放| 国产精品久久久一本精品| 亚洲va欧美va人人爽| 国产老肥熟一区二区三区| 日本国产一区二区| 欧美岛国在线观看| 亚洲乱码国产乱码精品精98午夜| 日韩精品一级中文字幕精品视频免费观看 | 精品欧美一区二区在线观看| 中文字幕中文乱码欧美一区二区| 亚洲成人免费在线| 国产精品自拍av| 欧美日韩久久一区| 亚洲国产成人私人影院tom | 亚洲欧美偷拍卡通变态| 奇米影视在线99精品| 成人激情小说网站| 欧美一区二区久久久| 亚洲婷婷国产精品电影人久久| 蜜臀av在线播放一区二区三区| av电影在线不卡| 精品少妇一区二区三区日产乱码| 一区二区三区在线观看网站| 国产精品夜夜嗨| 欧美一区二区三区在线观看| 亚洲人成精品久久久久| 狠狠v欧美v日韩v亚洲ⅴ| 欧美偷拍一区二区| 国产精品毛片久久久久久| 青青草国产精品97视觉盛宴| 91啪亚洲精品| 国产欧美一区二区精品婷婷| 蜜臀精品一区二区三区在线观看 | 亚洲激情图片小说视频| 亚洲精品国产一区二区精华液 | 精品视频一区 二区 三区| 国产精品人妖ts系列视频| 国产精品久久久久久久久免费丝袜| 奇米777欧美一区二区| 欧美日韩综合在线| 一区二区在线观看视频| 成人理论电影网| 国产欧美日韩另类一区| 狠狠狠色丁香婷婷综合激情 | 制服丝袜日韩国产| 亚洲在线成人精品| 日本久久一区二区| 有码一区二区三区| 91香蕉视频在线| 自拍偷在线精品自拍偷无码专区| 国产精品白丝jk黑袜喷水| 久久综合国产精品| 免费观看成人av| 日韩精品专区在线影院重磅| 天天操天天色综合| 欧美日韩国产系列| 亚洲成人1区2区| 欧美精品乱码久久久久久按摩 | 在线视频中文字幕一区二区| 亚洲免费在线视频| 色噜噜狠狠一区二区三区果冻| 亚洲欧美国产高清| 色偷偷88欧美精品久久久| 尤物视频一区二区| 欧美群妇大交群中文字幕| 午夜私人影院久久久久| 91精品国产色综合久久不卡蜜臀| 日本伊人色综合网| 日韩你懂的电影在线观看| 久久99精品国产麻豆不卡| 国产亚洲一区二区三区在线观看| 国产成人精品一区二| 国产精品久久看| 欧美网站一区二区| 麻豆精品久久久| 欧美精品一区二区三区很污很色的| 久久成人免费网| 国产视频亚洲色图| 一道本成人在线| 亚洲电影你懂得| 亚洲精品一区二区在线观看| 国产成人在线网站| 亚洲黄一区二区三区| 日韩一区二区在线观看| 国产成人精品影院| 亚洲成人av一区二区| 26uuu国产电影一区二区| 99这里只有精品| 婷婷亚洲久悠悠色悠在线播放 | 亚洲美女少妇撒尿| 91精品欧美久久久久久动漫 |