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

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

?? zoom.bak

?? 一個兩碟控制的VCD的代碼,兩碟之間的轉動及連續播放,已大量生產的CODE.
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
/* Copyright 1997, ESS Technology, Inc.					*/
/* SCCSID @(#)zoom.c	1.63 6/11/98 */

/*
 * $Log$
 */

#ifdef ZOOM
#include "mvd.h"
#include "common.h"
#include "util.h"
#include "debug.h"
#include "display.h"
#include "zoom.h"
#include "buffer.h"
#include "fsosd.h"
#include "vp.h"
#include "vcxi.h"
#include "play.h"
#ifdef VSCALE
#include "vscale.h"
#endif
#ifdef CUST3
#include "const.h"
#include "custdsa.h"
#endif
#include "xport.h"

static unsigned int U_zoom_start , V_zoom_start, Y_zoom_start;

int save_width1;
int FromBtoB;
static int zoom_y_offset, zoom_uv_offset;
static unsigned int disp_width, disp_height;

PRIVATE void get_pic_size(void);
#ifdef PLAY20
extern int play_state;
#endif

#ifndef BF43
static int UV_location=-1;
#endif
extern int old_bane;
 
void Zoom_start()
{
    int       i, j, k, m, tmp;
    int       dest_u_start, dest_v_start, dest_y_start;
    int       wY, wUV;
    DISP_Info *dip, *dipp;
    unsigned  int buffer_size, height;
    extern int DISP_frame;
    int compressed = 0;
    int       v_start, u_start, y_start;
    int       width, full_height;
    extern int scale_dy_Y, scale_dy_UV;

    FromBtoB = 0;
    dip = DISP_info + DISP_frame;
    full_height = dip->height > 288;
    wY  = dip->wY;
    wUV = dip->wUV;

    if (!zoom_y_pos) zoom_y_pos = 2;
    k = (zoom_y_pos-2)*wY;
    if (full_height || dip->zUV) {   /* E2  or  E0 with compressing */
	zoom_uv_offset = ((zoom_y_pos-2) * wUV + ((zoom_x_pos * 3) >> 4))>>1;
	zoom_uv_offset = (zoom_uv_offset+1) / 3 * 3;
	tmp = zoom_uv_offset % wUV;
	m = zoom_uv_offset - tmp;

	if (full_height) {
	    mvd[vid_scn_misc0] &= 0xfffffffe;
	    mvd[vid_scn_misc0] |= 0x6000;

	    zoom_y_offset = (m << 2) + (tmp << 1);
	} else {
	    if (dip->zY)
		zoom_y_offset = k + (tmp << 1);
	    else {
		zoom_y_offset = (zoom_uv_offset/wUV * wY) << 1;
		zoom_y_offset += ((tmp << 2)/3) << 1;
	    }
	}
    }
    else {               /* E0 without compressing */
        zoom_y_offset = k + (zoom_x_pos >> 2);
        zoom_uv_offset = ((k + (zoom_x_pos >> 1)) >> 2);
    }
    zoom_y_offset &= 0xfffffffe;
    zoom_uv_offset += zoom_uv_offset/wUV*wUV;  /* this is because U, V buffer 
	is looked like uuuu..vvvv...uuu...vvv.. */
#ifndef BF43
    if (UV_location!=-1) {
        if (zoom_y_pos) {
        i = zoom_y_pos/scale_dy_Y * scale_dy_Y;
        }
        else
        i = 0;
        zoom_y_offset -= i*wY;
        zoom_uv_offset-= ((i>>1)<<1) * wUV ;
    }
#endif

    /* When E0 zoom by 2, or E2 zoom by 4, hardware cannot do vscale
       as Y,U,V wholely. So, we let hardware do Y vscale, and duplicate
       UV ourselfs by store UV to a temperary buffer, and duplicate the
       line .

       We use VBV buffer as temperary buffer to store U and V, with
       duplicated lines. 
     */

    if (zoom_level == 2 || !dip->zY || DISP_frame == 2) {
#ifndef BF43
	/* duplicated copy line */
	if(UV_location==-1)
          u_start = dip->startU + zoom_uv_offset;   /* dword address */
	else
          u_start = UV_location + zoom_uv_offset;   /* dword address */
#else
        u_start = dip->startU + zoom_uv_offset;   /* dword address */
#endif
        v_start = u_start + dip->wUV;   	  /* dword address */
	
	/* width of each line which needed to be duplicated */
        if (zoom_level == 1)                 /* E0 */
#ifndef BF43
	  if (!old_bane && mineomine) width = 21;
	  else
#endif
	    width = (wUV + 1) >> 1;
        else                                 /* E2 */
	    width = (wUV + 3) >> 2;
	height = dip->height >> 2;
	buffer_size = ((height * width) << 1);
	
	zoom_frame = -1;
	switch (DISP_frame) {
	  case 0:
	  case 1:
	    dipp = DISP_info + 2;
	    U_zoom_start = dipp->startY;
	    break;
	  case 2:
	    zoom_frame = H_VscaleFrame;
            if (vcx_scn_vscale != 0x10 
#ifdef PLAY20
		&& play_state != PLAY_STILL_STATE
		&& play_state != PLAY_WAIT_TIME_STATE
		&& !is_slide_show
#endif
	    ) {
		FromBtoB=1;
                dipp = DISP_info + 2;
	    }
            else 
	    {
#ifdef VSCALE
	    if (H_VscaleFrame == 1)
		dipp = DISP_info + 1;
	    else
		dipp = DISP_info + 0;
#else
	    dipp = DISP_info + 0;
#endif
	    }
        if (zoom_y_pos >= 76)
            U_zoom_start = dipp->startY;
        else
            U_zoom_start = dipp->startU - buffer_size * 2 ;
#ifndef BF43
	if (UV_location!=-1)
            U_zoom_start = (dipp->startU+dipp->height*dipp->wUV) -(buffer_size<<1) ;
#endif

            break;
	  default:
	    U_zoom_start = VBV_start;     /* E2 picture, zoom_buffer start */
	    				  /* at VBV buffer */
	    break;
	}
	V_zoom_start = U_zoom_start + buffer_size;
	j = 0; m=0;
	k = (width *3 ) >> 2;
	for (i = 0; i < (dip->height >> 2); i++) {
	    m = (i * wUV ) << 1;
	    {
		for (k = 0; k < width; k++) {
		    *(long*) dram(j + width + U_zoom_start) =
			*(long*) dram(j + U_zoom_start) = 
			    *(long*)dram(u_start + m);
		    *(long*) dram(j + width + V_zoom_start) =
			*(long*) dram(j + V_zoom_start) = 
			    *(long*)dram(v_start + m);
		    j++; m++;
		    asm("nop");
		    asm("nop");
		}
		j +=  width;
	    }
	}
    }

#ifndef BF43
    if (UV_location!=-1) {
        wY = dipp->wY;
	width <<=1;
	height = dipp->height>>1;
        Y_zoom_start = U_zoom_start - height*width;
        m = Y_zoom_start;
        u_start = dipp->startY + zoom_y_offset;   /* dword address */
        for (j=0;j<height;j++) {
          for (i=0;i<width;i++) {
             *(long*)dram(m)=*(long*)dram(u_start);
             m++; u_start++;
          }
          u_start += wY-width;
        }
    }
#endif
    /* with VSCALE on, we cannot use DMA_WIDTH2 register , always set
       DMA_WIDTH0 to 0, and DMA_WIDTH1 to real width.      */

    DISP_change_zoom(zoom_level);
    if (zoom_level == 1 && !full_height)
        mvd[buscon_dma_width1] = wY >> 1;
}

void zoom_reset()
{
    extern int disp_frame;
    extern int save_zoom_level;

    DO_blank();
    zoom_x_pos = 0;
    zoom_y_pos = 0;
    mvd[buscon_dma_scale_type] = 0;
    mvd[buscon_dma_width1] = save_width1;
    zoom_level = 0;
    DISP_change_zoom(zoom_level);
    if (vcx_scn_vscale != 0x10 && DISP_frame==2 && FromBtoB) {
         rescaleB();
    }
    disp_frame = DISP_frame;
}

rescaleB()
{
	resetVscale();
        initVscale_Pointer();
        VscaleStart = 1;
        VscaleLastFrame = 0;
        while (VscaleStart) vscale2();
}

void zoom_in(void)
{
    extern int VID_decoding_in_progress ;

/*  If system is not really pause, then ignore zoom_in key */
#ifdef PLAY20
    if (XPORT_active && play_state == PLAY_NORMAL_STATE)
        return;
#endif
    get_pic_size();

#if (!CUST71 && !CUSTDVD) /* For CUST71, this is handled in play.c */
    if (disp_height <= 288
#ifdef PLAY20
	|| is_slide_show || PLAY_e2_in_loop
#endif
	) {
	/* For low resolution, only do 2X zoom */
	if (zoom_level == 1)
	    return;
	zoom_level = 1;
    }
    else  
#endif	/* CUST71 */
    {
	if (zoom_level == 2)
	    return;
	zoom_level ++;
    }


    if (zoom_level == 1) {
	zoom_x_pos += disp_width >> 2;
	zoom_y_pos += disp_height >> 2;
    } else
    if (zoom_level == 2) {
	zoom_x_pos += disp_width >> 3;
	zoom_y_pos += disp_height >> 3;
    }
    save_width1 = mvd[buscon_dma_width1] ;
    DO_blank();

#ifndef BF43
    UV_location=-1;
    if (DISP_frame == 2 && vcx_scn_height == 288
#ifdef PLAY20
                && play_state != PLAY_STILL_STATE
                && play_state != PLAY_WAIT_TIME_STATE
                && !is_slide_show
#endif
	
    ) {
           Adjust_zoom_XY(zoom_x_pos, zoom_y_pos);
           scale_half();
           Zoom_start();
	   return;
    }
#endif

    pan(zoom_x_pos, zoom_y_pos);
    return;
}

void zoom_move_right()
{
    zoom_x_pos += HORZ_OFFSET;
    pan(zoom_x_pos, zoom_y_pos);
}

void zoom_move_left()
{
    zoom_x_pos -= HORZ_OFFSET;
    pan(zoom_x_pos, zoom_y_pos);
}

void zoom_move_up()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国av一区二区三区| 一区二区三区欧美日| 色天使久久综合网天天| 欧美三级三级三级| 亚洲成人福利片| 7777精品伊人久久久大香线蕉超级流畅| 亚洲精品国产成人久久av盗摄 | 国产日韩精品一区二区三区 | k8久久久一区二区三区 | 亚洲成av人片在www色猫咪| 91麻豆精品国产91久久久使用方法 | 国产成人亚洲综合a∨猫咪| 国产精品美女久久福利网站| 在线观看区一区二| 久久国产精品区| 国产精品久久午夜| 欧美精品自拍偷拍动漫精品| 国产一区二区三区免费播放| 亚洲人成精品久久久久久| 欧美精品1区2区3区| 国产一区二区三区在线观看免费| 国产欧美一区二区在线| 欧美天天综合网| 国产真实乱对白精彩久久| 国产精品无人区| 91精品国产免费久久综合| 国产精品资源网站| 午夜久久久久久久久久一区二区| 2023国产精品| 欧美精品少妇一区二区三区| 国产凹凸在线观看一区二区| 亚洲国产精品久久久男人的天堂 | 欧美高清在线一区二区| 欧美午夜片在线看| 国产91对白在线观看九色| 丝袜亚洲另类欧美综合| 国产精品视频麻豆| 欧美成人免费网站| 91成人在线观看喷潮| 国产成人精品亚洲日本在线桃色 | 精品国内片67194| 99久久精品国产精品久久| 日本亚洲欧美天堂免费| 日韩毛片在线免费观看| 日韩精品一区二区三区在线观看 | 欧美成人一区二区三区在线观看| 91视视频在线观看入口直接观看www| 麻豆精品新av中文字幕| 夜夜嗨av一区二区三区| 国产精品无圣光一区二区| 精品美女一区二区三区| 欧美精品一二三| 色就色 综合激情| 成人免费va视频| 国产一区二区精品在线观看| 蜜乳av一区二区| 日本视频一区二区三区| 一区二区三区蜜桃| 亚洲色图清纯唯美| 欧美国产精品v| 国产色产综合产在线视频| 欧美xxxxxxxxx| 欧美成人a在线| 日韩欧美国产一区二区三区| 欧美人xxxx| 欧美日韩精品欧美日韩精品| 欧美性xxxxx极品少妇| 91久久精品一区二区三区| www.av精品| 99视频超级精品| aaa亚洲精品| 色先锋久久av资源部| 波多野结衣视频一区| aaa欧美大片| 91麻豆免费视频| 欧美视频在线观看一区二区| 欧美丝袜丝交足nylons图片| 欧美色图免费看| 欧美精品99久久久**| 欧美一区二区在线不卡| 日韩免费视频一区二区| 精品伦理精品一区| 久久久久久久久99精品| 国产日韩v精品一区二区| 国产欧美日韩麻豆91| 国产精品麻豆一区二区| 亚洲男人天堂一区| 亚洲一二三区在线观看| 亚洲国产精品久久久久秋霞影院| 丝袜美腿亚洲色图| 韩国女主播成人在线观看| 国产成人精品亚洲777人妖| voyeur盗摄精品| 欧美午夜片在线观看| 欧美成人一区二区| 中文字幕一区二区三区在线不卡| 亚洲男人电影天堂| 秋霞影院一区二区| 欧美日本在线播放| www..com久久爱| 欧美三级视频在线播放| 日韩欧美一区二区在线视频| 欧美精品一区二区三区视频| 中文字幕一区二区三| 亚洲国产aⅴ天堂久久| 久久爱www久久做| av资源站一区| 欧美精品乱码久久久久久按摩| 精品久久久久av影院| 国产精品传媒视频| 日韩激情av在线| 欧美一级二级在线观看| 日韩制服丝袜av| 大尺度一区二区| 欧美性猛片aaaaaaa做受| 欧美一级国产精品| 精品国产麻豆免费人成网站| 视频一区欧美精品| 久久er99精品| 在线亚洲精品福利网址导航| 欧美卡1卡2卡| 最新中文字幕一区二区三区| 亚洲一级二级在线| 懂色中文一区二区在线播放| 一本色道久久综合亚洲aⅴ蜜桃| 欧美中文字幕一区二区三区 | 欧美一区二区美女| 国产亚洲人成网站| 亚洲午夜一区二区| 国产成人夜色高潮福利影视| 欧美日韩国产高清一区二区三区 | 亚洲国产成人精品视频| 韩国成人在线视频| 欧美区一区二区三区| 中文字幕在线不卡一区| 激情伊人五月天久久综合| 欧美日韩一区二区三区不卡| 亚洲三级在线看| 国产91精品在线观看| 欧美一区二区观看视频| 一区二区成人在线| 丁香天五香天堂综合| 日韩一级免费观看| 亚洲国产精品一区二区久久恐怖片 | 色综合久久66| 99riav久久精品riav| 国产精品亚洲一区二区三区妖精 | 国产美女精品人人做人人爽| 欧美挠脚心视频网站| 亚洲精品免费电影| 成人av网址在线观看| 久久亚洲一区二区三区四区| 免费的国产精品| 欧美一卡2卡3卡4卡| 亚洲va韩国va欧美va精品| 91国偷自产一区二区开放时间| 国产精品国产三级国产| 成人app在线| 国产精品久久久久久久久图文区 | 欧美日韩免费不卡视频一区二区三区 | 91在线精品一区二区| 国产精品午夜春色av| 粉嫩一区二区三区性色av| 久久久国产一区二区三区四区小说| 久久精品99国产国产精| 欧美成人福利视频| 国产一区二三区好的| 久久精品日产第一区二区三区高清版 | 精品一区二区免费视频| 精品国产乱码久久久久久图片| 久久99热这里只有精品| www成人在线观看| 国产成人精品免费视频网站| 欧美激情资源网| 99久久精品情趣| 亚洲精品高清在线| 欧美精品aⅴ在线视频| 蜜臀av一级做a爰片久久| 精品国产一区二区三区久久影院 | 五月天欧美精品| 日韩一区二区在线免费观看| 九一久久久久久| 亚洲国产精品二十页| 91色porny| 日本不卡123| 欧美激情综合网| 欧洲一区在线电影| 欧美aa在线视频| 国产亲近乱来精品视频| 在线日韩国产精品| 久久99精品视频| 国产精品毛片大码女人| 欧美性感一区二区三区| 亚洲一区二区三区美女| 欧美一级在线免费| 成人午夜免费视频| 性做久久久久久免费观看| 精品久久人人做人人爱| 99精品视频一区二区三区| 视频一区欧美日韩|