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

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

?? pvr.c

?? VLC Player Source Code
?? C
?? 第 1 頁 / 共 3 頁
字號:
/***************************************************************************** * pvr.c ***************************************************************************** * Copyright (C) 2001, 2002 the VideoLAN team * $Id$ * * Authors: Eric Petit <titer@videolan.org> *          Paul Corke <paulc@datatote.co.uk> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************//***************************************************************************** * Preamble *****************************************************************************/#ifdef HAVE_CONFIG_H# include "config.h"#endif#include <vlc_common.h>#include <vlc_plugin.h>#include <vlc_access.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <errno.h>#include <linux/types.h>#include <sys/ioctl.h>#include <sys/poll.h>#ifdef HAVE_NEW_LINUX_VIDEODEV2_H#   ifdef VIDEODEV2_H_FILE#   include VIDEODEV2_H_FILE#   else#   include <linux/videodev2.h>#   endif#else#include "videodev2.h"#endif/***************************************************************************** * Module descriptor *****************************************************************************/static int  Open ( vlc_object_t * );static void Close( vlc_object_t * );#define CACHING_TEXT N_("Caching value in ms")#define CACHING_LONGTEXT N_( \    "Default caching value for PVR streams. This " \    "value should be set in milliseconds." )#define DEVICE_TEXT N_( "Device" )#define DEVICE_LONGTEXT N_( "PVR video device" )#define RADIO_DEVICE_TEXT N_( "Radio device" )#define RADIO_DEVICE_LONGTEXT N_( "PVR radio device" )#define NORM_TEXT N_( "Norm" )#define NORM_LONGTEXT N_( "Norm of the stream " \    "(Automatic, SECAM, PAL, or NTSC)." )#define WIDTH_TEXT N_( "Width" )#define WIDTH_LONGTEXT N_( "Width of the stream to capture " \    "(-1 for autodetection)." )#define HEIGHT_TEXT N_( "Height" )#define HEIGHT_LONGTEXT N_( "Height of the stream to capture " \    "(-1 for autodetection)." )#define FREQUENCY_TEXT N_( "Frequency" )#define FREQUENCY_LONGTEXT N_( "Frequency to capture (in kHz), if applicable." )#define FRAMERATE_TEXT N_( "Framerate" )#define FRAMERATE_LONGTEXT N_( "Framerate to capture, if applicable " \    "(-1 for autodetect)." )#define KEYINT_TEXT N_( "Key interval" )#define KEYINT_LONGTEXT N_( "Interval between keyframes (-1 for autodetect)." )#define BFRAMES_TEXT N_( "B Frames" )#define BFRAMES_LONGTEXT N_("If this option is set, B-Frames will be used. " \    "Use this option to set the number of B-Frames.")#define BITRATE_TEXT N_( "Bitrate" )#define BITRATE_LONGTEXT N_( "Bitrate to use (-1 for default)." )#define BITRATE_PEAK_TEXT N_( "Bitrate peak" )#define BITRATE_PEAK_LONGTEXT N_( "Peak bitrate in VBR mode." )#define BITRATE_MODE_TEXT N_( "Bitrate mode" )#define BITRATE_MODE_LONGTEXT N_( "Bitrate mode to use (VBR or CBR)." )#define BITMASK_TEXT N_( "Audio bitmask" )#define BITMASK_LONGTEXT N_("Bitmask that will "\    "get used by the audio part of the card." )#define VOLUME_TEXT N_( "Volume" )#define VOLUME_LONGTEXT N_("Audio volume (0-65535)." )#define CHAN_TEXT N_( "Channel" )#define CHAN_LONGTEXT N_( "Channel of the card to use (Usually, 0 = tuner, " \    "1 = composite, 2 = svideo)" )static const int i_norm_list[] =    { V4L2_STD_UNKNOWN, V4L2_STD_SECAM, V4L2_STD_PAL, V4L2_STD_NTSC };static const char *const psz_norm_list_text[] =    { N_("Automatic"), N_("SECAM"), N_("PAL"),  N_("NTSC") };static const int i_bitrates[] = { 0, 1 };static const char *const psz_bitrates_list_text[] = { N_("vbr"), N_("cbr") };static const int pi_radio_range[2] = { 65000, 108000 };vlc_module_begin();    set_shortname( N_("PVR") );    set_description( N_("IVTV MPEG Encoding cards input") );    set_category( CAT_INPUT );    set_subcategory( SUBCAT_INPUT_ACCESS );    set_capability( "access", 0 );    add_shortcut( "pvr" );    add_integer( "pvr-caching", DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT,                 CACHING_LONGTEXT, true );    add_string( "pvr-device", "/dev/video0", NULL, DEVICE_TEXT,                 DEVICE_LONGTEXT, false );    add_string( "pvr-radio-device", "/dev/radio0", NULL, RADIO_DEVICE_TEXT,                 RADIO_DEVICE_LONGTEXT, false );    add_integer( "pvr-norm", V4L2_STD_UNKNOWN , NULL, NORM_TEXT,                 NORM_LONGTEXT, false );       change_integer_list( i_norm_list, psz_norm_list_text, NULL );    add_integer( "pvr-width", -1, NULL, WIDTH_TEXT, WIDTH_LONGTEXT, true );    add_integer( "pvr-height", -1, NULL, HEIGHT_TEXT, HEIGHT_LONGTEXT,                 true );    add_integer( "pvr-frequency", -1, NULL, FREQUENCY_TEXT, FREQUENCY_LONGTEXT,                 false );    add_integer( "pvr-framerate", -1, NULL, FRAMERATE_TEXT, FRAMERATE_LONGTEXT,                 true );    add_integer( "pvr-keyint", -1, NULL, KEYINT_TEXT, KEYINT_LONGTEXT,                 true );    add_integer( "pvr-bframes", -1, NULL, FRAMERATE_TEXT, FRAMERATE_LONGTEXT,                 true );    add_integer( "pvr-bitrate", -1, NULL, BITRATE_TEXT, BITRATE_LONGTEXT,                 false );    add_integer( "pvr-bitrate-peak", -1, NULL, BITRATE_PEAK_TEXT,                 BITRATE_PEAK_LONGTEXT, true );    add_integer( "pvr-bitrate-mode", -1, NULL, BITRATE_MODE_TEXT,                 BITRATE_MODE_LONGTEXT, true );        change_integer_list( i_bitrates, psz_bitrates_list_text, NULL );    add_integer( "pvr-audio-bitmask", -1, NULL, BITMASK_TEXT,                 BITMASK_LONGTEXT, true );    add_integer( "pvr-audio-volume", -1, NULL, VOLUME_TEXT,                 VOLUME_LONGTEXT, true );    add_integer( "pvr-channel", -1, NULL, CHAN_TEXT, CHAN_LONGTEXT, true );    set_callbacks( Open, Close );vlc_module_end();/***************************************************************************** * Prototypes *****************************************************************************/static ssize_t Read   ( access_t *, uint8_t *, size_t );static int Control( access_t *, int, va_list );/* ivtv specific ioctls */#define IVTV_IOC_G_CODEC    0xFFEE7703#define IVTV_IOC_S_CODEC    0xFFEE7704/* for use with IVTV_IOC_G_CODEC and IVTV_IOC_S_CODEC */struct ivtv_ioctl_codec {    uint32_t aspect;    uint32_t audio_bitmask;    uint32_t bframes;    uint32_t bitrate_mode;    uint32_t bitrate;    uint32_t bitrate_peak;    uint32_t dnr_mode;    uint32_t dnr_spatial;    uint32_t dnr_temporal;    uint32_t dnr_type;    uint32_t framerate;    uint32_t framespergop;    uint32_t gop_closure;    uint32_t pulldown;    uint32_t stream_type;};struct access_sys_t{    /* file descriptor */    int i_fd;    int i_radio_fd;    char *psz_videodev;    char *psz_radiodev;    /* options */    int i_standard;    int i_width;    int i_height;    int i_frequency;    int i_framerate;    int i_keyint;    int i_bframes;    int i_bitrate;    int i_bitrate_peak;    int i_bitrate_mode;    int i_audio_bitmask;    int i_input;    int i_volume;    /* driver version */    bool b_v4l2_api;};/***************************************************************************** * ConfigureIVTV: set up codec parameters using the old ivtv api *****************************************************************************/static int ConfigureIVTV( access_t * p_access ){    access_sys_t *p_sys = (access_sys_t *) p_access->p_sys;    struct ivtv_ioctl_codec codec;    int result;    memset( &codec, 0, sizeof(struct ivtv_ioctl_codec) );    result = ioctl( p_sys->i_fd, IVTV_IOC_G_CODEC, &codec );    if( result < 0 )    {        msg_Err( p_access, "Failed to read current capture card settings." );        return VLC_EGENERIC;    }    if( p_sys->i_framerate != -1 )    {        switch( p_sys->i_framerate )        {            case 30:                codec.framerate = 0;                break;            case 25:                codec.framerate = 1;                break;            default:                msg_Warn( p_access, "Invalid framerate, reverting to 25." );                codec.framerate = 1;                break;        }    }    if( p_sys->i_bitrate != -1 )    {        codec.bitrate = p_sys->i_bitrate;    }    if( p_sys->i_bitrate_peak != -1 )    {        codec.bitrate_peak = p_sys->i_bitrate_peak;    }    if( p_sys->i_bitrate_mode != -1 )    {        codec.bitrate_mode = p_sys->i_bitrate_mode;    }    if( p_sys->i_audio_bitmask != -1 )    {        codec.audio_bitmask = p_sys->i_audio_bitmask;    }    if( p_sys->i_keyint != -1 )    {        codec.framespergop = p_sys->i_keyint;    }    if( p_sys->i_bframes != -1 )    {        codec.bframes = p_sys->i_bframes;    }    result = ioctl( p_sys->i_fd, IVTV_IOC_S_CODEC, &codec );    if( result  < 0 )    {        msg_Err( p_access, "Failed to write new capture card settings." );        return VLC_EGENERIC;    }    msg_Dbg( p_access, "Setting codec parameters to:  framerate: "                        "%d, bitrate: %d/%d/%d",                        codec.framerate, codec.bitrate,                        codec.bitrate_peak, codec.bitrate_mode );    return VLC_SUCCESS;}#ifdef HAVE_NEW_LINUX_VIDEODEV2_H#define MAX_V4L2_CTRLS (6)/***************************************************************************** * AddV4L2Ctrl: adds a control to the v4l2 controls list *****************************************************************************/static void AddV4L2Ctrl( access_t * p_access,                         struct v4l2_ext_controls * p_controls,                         uint32_t i_id, uint32_t i_value ){    if( p_controls->count >= MAX_V4L2_CTRLS )    {        msg_Err( p_access, "Tried to set too many v4l2 controls at once." );        return;    }    p_controls->controls[p_controls->count].id    = i_id;    p_controls->controls[p_controls->count].value = i_value;    p_controls->count++;}/***************************************************************************** * V4L2SampleRate: calculate v4l2 sample rate from pvr-audio-bitmask *****************************************************************************/static uint32_t V4L2SampleRate( uint32_t i_bitmask ){    switch( i_bitmask & 0x0003 )    {        case 0x0001: return V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000;        case 0x0002: return V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000;    }    return V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100;}/***************************************************************************** * V4L2AudioEncoding: calculate v4l2 audio encoding level from pvr-audio-bitmask *****************************************************************************/static uint32_t V4L2AudioEncoding( uint32_t i_bitmask ){    switch( i_bitmask & 0x000c )    {        case 0x0004: return V4L2_MPEG_AUDIO_ENCODING_LAYER_1;        case 0x0008: return V4L2_MPEG_AUDIO_ENCODING_LAYER_2;    }    return 0xffffffff;}/***************************************************************************** * V4L2AudioL1Bitrate: calculate v4l2 audio bitrate for layer-1 audio from pvr-audio-bitmask *****************************************************************************/static uint32_t V4L2AudioL1Bitrate( uint32_t i_bitmask ){    switch( i_bitmask & 0x00f0 )    {        case 0x0010: return V4L2_MPEG_AUDIO_L1_BITRATE_32K;        case 0x0020: return V4L2_MPEG_AUDIO_L1_BITRATE_64K;        case 0x0030: return V4L2_MPEG_AUDIO_L1_BITRATE_96K;        case 0x0040: return V4L2_MPEG_AUDIO_L1_BITRATE_128K;        case 0x0050: return V4L2_MPEG_AUDIO_L1_BITRATE_160K;        case 0x0060: return V4L2_MPEG_AUDIO_L1_BITRATE_192K;        case 0x0070: return V4L2_MPEG_AUDIO_L1_BITRATE_224K;        case 0x0080: return V4L2_MPEG_AUDIO_L1_BITRATE_256K;        case 0x0090: return V4L2_MPEG_AUDIO_L1_BITRATE_288K;        case 0x00a0: return V4L2_MPEG_AUDIO_L1_BITRATE_320K;        case 0x00b0: return V4L2_MPEG_AUDIO_L1_BITRATE_352K;        case 0x00c0: return V4L2_MPEG_AUDIO_L1_BITRATE_384K;        case 0x00d0: return V4L2_MPEG_AUDIO_L1_BITRATE_416K;        case 0x00e0: return V4L2_MPEG_AUDIO_L1_BITRATE_448K;    }    return V4L2_MPEG_AUDIO_L1_BITRATE_320K;}/***************************************************************************** * V4L2AudioL2Bitrate: calculate v4l2 audio bitrate for layer-1 audio from pvr-audio-bitmask *****************************************************************************/static uint32_t V4L2AudioL2Bitrate( uint32_t i_bitmask ){    switch( i_bitmask & 0x00f0 )    {        case 0x0010: return V4L2_MPEG_AUDIO_L2_BITRATE_32K;        case 0x0020: return V4L2_MPEG_AUDIO_L2_BITRATE_48K;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久免费视频.com| 夜夜嗨av一区二区三区中文字幕| 日本一区二区免费在线| 亚洲色图欧洲色图| 日韩精品一二区| 国产真实乱偷精品视频免| 不卡一区在线观看| 欧美电影在哪看比较好| 久久久久久麻豆| 亚洲在线一区二区三区| 久久se精品一区二区| www.久久精品| 制服.丝袜.亚洲.另类.中文| 日本一区二区三区四区| 午夜激情一区二区三区| 高清视频一区二区| 欧美色精品在线视频| 久久久久久99久久久精品网站| 亚洲免费观看高清完整| 国产自产2019最新不卡| 在线观看亚洲专区| 久久日一线二线三线suv| 夜夜揉揉日日人人青青一国产精品| 精品夜夜嗨av一区二区三区| 色综合久久综合中文综合网| 日韩精品一区二区三区在线| 亚洲视频综合在线| 激情综合色播激情啊| 色综合天天综合网国产成人综合天| 日韩一区二区三区在线| 亚洲免费视频成人| 国产成人免费视频一区| 日韩视频在线观看一区二区| 亚洲免费色视频| 粉嫩一区二区三区性色av| 在线综合+亚洲+欧美中文字幕| 国产精品对白交换视频 | 色婷婷综合久久久| 久久伊人蜜桃av一区二区| 亚洲电影中文字幕在线观看| 成人动漫精品一区二区| 亚洲精品一线二线三线| 婷婷综合另类小说色区| 91亚洲精品一区二区乱码| 精品剧情在线观看| 日韩在线卡一卡二| 欧洲一区在线观看| 亚洲女子a中天字幕| 成人手机电影网| 久久亚洲捆绑美女| 久国产精品韩国三级视频| 91精品国产一区二区三区香蕉| 亚洲一区二区三区国产| 99视频精品全部免费在线| wwwwww.欧美系列| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美在线啊v一区| 亚洲精品欧美二区三区中文字幕| 国产精品亚洲第一区在线暖暖韩国| 日韩一区二区在线观看| 日韩高清在线一区| 欧美另类一区二区三区| 亚洲国产一二三| 91福利在线看| 亚洲另类春色校园小说| av毛片久久久久**hd| 欧美国产1区2区| 成人a级免费电影| 国产精品精品国产色婷婷| 国产.欧美.日韩| 国产精品美女久久福利网站| 国产99久久久国产精品潘金 | 国产精品中文有码| 久久综合久久综合久久| 国产一区二三区| 精品人伦一区二区色婷婷| 久久av资源网| 久久影视一区二区| 国产99精品视频| 国产精品免费人成网站| 成人av午夜影院| 亚洲色欲色欲www在线观看| 99r国产精品| 亚洲精品中文字幕在线观看| 91黄色激情网站| 午夜激情一区二区三区| 欧美大片在线观看| 国产乱码精品1区2区3区| 欧美激情中文不卡| 91在线国产福利| 亚洲一区中文在线| 91精品视频网| 国产一区二区三区观看| 中文字幕亚洲综合久久菠萝蜜| 99精品国产一区二区三区不卡| 亚洲自拍偷拍麻豆| 91精品国产91热久久久做人人| 久久99精品久久久久久| 国产性做久久久久久| caoporen国产精品视频| 亚洲一区免费观看| 日韩免费视频一区二区| 国产精品一区二区91| 亚洲视频在线一区| 56国语精品自产拍在线观看| 国产麻豆精品在线观看| ...av二区三区久久精品| 欧美三级电影网| 精品一区二区三区av| 亚洲色图在线视频| 日韩一级大片在线| 国产成人亚洲精品狼色在线| 一区二区三区在线视频免费观看| 在线电影国产精品| 国产米奇在线777精品观看| 亚洲美腿欧美偷拍| 欧美一区二区三区日韩视频| 国产91精品在线观看| 亚洲一二三四区| 26uuu色噜噜精品一区| 97国产一区二区| 久久草av在线| 伊人性伊人情综合网| 日韩一区二区在线观看视频| www.成人在线| 久久精品国产第一区二区三区| 亚洲欧洲日产国产综合网| 欧美一区二区三区四区五区| av一本久道久久综合久久鬼色| 天堂成人免费av电影一区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 中文字幕一区二区三区乱码在线| 欧美日本在线一区| 成人黄动漫网站免费app| 日韩和欧美一区二区三区| 中文字幕+乱码+中文字幕一区| 欧美日韩国产精品成人| 风流少妇一区二区| 免费成人美女在线观看| 亚洲蜜臀av乱码久久精品| 久久久久国产精品人| 欧美日韩视频专区在线播放| www..com久久爱| 精品午夜久久福利影院| 五月综合激情日本mⅴ| 国产精品久99| 国产人久久人人人人爽| 日韩一级高清毛片| 欧美午夜电影网| 91免费小视频| 丁香婷婷综合五月| 极品少妇一区二区三区精品视频| 亚洲综合免费观看高清完整版| 欧美国产欧美综合| xvideos.蜜桃一区二区| 91麻豆精品91久久久久同性| 91高清视频免费看| 97久久久精品综合88久久| 丁香激情综合国产| 激情五月激情综合网| 蜜桃免费网站一区二区三区| 亚洲一区二区欧美激情| 亚洲另类在线视频| 自拍视频在线观看一区二区| 久久久精品欧美丰满| 日韩美女在线视频| 日韩视频在线一区二区| 这里只有精品电影| 91麻豆精品国产自产在线| 欧洲亚洲国产日韩| 色噜噜夜夜夜综合网| 色综合久久综合网欧美综合网| 成人av中文字幕| 不卡在线视频中文字幕| 不卡的av电影在线观看| 国产jizzjizz一区二区| 国产v综合v亚洲欧| 福利一区在线观看| 高潮精品一区videoshd| 成人小视频在线观看| 国产超碰在线一区| 国产成人免费在线| 国产不卡视频一区二区三区| 福利91精品一区二区三区| 成人性生交大片免费看中文 | 国产欧美日本一区二区三区| 26uuu国产日韩综合| 久久久久久久久久久久电影| 亚洲精品一区二区三区四区高清| 欧美大胆一级视频| 精品免费国产一区二区三区四区| 精品国产乱码久久久久久图片| 欧美不卡一区二区三区| 精品国产三级a在线观看| 欧美精品一区二区在线播放| 久久综合色鬼综合色| 中文字幕欧美三区| 日韩码欧中文字| 亚洲一二三四在线| 青青草国产精品97视觉盛宴 |