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

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

?? examples.tex

?? linux TV 源碼
?? TEX
字號:
\chapter{Examples}In this section we would like to present some examples for using the DVB API.Maintainer note: This section is out of date. Please refer to the sampleprograms packaged with the driver distribution from\texttt{http://linuxtv.org/}.\section{Tuning}We will start with a generic tuning subroutine that uses the frontendand SEC, as well as the demux devices. The example is given for QPSKtuners, but can easily be adjusted for QAM.{\small\begin{verbatim}#include <sys/ioctl.h>#include <stdio.h>#include <stdint.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <time.h>#include <unistd.h>#include <linux/dvb/dmx.h>#include <linux/dvb/frontend.h>#include <linux/dvb/sec.h>#include <sys/poll.h>#define DMX "/dev/dvb/adapter0/demux1"#define FRONT "/dev/dvb/adapter0/frontend1"#define SEC "/dev/dvb/adapter0/sec1"/* routine for checking if we have a signal and other status information*/int FEReadStatus(int fd, fe_status_t *stat){        int ans;        if ( (ans = ioctl(fd,FE_READ_STATUS,stat) < 0)){                perror("FE READ STATUS: ");                return -1;        }        if (*stat & FE_HAS_POWER)                printf("FE HAS POWER\n");        if (*stat & FE_HAS_SIGNAL)                printf("FE HAS SIGNAL\n");        if (*stat & FE_SPECTRUM_INV)                printf("SPEKTRUM INV\n");        return 0;}/* tune qpsk *//* freq:             frequency of transponder                      *//* vpid, apid, tpid: PIDs of video, audio and teletext TS packets  *//* diseqc:           DiSEqC address of the used LNB                *//* pol:              Polarisation                                  *//* srate:            Symbol Rate                                   *//* fec.              FEC                                           *//* lnb_lof1:         local frequency of lower LNB band             *//* lnb_lof2:         local frequency of upper LNB band             *//* lnb_slof:         switch frequency of LNB                       */int set_qpsk_channel(int freq, int vpid, int apid, int tpid,                int diseqc, int pol, int srate, int fec, int lnb_lof1,                 int lnb_lof2, int lnb_slof){        struct secCommand scmd;        struct secCmdSequence scmds;        struct dmx_pes_filter_params pesFilterParams;         FrontendParameters frp;        struct pollfd pfd[1];        FrontendEvent event;        int demux1, demux2, demux3, front;        frequency = (uint32_t) freq;        symbolrate = (uint32_t) srate;        if((front = open(FRONT,O_RDWR)) < 0){                perror("FRONTEND DEVICE: ");                return -1;        }        if((sec = open(SEC,O_RDWR)) < 0){                perror("SEC DEVICE: ");                return -1;        }        if (demux1 < 0){                if ((demux1=open(DMX, O_RDWR|O_NONBLOCK))                     < 0){                        perror("DEMUX DEVICE: ");                        return -1;                }        }        if (demux2 < 0){                if ((demux2=open(DMX, O_RDWR|O_NONBLOCK))                     < 0){                        perror("DEMUX DEVICE: ");                        return -1;                }        }        if (demux3 < 0){                if ((demux3=open(DMX, O_RDWR|O_NONBLOCK))                     < 0){                        perror("DEMUX DEVICE: ");                        return -1;                }        }        if (freq < lnb_slof) {                frp.Frequency = (freq - lnb_lof1);                scmds.continuousTone = SEC_TONE_OFF;        } else {                frp.Frequency = (freq - lnb_lof2);                scmds.continuousTone = SEC_TONE_ON;        }        frp.Inversion = INVERSION_AUTO;        if (pol) scmds.voltage = SEC_VOLTAGE_18;        else scmds.voltage = SEC_VOLTAGE_13;                scmd.type=0;        scmd.u.diseqc.addr=0x10;        scmd.u.diseqc.cmd=0x38;        scmd.u.diseqc.numParams=1;        scmd.u.diseqc.params[0] = 0xF0 | ((diseqc * 4) & 0x0F) |                 (scmds.continuousTone == SEC_TONE_ON ? 1 : 0) |                (scmds.voltage==SEC_VOLTAGE_18 ? 2 : 0);        scmds.miniCommand=SEC_MINI_NONE;        scmds.numCommands=1;        scmds.commands=&scmd;        if (ioctl(sec, SEC_SEND_SEQUENCE, &scmds) < 0){                perror("SEC SEND: ");                return -1;        }        if (ioctl(sec, SEC_SEND_SEQUENCE, &scmds) < 0){                perror("SEC SEND: ");                return -1;        }        frp.u.qpsk.SymbolRate = srate;        frp.u.qpsk.FEC_inner = fec;        if (ioctl(front, FE_SET_FRONTEND, &frp) < 0){                perror("QPSK TUNE: ");                return -1;        }         pfd[0].fd = front;        pfd[0].events = POLLIN;        if (poll(pfd,1,3000)){                if (pfd[0].revents & POLLIN){                        printf("Getting QPSK event\n");                        if ( ioctl(front, FE_GET_EVENT, &event)                               == -EOVERFLOW){                                perror("qpsk get event");                                return -1;                        }                        printf("Received ");                        switch(event.type){                        case FE_UNEXPECTED_EV:                                printf("unexpected event\n");                                return -1;                        case FE_FAILURE_EV:                                printf("failure event\n");                                return -1;                                                        case FE_COMPLETION_EV:                                printf("completion event\n");                        }                }        }              pesFilterParams.pid     = vpid;        pesFilterParams.input   = DMX_IN_FRONTEND;         pesFilterParams.output  = DMX_OUT_DECODER;         pesFilterParams.pes_type = DMX_PES_VIDEO;         pesFilterParams.flags   = DMX_IMMEDIATE_START;        if (ioctl(demux1, DMX_SET_PES_FILTER, &pesFilterParams) < 0){                perror("set_vpid");                return -1;        }        pesFilterParams.pid     = apid;        pesFilterParams.input   = DMX_IN_FRONTEND;         pesFilterParams.output  = DMX_OUT_DECODER;         pesFilterParams.pes_type = DMX_PES_AUDIO;         pesFilterParams.flags   = DMX_IMMEDIATE_START;        if (ioctl(demux2, DMX_SET_PES_FILTER, &pesFilterParams) < 0){                perror("set_apid");                return -1;        }        pesFilterParams.pid     = tpid;        pesFilterParams.input   = DMX_IN_FRONTEND;         pesFilterParams.output  = DMX_OUT_DECODER;         pesFilterParams.pes_type = DMX_PES_TELETEXT;         pesFilterParams.flags   = DMX_IMMEDIATE_START;        if (ioctl(demux3, DMX_SET_PES_FILTER, &pesFilterParams) < 0){                perror("set_tpid");                return -1;        }        return has_signal(fds);}\end{verbatim}}The program assumes that you are using a universal LNB and a standardDiSEqC switch with up to 4 addresses. Of course, you could build insome more checking if tuning was successful and maybe try to repeatthe tuning process. Depending on the external hardware, i.e. LNB andDiSEqC switch, and weather conditions this may be necessary. \section{The DVR device}The following program code shows how to use the DVR device forrecording.{\small\begin{verbatim}#include <sys/ioctl.h>#include <stdio.h>#include <stdint.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <time.h>#include <unistd.h>#include <linux/dvb/dmx.h>#include <linux/dvb/video.h>#include <sys/poll.h>#define DVR "/dev/dvb/adapter0/dvr1"#define AUDIO "/dev/dvb/adapter0/audio1"#define VIDEO "/dev/dvb/adapter0/video1"#define BUFFY (188*20)#define MAX_LENGTH (1024*1024*5) /* record 5MB *//* switch the demuxes to recording, assuming the transponder is tuned *//* demux1, demux2: file descriptor of video and audio filters *//* vpid, apid:     PIDs of video and audio channels           */int switch_to_record(int demux1, int demux2, uint16_t vpid, uint16_t apid){        struct dmx_pes_filter_params pesFilterParams;         if (demux1 < 0){                if ((demux1=open(DMX, O_RDWR|O_NONBLOCK))                     < 0){                        perror("DEMUX DEVICE: ");                        return -1;                }        }        if (demux2 < 0){                if ((demux2=open(DMX, O_RDWR|O_NONBLOCK))                     < 0){                        perror("DEMUX DEVICE: ");                        return -1;                }        }        pesFilterParams.pid = vpid;        pesFilterParams.input = DMX_IN_FRONTEND;         pesFilterParams.output = DMX_OUT_TS_TAP;         pesFilterParams.pes_type = DMX_PES_VIDEO;         pesFilterParams.flags = DMX_IMMEDIATE_START;        if (ioctl(demux1, DMX_SET_PES_FILTER, &pesFilterParams) < 0){                perror("DEMUX DEVICE");                return -1;         }        pesFilterParams.pid = apid;         pesFilterParams.input = DMX_IN_FRONTEND;         pesFilterParams.output = DMX_OUT_TS_TAP;         pesFilterParams.pes_type = DMX_PES_AUDIO;         pesFilterParams.flags = DMX_IMMEDIATE_START;        if (ioctl(demux2, DMX_SET_PES_FILTER, &pesFilterParams) < 0){                perror("DEMUX DEVICE");                return -1;         }        return 0;}/* start recording MAX_LENGTH , assuming the transponder is tuned *//* demux1, demux2: file descriptor of video and audio filters *//* vpid, apid:     PIDs of video and audio channels           */int record_dvr(int demux1, int demux2, uint16_t vpid, uint16_t apid){        int i;        int len;        int written;        uint8_t buf[BUFFY];        uint64_t length;        struct pollfd pfd[1];        int dvr, dvr_out;        /* open dvr device */        if ((dvr = open(DVR, O_RDONLY|O_NONBLOCK)) < 0){                        perror("DVR DEVICE");                        return -1;        }                /* switch video and audio demuxes to dvr */        printf ("Switching dvr on\n");        i = switch_to_record(demux1, demux2, vpid, apid);        printf("finished: ");                printf("Recording %2.0f MB of test file in TS format\n",               MAX_LENGTH/(1024.0*1024.0));        length = 0;        /* open output file */        if ((dvr_out = open(DVR_FILE,O_WRONLY|O_CREAT                                 |O_TRUNC, S_IRUSR|S_IWUSR                                 |S_IRGRP|S_IWGRP|S_IROTH|                                 S_IWOTH)) < 0){                perror("Can't open file for dvr test");                return -1;        }        pfd[0].fd = dvr;        pfd[0].events = POLLIN;        /* poll for dvr data and write to file */        while (length < MAX_LENGTH ) {                if (poll(pfd,1,1)){                        if (pfd[0].revents & POLLIN){                                len = read(dvr, buf, BUFFY);                                if (len < 0){                                        perror("recording");                                        return -1;                                }                                if (len > 0){                                        written = 0;                                        while (written < len)                                                 written +=                                                         write (dvr_out,                                                                buf, len);                                        length += len;                                        printf("written %2.0f MB\r",                                               length/1024./1024.);                                }                        }                }        }        return 0;}\end{verbatim}}%%% Local Variables: %%% mode: latex%%% TeX-master: "dvbapi"%%% TeX-master: t%%% End: 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱子伦视频一区二区三区| 91蝌蚪porny成人天涯| 成人免费三级在线| 欧美日韩一区在线| 中文字幕一区二区三区在线观看| 强制捆绑调教一区二区| 在线视频欧美精品| 中文字幕不卡在线播放| 精一区二区三区| 欧美男女性生活在线直播观看| 国产精品美女一区二区三区| 久久99蜜桃精品| 欧美日韩国产一区| 亚洲免费av网站| 成人免费观看av| 国产偷v国产偷v亚洲高清 | 国产精品亚洲一区二区三区在线 | 亚洲女与黑人做爰| 国产精品影视网| 欧美不卡一区二区三区| 亚洲国产精品天堂| 在线视频一区二区免费| 亚洲精品视频一区二区| av亚洲精华国产精华精| 久久亚洲免费视频| 黑人精品欧美一区二区蜜桃| 欧美一三区三区四区免费在线看| 亚洲一区二区三区四区的| 日本道精品一区二区三区| 亚洲欧美一区二区久久 | 国产成人av电影在线观看| 精品国产免费一区二区三区四区| 日本成人在线视频网站| 欧美精品vⅰdeose4hd| 亚洲成人一二三| 在线不卡一区二区| 美女国产一区二区三区| 日韩欧美第一区| 国内精品嫩模私拍在线| 久久精品水蜜桃av综合天堂| 国产不卡视频在线播放| 国产精品理论片在线观看| av网站免费线看精品| 亚洲在线成人精品| 欧美一区二区三区日韩视频| 精品一区二区成人精品| 国产精品久久久久久妇女6080| 91日韩在线专区| 亚洲v日本v欧美v久久精品| 欧美高清dvd| 国产v综合v亚洲欧| 亚洲精品中文在线影院| 日韩一区二区三区电影在线观看 | 色综合色综合色综合色综合色综合| 亚洲人成影院在线观看| 欧美日韩精品福利| 经典三级一区二区| 国产精品麻豆欧美日韩ww| 色狠狠av一区二区三区| 蜜臀久久99精品久久久久久9| 国产午夜精品久久久久久久| 99久久久久免费精品国产| 天堂午夜影视日韩欧美一区二区| wwwwww.欧美系列| 91浏览器在线视频| 男女视频一区二区| 国产精品家庭影院| 欧美一区二区在线播放| 成人免费观看视频| 免费高清在线视频一区·| 国产精品情趣视频| 这里只有精品99re| 成人av网站免费观看| 日本中文字幕一区二区视频| 欧美韩国一区二区| 日韩一级片网站| 欧美亚洲一区二区在线观看| 国产美女精品人人做人人爽| 亚洲国产欧美一区二区三区丁香婷| 久久久久青草大香线综合精品| 色婷婷一区二区| 国产麻豆视频精品| 日韩成人av影视| 亚洲三级电影网站| 久久久久久一级片| 欧美精品国产精品| 欧洲精品一区二区三区在线观看| 成人免费高清在线| 久久激情五月激情| 亚洲第一会所有码转帖| 亚洲手机成人高清视频| 久久久无码精品亚洲日韩按摩| 欧美二区在线观看| 色婷婷久久久综合中文字幕| 粉嫩aⅴ一区二区三区四区| 经典三级在线一区| 日本系列欧美系列| 偷拍亚洲欧洲综合| 伊人一区二区三区| 亚洲欧美一区二区在线观看| 国产欧美日韩在线观看| 欧美精品一区二区在线观看| 日韩小视频在线观看专区| 欧美精品丝袜中出| 欧美日韩国产综合一区二区三区| 91福利在线看| 在线中文字幕一区二区| 色婷婷一区二区三区四区| 色婷婷精品久久二区二区蜜臂av| 粉嫩aⅴ一区二区三区四区| 国产一区二区伦理| 国产成人精品免费| 成人性生交大片免费看在线播放 | 中文字幕成人av| 国产精品欧美精品| 中文字幕五月欧美| 一区二区中文视频| 亚洲日本青草视频在线怡红院| 亚洲日本va在线观看| 亚洲丝袜美腿综合| 亚洲综合色自拍一区| 五月婷婷欧美视频| 日本在线播放一区二区三区| 蜜臀av国产精品久久久久| 国产原创一区二区三区| 国产成人综合亚洲网站| 99久久精品国产一区二区三区| 色综合久久久久久久久| 在线亚洲精品福利网址导航| 欧美色综合网站| 欧美一级久久久| 日本一区二区综合亚洲| 亚洲色图清纯唯美| 日韩国产在线一| 国产九九视频一区二区三区| 91亚洲精品一区二区乱码| 欧美日韩精品免费观看视频 | 7777精品伊人久久久大香线蕉超级流畅 | av在线播放不卡| 欧美日韩在线播放三区| 亚洲精品一区二区三区在线观看| 国产精品婷婷午夜在线观看| 亚洲综合男人的天堂| 经典三级一区二区| 波波电影院一区二区三区| 欧美吻胸吃奶大尺度电影 | 欧美午夜片在线观看| 91精品国产一区二区| 欧美韩日一区二区三区四区| 午夜国产精品一区| 成人精品免费看| 欧美日韩一区二区三区不卡| 国产婷婷精品av在线| 亚洲成人av资源| 成人高清免费在线播放| 欧美老肥妇做.爰bbww视频| 国产欧美日产一区| 婷婷综合久久一区二区三区| 成人精品亚洲人成在线| 91精品婷婷国产综合久久性色 | 2020日本不卡一区二区视频| 亚洲色图欧美激情| 国内精品久久久久影院一蜜桃| aaa亚洲精品| 久久久不卡网国产精品一区| 五月综合激情婷婷六月色窝| 99久久免费视频.com| 精品第一国产综合精品aⅴ| 亚洲一区二区三区小说| 丁香网亚洲国际| 日韩欧美综合一区| 亚洲一区电影777| 99久久久精品| 国产精品你懂的| 国产伦理精品不卡| 日韩精品在线一区| 婷婷国产在线综合| 欧日韩精品视频| 国产精品欧美一区二区三区| 国产一区二区在线电影| 日韩视频一区二区三区| 亚洲国产毛片aaaaa无费看 | av一区二区三区| 国产三级欧美三级| 韩国av一区二区三区四区| 51精品秘密在线观看| 亚洲福利国产精品| 91久久人澡人人添人人爽欧美| 国产欧美日韩另类一区| 国产主播一区二区三区| 欧美一级片在线看| 视频一区免费在线观看| 欧美网站大全在线观看| 亚洲另类中文字| 91黄色免费看| 亚洲国产视频网站| 欧美精品日韩精品| 九九久久精品视频| 久久久久久久电影| jiyouzz国产精品久久|