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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? file.c

?? video linux conference
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/***************************************************************************** * file.c: file input (file: access plug-in) ***************************************************************************** * Copyright (C) 2001-2004 VideoLAN * $Id: file.c 10310 2005-03-11 22:36:40Z anil $ * * Authors: Christophe Massiot <massiot@via.ecp.fr> * * 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., 59 Temple Place - Suite 330, Boston, MA  02111, USA. *****************************************************************************//***************************************************************************** * Preamble *****************************************************************************/#include <vlc/vlc.h>#include <vlc/input.h>#include <stdlib.h>#include <string.h>#include <errno.h>#ifdef HAVE_SYS_TYPES_H#   include <sys/types.h>#endif#ifdef HAVE_SYS_TIME_H#   include <sys/time.h>#endif#ifdef HAVE_SYS_STAT_H#   include <sys/stat.h>#endif#ifdef HAVE_FCNTL_H#   include <fcntl.h>#endif#ifdef HAVE_UNISTD_H#   include <unistd.h>#elif defined( WIN32 ) && !defined( UNDER_CE )#   include <io.h>#endif#if defined( WIN32 ) && !defined( UNDER_CE )/* stat() support for large files on win32 */#   define stat _stati64#   define fstat(a,b) _fstati64(a,b)#   ifdef lseek#      undef lseek#   endif#   define lseek _lseeki64#elif defined( UNDER_CE )#   ifdef read#      undef read#   endif#   define read(a,b,c) fread(b,1,c,a)#   define close(a) fclose(a)#   ifdef lseek#      undef lseek#   endif#   define lseek fseek#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_( \    "Allows you to modify the default caching value for file streams. This " \    "value should be set in millisecond units." )#define CAT_TEXT N_("Concatenate with additional files")#define CAT_LONGTEXT N_( \    "Allows you to play split files as if they were part of a unique file. " \    "Specify a comma-separated list of files." )vlc_module_begin();    set_description( _("Standard filesystem file input") );    set_shortname( _("File") );    set_category( CAT_INPUT );    set_subcategory( SUBCAT_INPUT_ACCESS );    add_integer( "file-caching", DEFAULT_PTS_DELAY / 1000, NULL, CACHING_TEXT, CACHING_LONGTEXT, VLC_TRUE );    add_string( "file-cat", NULL, NULL, CAT_TEXT, CAT_LONGTEXT, VLC_TRUE );    set_capability( "access2", 50 );    add_shortcut( "file" );    add_shortcut( "stream" );    add_shortcut( "kfir" );    set_callbacks( Open, Close );vlc_module_end();/***************************************************************************** * Exported prototypes *****************************************************************************/static int  Seek( access_t *, int64_t );static int  Read( access_t *, uint8_t *, int );static int  Control( access_t *, int, va_list );static int  _OpenFile( access_t *, char * );typedef struct{    char     *psz_name;    int64_t  i_size;} file_entry_t;struct access_sys_t{    unsigned int i_nb_reads;    vlc_bool_t   b_kfir;    /* Files list */    int          i_file;    file_entry_t **file;    /* Current file */    int  i_index;#ifndef UNDER_CE    int  fd;    int  fd_backup;#else    FILE *fd;    FILE *fd_backup;#endif    /* */    vlc_bool_t b_seekable;    vlc_bool_t b_pace_control;};/***************************************************************************** * Open: open the file *****************************************************************************/static int Open( vlc_object_t *p_this ){    access_t     *p_access = (access_t*)p_this;    access_sys_t *p_sys;    char *psz_name = p_access->psz_path;    char *psz;#ifdef HAVE_SYS_STAT_H    int                 i_stat;    struct stat         stat_info;#endif    vlc_bool_t          b_stdin;    file_entry_t *      p_file;    b_stdin = psz_name[0] == '-' && psz_name[1] == '\0';#ifdef HAVE_SYS_STAT_H    if( !b_stdin && (i_stat = stat( psz_name, &stat_info )) == (-1) )    {        msg_Warn( p_access, "cannot stat() file `%s' (%s)",                  psz_name, strerror(errno));        return VLC_EGENERIC;    }#endif    p_access->pf_read = Read;    p_access->pf_block = NULL;    p_access->pf_seek = Seek;    p_access->pf_control = Control;    p_access->info.i_update = 0;    p_access->info.i_size = 0;    p_access->info.i_pos = 0;    p_access->info.b_eof = VLC_FALSE;    p_access->info.i_title = 0;    p_access->info.i_seekpoint = 0;    p_access->p_sys = p_sys = malloc( sizeof( access_sys_t ) );    p_sys->i_nb_reads = 0;    p_sys->b_kfir = VLC_FALSE;    p_sys->file = NULL;    p_sys->i_file = 0;    p_sys->i_index = 0;#ifndef UNDER_CE    p_sys->fd = -1;#endif    if( !strcasecmp( p_access->psz_access, "stream" ) )    {        p_sys->b_seekable = VLC_FALSE;        p_sys->b_pace_control = VLC_FALSE;    }    else if( !strcasecmp( p_access->psz_access, "kfir" ) )    {        p_sys->b_seekable = VLC_FALSE;        p_sys->b_pace_control = VLC_FALSE;        p_sys->b_kfir = VLC_TRUE;    }    else    {        /* file:%s or %s */        p_sys->b_pace_control = VLC_TRUE;        if( b_stdin )        {            p_sys->b_seekable = VLC_FALSE;        }#ifdef UNDER_CE        else if( VLC_TRUE )        {            /* We'll update i_size after it's been opened */            p_sys->b_seekable = VLC_TRUE;        }#elif defined( HAVE_SYS_STAT_H )        else if( S_ISREG(stat_info.st_mode) || S_ISCHR(stat_info.st_mode) ||                 S_ISBLK(stat_info.st_mode) )        {            p_sys->b_seekable = VLC_TRUE;            p_access->info.i_size = stat_info.st_size;        }        else if( S_ISFIFO(stat_info.st_mode)#   if !defined( SYS_BEOS ) && !defined( WIN32 )                  || S_ISSOCK(stat_info.st_mode)#   endif               )        {            p_sys->b_seekable = VLC_FALSE;        }#endif        else        {            msg_Err( p_access, "unknown file type for `%s'", psz_name );            return VLC_EGENERIC;        }    }    msg_Dbg( p_access, "opening file `%s'", psz_name );    if( b_stdin )    {        p_sys->fd = 0;    }    else if( _OpenFile( p_access, psz_name ) )    {        free( p_sys );        return VLC_EGENERIC;    }    if( p_sys->b_seekable && !p_access->info.i_size )    {        /* FIXME that's bad because all others access will be probed */        msg_Err( p_access, "file %s is empty, aborting", psz_name );        free( p_sys );        return VLC_EGENERIC;    }    /* Update default_pts to a suitable value for file access */    var_Create( p_access, "file-caching", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );    /*     * Get the additional list of files     */    p_file = malloc( sizeof(file_entry_t) );    p_file->i_size = p_access->info.i_size;    p_file->psz_name = strdup( psz_name );    TAB_APPEND( p_sys->i_file, p_sys->file, p_file );    psz = var_CreateGetString( p_access, "file-cat" );    if( *psz )    {        char *psz_parser = psz_name = psz;        int64_t i_size;        while( psz_name && *psz_name )        {            psz_parser = strchr( psz_name, ',' );            if( psz_parser ) *psz_parser = 0;            psz_name = strdup( psz_name );            if( psz_name )            {                msg_Dbg( p_access, "adding file `%s'", psz_name );                i_size = 0;#ifdef HAVE_SYS_STAT_H                if( !stat( psz_name, &stat_info ) )                {                    p_access->info.i_size += stat_info.st_size;                    i_size = stat_info.st_size;                }                else                {                    msg_Dbg( p_access, "cannot stat() file `%s'", psz_name );                }#endif                p_file = malloc( sizeof(file_entry_t) );                p_file->i_size = i_size;                p_file->psz_name = psz_name;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆一区二区在线| 成人av免费在线播放| 久久久精品蜜桃| 欧洲一区二区三区在线| 国产资源在线一区| 依依成人精品视频| 国产欧美日韩卡一| 51精品视频一区二区三区| av激情综合网| 国产九色精品成人porny| 亚洲成人综合在线| 亚洲欧美偷拍卡通变态| 国产午夜精品在线观看| 日韩欧美一二三区| 欧美精品三级在线观看| 91蝌蚪porny| 国产ts人妖一区二区| 精品一区二区成人精品| 五月天视频一区| 一区二区三区不卡视频| 1024精品合集| 国产婷婷色一区二区三区四区 | 亚洲激情在线激情| 国产精品久久久久久久久快鸭| www激情久久| 日韩三级免费观看| 91精品一区二区三区久久久久久 | 日韩视频一区在线观看| 欧美色视频在线| 日本福利一区二区| 91在线看国产| 一本色道**综合亚洲精品蜜桃冫 | 色综合色综合色综合色综合色综合| 国产91对白在线观看九色| 狠狠狠色丁香婷婷综合久久五月| 秋霞午夜av一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 亚洲影院理伦片| 亚洲最色的网站| 亚洲一区二区三区中文字幕| 一区二区三区国产精华| 亚洲国产中文字幕| 性做久久久久久免费观看| 亚洲成a人片在线不卡一二三区 | 成人不卡免费av| 成人福利在线看| 91麻豆免费视频| 欧美日韩成人一区| 欧美成人bangbros| 久久精品一级爱片| 国产精品久久久久9999吃药| 亚洲美女在线国产| 香蕉影视欧美成人| 美女视频黄 久久| 国产高清一区日本| 91在线视频观看| 欧美日韩在线不卡| 精品久久久久久久久久久久包黑料 | 99免费精品视频| 欧美综合在线视频| 欧美一区二区三区视频| 337p日本欧洲亚洲大胆色噜噜| 精品国产一区二区国模嫣然| 中文幕一区二区三区久久蜜桃| 亚洲天堂久久久久久久| 午夜精品成人在线| 国产精品一区二区三区四区| 色综合婷婷久久| 欧美精品aⅴ在线视频| 久久亚洲捆绑美女| 一区二区三区在线播放| 免费观看在线色综合| 国产99久久久久久免费看农村| 色婷婷综合中文久久一本| 91麻豆精品国产自产在线观看一区| 久久久蜜臀国产一区二区| 亚洲激情图片一区| 精品一区二区成人精品| 一本大道久久a久久综合| 日韩女优视频免费观看| 亚洲视频一区二区免费在线观看| 天堂午夜影视日韩欧美一区二区| 国产精品综合网| 色先锋资源久久综合| 日韩欧美色综合网站| 亚洲人成精品久久久久久 | 国产宾馆实践打屁股91| 欧美亚洲日本国产| 国产亚洲欧美一区在线观看| 一区二区在线免费观看| 激情图区综合网| 在线视频亚洲一区| 国产拍揄自揄精品视频麻豆| 亚洲二区在线观看| 不卡一区在线观看| 精品久久久久久综合日本欧美| 亚洲卡通动漫在线| 国产成人自拍在线| 欧美一级在线观看| 一区二区三区日韩精品| 国产盗摄精品一区二区三区在线| 欧美日本国产视频| 亚洲精品乱码久久久久久| 国产精品2024| 日韩一卡二卡三卡| 亚洲激情av在线| 成人国产精品免费网站| 欧美va亚洲va在线观看蝴蝶网| 一区二区视频免费在线观看| 懂色av一区二区夜夜嗨| 久久这里只精品最新地址| 午夜精品久久久久久久久久| 色综合夜色一区| 国产精品久久一卡二卡| 国产乱码精品一区二区三区av | 欧美日韩一级视频| 一区二区久久久| 色综合久久中文综合久久97| 国产欧美va欧美不卡在线| 国产真实乱偷精品视频免| 91精品国产一区二区三区 | av不卡一区二区三区| 久久久久久免费网| 国产在线国偷精品产拍免费yy| 欧美一区二区女人| 天天免费综合色| 欧美精品第一页| 日韩精品福利网| 91精品国产综合久久香蕉的特点| 亚洲国产精品精华液网站| 在线观看国产一区二区| 一区二区三区国产| 欧美在线免费观看亚洲| 亚洲精品国久久99热| 一本大道久久a久久综合婷婷| 亚洲精品视频观看| 欧洲激情一区二区| 亚洲1区2区3区4区| 777午夜精品免费视频| 石原莉奈一区二区三区在线观看| 欧美日韩精品电影| 裸体健美xxxx欧美裸体表演| 欧美一级黄色录像| 国内精品国产成人| 欧美国产成人在线| 色先锋资源久久综合| 亚洲国产aⅴ成人精品无吗| 欧美精品在线一区二区三区| 日本成人在线网站| 26uuu欧美| 99久久婷婷国产| 亚洲一区欧美一区| 91精品国产综合久久久久久漫画 | 国产91在线|亚洲| 1000精品久久久久久久久| 日本韩国欧美国产| 日av在线不卡| 国产清纯白嫩初高生在线观看91 | 欧美日韩免费视频| 美国十次了思思久久精品导航| 精品噜噜噜噜久久久久久久久试看| 国产精品99精品久久免费| 亚洲女同ⅹxx女同tv| 欧美日韩国产大片| 国产最新精品精品你懂的| 成人免费小视频| 在线播放国产精品二区一二区四区| 美国一区二区三区在线播放| 国产精品伦理一区二区| 欧美日韩精品二区第二页| 国产精品一区在线| 一区二区三区日韩精品视频| 精品免费日韩av| 97久久精品人人爽人人爽蜜臀| 日韩精品91亚洲二区在线观看| 久久久久国产一区二区三区四区 | 欧美日韩国产综合一区二区三区 | 国产精品久久久久久久久晋中| 精品视频999| 国产精品一区二区果冻传媒| 亚洲精品免费在线观看| 欧美videossexotv100| 色先锋资源久久综合| 国内欧美视频一区二区 | 老司机午夜精品99久久| 日韩理论片网站| 欧美电影免费提供在线观看| 91啪在线观看| 国产精品一区二区不卡| 天堂av在线一区| 亚洲视频一区在线| 337p日本欧洲亚洲大胆精品| 欧美三级一区二区| a4yy欧美一区二区三区| 精品一区二区三区在线视频| 亚洲狠狠爱一区二区三区| 欧美韩国日本综合| 精品国产sm最大网站免费看| 欧美图片一区二区三区| 99久久国产综合精品女不卡|