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

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

?? capxfer.c

?? 一個視頻采集驅動程序的源代碼
?? C
字號:
//==========================================================================;
//
//  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
//  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
//  PURPOSE.
//
//  Copyright (c) 1992 - 1997  Microsoft Corporation.  All Rights Reserved.
//
//==========================================================================;

#include "strmini.h"
#include "ksmedia.h"
#include "capmain.h"
#include "capdebug.h"
#include "capxfer.h"

//
// EIA-189-A Standard color bar definitions
//

// 75% Amplitude, 100% Saturation
const static UCHAR NTSCColorBars75Amp100SatRGB24 [3][8] = 
{
//  Whi Yel Cya Grn Mag Red Blu Blk
    191,  0,191,  0,191,  0,191,  0,    // Blue
    191,191,191,191,  0,  0,  0,  0,    // Green
    191,191,  0,  0,191,191,  0,  0,    // Red
};

// 100% Amplitude, 100% Saturation
const static UCHAR NTSCColorBars100Amp100SatRGB24 [3][8] = 
{
//  Whi Yel Cya Grn Mag Red Blu Blk
    255,  0,255,  0,255,  0,255,  0,    // Blue
    255,255,255,255,  0,  0,  0,  0,    // Green
    255,255,  0,  0,255,255,  0,  0,    // Red
};

const static UCHAR NTSCColorBars100Amp100SatYUV [4][8] = 
{
//  Whi Yel Cya Grn Mag Red Blu Blk
    128, 16,166, 54,202, 90,240,128,    // U
    235,211,170,145,106, 81, 41, 16,    // Y
    128,146, 16, 34,222,240,109,128,    // V
    235,211,170,145,106, 81, 41, 16     // Y
};

/*
** ImageSynth()
**
**   Synthesizes NTSC color bars, white, black, and grayscale images
**
** Arguments:
**
**   pSrb - The stream request block for the Video stream
**   ImageXferCommands - Index specifying the image to generate
**
** Returns:
**
**   Nothing
**
** Side Effects:  none
*/

void ImageSynth (
    IN OUT PHW_STREAM_REQUEST_BLOCK pSrb,
    IN ImageXferCommands Command,
    IN BOOL FlipHorizontal
    )
{
    PSTREAMEX               pStrmEx = (PSTREAMEX)pSrb->StreamObject->HwStreamExtension;
    PHW_DEVICE_EXTENSION    pHwDevExt = ((PHW_DEVICE_EXTENSION)pSrb->HwDeviceExtension);
    int                     StreamNumber = pSrb->StreamObject->StreamNumber;
    KS_VIDEOINFOHEADER      *pVideoInfoHdr = pStrmEx->pVideoInfoHeader;

    UINT biWidth        =   pVideoInfoHdr->bmiHeader.biWidth;
    UINT biHeight       =   pVideoInfoHdr->bmiHeader.biHeight;
    UINT biSizeImage    =   pVideoInfoHdr->bmiHeader.biSizeImage;
    UINT biWidthBytes   =   KS_DIBWIDTHBYTES (pVideoInfoHdr->bmiHeader);
    UINT biBitCount     =   pVideoInfoHdr->bmiHeader.biBitCount;
    UINT LinesToCopy    =   abs (biHeight);
    DWORD biCompression =   pVideoInfoHdr->bmiHeader.biCompression;

    UINT                    Line;
    PUCHAR                  pLineBuffer;

    PKSSTREAM_HEADER        pDataPacket = pSrb->CommandData.DataBufferArray;
    PUCHAR                  pImage =  pDataPacket->Data;

    DEBUG_ASSERT (pSrb->NumberOfBuffers == 1);

#if 0
    // Note:  set "ulInDebug = 1" in a debugger to view this output with .ntkern
    DbgLogTrace(("\'TestCap: ImageSynthBegin\n"));
    DbgLogTrace(("\'TestCap: biSizeImage=%d, DataPacketLength=%d\n", 
            biSizeImage, pDataPacket->DataPacketLength));
    DbgLogTrace(("\'TestCap: biWidth=%d biHeight=%d WidthBytes=%d bpp=%d\n", 
            biWidth, biHeight, biWidthBytes, biBitCount));
    DbgLogTrace(("\'TestCap: pImage=%x\n", pImage));
#endif

    // 
    // Synthesize a single line of image data, which will then be replicated
    //

    pLineBuffer = &pStrmEx->LineBuffer[0];

    if ((biBitCount == 24) && (biCompression == KS_BI_RGB)) {

        switch (Command) {
    
        case IMAGE_XFER_NTSC_EIA_100AMP_100SAT:
            // 100% saturation
            {
                UINT x, col;
                PUCHAR pT = pLineBuffer;
        
                for (x = 0; x < biWidth; x++) {
                    col = (x * 8) / biWidth;
                    col = FlipHorizontal ? (7 - col) : col;
                    
                    *pT++ = NTSCColorBars100Amp100SatRGB24[0][col]; // Red
                    *pT++ = NTSCColorBars100Amp100SatRGB24[1][col]; // Green
                    *pT++ = NTSCColorBars100Amp100SatRGB24[2][col]; // Blue
                }
            }
            break;
    
        case IMAGE_XFER_NTSC_EIA_75AMP_100SAT:
            // 75% Saturation
            {
                UINT x, col;
                PUCHAR pT = pLineBuffer;
        
                for (x = 0; x < biWidth; x++) {
                    col = (x * 8) / biWidth;
                    col = FlipHorizontal ? (7 - col) : col;

                    *pT++ = NTSCColorBars75Amp100SatRGB24[0][col]; // Red
                    *pT++ = NTSCColorBars75Amp100SatRGB24[1][col]; // Green
                    *pT++ = NTSCColorBars75Amp100SatRGB24[2][col]; // Blue
                }
            }
            break;
    
        case IMAGE_XFER_BLACK:
            // Camma corrected Grayscale ramp
            {
                UINT x, col;
                PUCHAR pT = pLineBuffer;
        
                for (x = 0; x < biWidth; x++) {
                    col = (255 * (x * 10) / biWidth) / 10;
                    col = FlipHorizontal ? (255 - col) : col;

                    *pT++ = (BYTE) col; // Red
                    *pT++ = (BYTE) col; // Green
                    *pT++ = (BYTE) col; // Blue
                }
            }
            break;
    
        case IMAGE_XFER_WHITE:
            // All white
            RtlFillMemory(
                pLineBuffer,
                biWidthBytes,
                (UCHAR) 255);
            break;
    
        case IMAGE_XFER_GRAY_INCREASING:
            // grayscale increasing with each image captured
            RtlFillMemory(
                pLineBuffer,
                biWidthBytes,
                (UCHAR) (pStrmEx->FrameInfo.PictureNumber * 8));
            break;
    
        default:
            break;
        }
    } // endif RGB24

    else if ((biBitCount == 16) && (biCompression == FOURCC_YUV422)) {

        switch (Command) {
    
        case IMAGE_XFER_NTSC_EIA_100AMP_100SAT:
        default:
            {
                UINT x, col;
                PUCHAR pT = pLineBuffer;
        
                for (x = 0; x < (biWidth / 2); x++) {
                    col = (x * 8) / (biWidth / 2);
                    col = FlipHorizontal ? (7 - col) : col;

                    *pT++ = NTSCColorBars100Amp100SatYUV[0][col]; // U
                    *pT++ = NTSCColorBars100Amp100SatYUV[1][col]; // Y
                    *pT++ = NTSCColorBars100Amp100SatYUV[2][col]; // V
                    *pT++ = NTSCColorBars100Amp100SatYUV[3][col]; // Y
                }
            }
            break;
        }
    } 

    else {
        DbgLogError(("\'TestCap: Unknown format in ImageSynth!!!\n"));
        TRAP;
    }


    // 
    // Copy the single line synthesized to all rows of the image
    //

    for (Line = 0; Line < LinesToCopy; Line++, pImage += biWidthBytes) {

        // Show some action on an otherwise static image
        // This will be a changing grayscale horizontal band
        // at the bottom of an RGB image and a changing color band at the 
        // top of a YUV image

        if (Line >= 3 && Line <= 6) {
            UINT j;
            for (j = 0; j < biWidthBytes; j++) {
                *(pImage + j) = (UCHAR) pStrmEx->FrameInfo.PictureNumber;
            }
            continue;
        }

        // Copy the synthesized line

        RtlCopyMemory(
                pImage,
		        pLineBuffer,
		        biWidthBytes);
    }

    //
    // Report back the actual number of bytes copied to the destination buffer
    // (This can be smaller than the allocated buffer for compressed images)
    //

    pDataPacket->DataUsed = biSizeImage;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲中文日韩久久av乱码| 亚洲bt欧美bt精品777| 精品女同一区二区| 蓝色福利精品导航| 综合婷婷亚洲小说| 激情综合色播五月| 欧美日韩国产系列| 欧美一区二区三区四区高清 | 日韩不卡一区二区三区| 美女视频黄 久久| 成人av资源站| 欧美日韩精品一区视频| 亚洲精品一区在线观看| 午夜激情一区二区| 色综合激情五月| 久久网站最新地址| 久久国产精品无码网站| 欧美日韩在线播放三区四区| 久久婷婷成人综合色| 亚洲成年人网站在线观看| 国产麻豆午夜三级精品| 色综合久久综合网97色综合| 制服丝袜在线91| 亚洲尤物在线视频观看| 在线播放国产精品二区一二区四区 | 亚洲欧美视频在线观看| 国产美女视频一区| 亚洲美腿欧美偷拍| 日韩一区二区视频| 欧美午夜精品久久久久久孕妇| 久久伊99综合婷婷久久伊| 精品久久久久久亚洲综合网 | 精品日韩欧美在线| 99久久99久久精品免费观看| 免费在线观看视频一区| 有坂深雪av一区二区精品| 国产亚洲综合在线| 精品国产乱码91久久久久久网站| 欧美日韩欧美一区二区| 麻豆91在线观看| 亚洲天堂精品视频| 日韩网站在线看片你懂的| 国产91高潮流白浆在线麻豆| 国产精品高潮呻吟久久| 欧美日韩精品一区二区三区四区| 狠狠色综合播放一区二区| 久久精品亚洲乱码伦伦中文| 色综合天天做天天爱| 狠狠网亚洲精品| 日韩av不卡在线观看| 亚洲三级电影网站| 久久九九影视网| 欧美日韩国产bt| 99精品视频免费在线观看| 黄色精品一二区| 美女mm1313爽爽久久久蜜臀| 亚洲私人影院在线观看| 欧美一级片在线看| 99re这里只有精品首页| 风间由美一区二区三区在线观看| 五月婷婷欧美视频| 亚洲三级理论片| 亚洲三级免费电影| 国产精品久久久久久久久久久免费看 | 亚洲三级小视频| 中文字幕乱码日本亚洲一区二区| 欧美日韩一区二区欧美激情| 欧美亚洲禁片免费| 欧美日韩日日摸| 欧美伦理视频网站| 91精品欧美一区二区三区综合在| 日韩精品一区在线| 91在线观看成人| 一本色道综合亚洲| 337p亚洲精品色噜噜| 国产亚洲欧美激情| 国产亚洲一本大道中文在线| 国产精品久久久久永久免费观看| 久久蜜桃一区二区| 日本一区二区三区免费乱视频 | 亚洲一区二区精品久久av| 一区二区三区中文在线| 午夜影院久久久| 麻豆国产精品官网| 国产99久久久精品| 欧美午夜影院一区| 久久久久久久综合| 亚洲成人中文在线| 轻轻草成人在线| 国产成人高清视频| 色妞www精品视频| 精品少妇一区二区三区日产乱码| 国产精品午夜在线| 美女视频黄 久久| 91免费版pro下载短视频| 制服丝袜亚洲网站| 日韩理论片中文av| 国产一区二区网址| 欧美精品日韩综合在线| 亚洲欧洲综合另类在线| 国产99久久久国产精品| 欧美疯狂做受xxxx富婆| 国产精品国产三级国产普通话99 | 成人久久视频在线观看| 91.com视频| 亚洲一二三四在线| 日本精品一级二级| 国产精品久久久久久一区二区三区| 青青草原综合久久大伊人精品优势| 99re视频精品| 中文字幕+乱码+中文字幕一区| 狠狠色综合日日| 国产欧美精品一区二区三区四区| 免费成人av资源网| 久久综合九色欧美综合狠狠| 国内欧美视频一区二区| 欧美va亚洲va在线观看蝴蝶网| 国产福利精品一区| 亚洲色欲色欲www| 91精品麻豆日日躁夜夜躁| 国产精品一区二区在线观看不卡| 亚洲私人黄色宅男| 欧美一级在线观看| 99久久99久久免费精品蜜臀| 视频一区中文字幕| 亚洲免费在线播放| 国产欧美日韩亚州综合| 色悠悠亚洲一区二区| 国产真实乱子伦精品视频| 亚洲国产sm捆绑调教视频| 国产区在线观看成人精品| 欧美性videosxxxxx| av在线一区二区| 国产成人在线影院| 7777精品伊人久久久大香线蕉经典版下载| 日韩极品在线观看| 国产精品久久久久三级| 欧美日韩一级大片网址| 国产91在线观看| 久久福利资源站| 亚洲成人av免费| 亚洲综合自拍偷拍| 国产精品午夜在线| 精品国产乱码久久久久久浪潮| 国产成人在线网站| 国产自产高清不卡| 男女男精品视频网| 一区二区在线观看不卡| 国产欧美一区二区在线观看| 精品国产乱码久久久久久久久 | 国产伦理精品不卡| 久久99在线观看| 九九精品一区二区| 国产不卡一区视频| 成人精品在线视频观看| 床上的激情91.| 欧美在线|欧美| 欧美一区二区三区的| 欧美成人伊人久久综合网| 欧美一区二区精品在线| 精品国产一区久久| 国产精品国产三级国产专播品爱网 | 丁香天五香天堂综合| 99久久久免费精品国产一区二区| 99精品欧美一区二区三区综合在线| 不卡高清视频专区| 欧美日韩综合一区| 久久久国际精品| 自拍偷拍国产精品| 日韩不卡一区二区三区| 国产99一区视频免费| 欧美日高清视频| 精品国产sm最大网站| 成人欧美一区二区三区1314| 亚洲欧美日韩精品久久久久| 亚洲国产中文字幕| 国产在线不卡一卡二卡三卡四卡| 成人免费看片app下载| 欧美日韩久久久久久| 国产精品区一区二区三区| 亚洲成a人片在线观看中文| 久久97超碰国产精品超碰| 91同城在线观看| 国产目拍亚洲精品99久久精品 | 一区二区三区av电影| 国产成人精品在线看| 91丨porny丨户外露出| 久久日一线二线三线suv| 亚洲精品老司机| a在线欧美一区| 国产精品动漫网站| 国产成人啪免费观看软件| 欧美日韩在线电影| 亚洲一区二区三区爽爽爽爽爽 | 欧美国产一区视频在线观看| 亚洲电影激情视频网站| 色婷婷一区二区三区四区| 久久精品免视看| 99久久精品一区二区| 国产欧美日韩在线看|