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

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

?? input.c

?? video linux conference
?? C
?? 第 1 頁 / 共 5 頁
字號:
        /* Look for and add subtitle files */        psz_subtitle = var_GetString( p_input, "sub-file" );        if( *psz_subtitle )        {            input_source_t *sub;            vlc_value_t count;            vlc_value_t list;            msg_Dbg( p_input, "forced subtitle: %s", psz_subtitle );            var_Change( p_input, "spu-es", VLC_VAR_CHOICESCOUNT, &count, NULL );            /* */            sub = InputSourceNew( p_input );            if( !InputSourceInit( p_input, sub, psz_subtitle, "subtitle",                                  VLC_FALSE ) )            {                TAB_APPEND( p_input->i_slave, p_input->slave, sub );                /* Select the ES */                if( !var_Change( p_input, "spu-es", VLC_VAR_GETLIST, &list,                                 NULL ) )                {                    if( count.i_int == 0 )                        count.i_int++;                        /* if it was first one, there is disable too */                    if( count.i_int < list.p_list->i_count )                    {                        input_ControlPush( p_input, INPUT_CONTROL_SET_ES,                                          &list.p_list->p_values[count.i_int] );                    }                    var_Change( p_input, "spu-es", VLC_VAR_FREELIST, &list,                                NULL );                }            }        }        var_Get( p_input, "sub-autodetect-file", &val );        if( val.b_bool )        {           char *psz_autopath = var_GetString( p_input, "sub-autodetect-path" );            char **subs = subtitles_Detect( p_input, psz_autopath,                                            p_input->input.p_item->psz_uri );            input_source_t *sub;            for( i = 0; subs[i] != NULL; i++ )            {                if( strcmp( psz_subtitle, subs[i] ) )                {                    sub = InputSourceNew( p_input );                    if( !InputSourceInit( p_input, sub, subs[i], "subtitle",                                          VLC_FALSE ) )                    {                         TAB_APPEND( p_input->i_slave, p_input->slave, sub );                    }                }                free( subs[i] );            }            free( subs );            free( psz_autopath );        }        free( psz_subtitle );        /* Look for slave */        psz = var_GetString( p_input, "input-slave" );        if( *psz )        {            char *psz_delim;            input_source_t *slave;            while( psz && *psz )            {                while( *psz == ' ' || *psz == '#' )                {                    psz++;                }                if( ( psz_delim = strchr( psz, '#' ) ) )                {                    *psz_delim++ = '\0';                }                if( *psz == 0 )                {                    break;                }                msg_Dbg( p_input, "adding slave input '%s'", psz );                slave = InputSourceNew( p_input );                if( !InputSourceInit( p_input, slave, psz, NULL, VLC_FALSE ) )                {                    TAB_APPEND( p_input->i_slave, p_input->slave, slave );                }                psz = psz_delim;            }        }        if( psz ) free( psz );    }    else    {        p_input->i_start = 0;        p_input->i_start = 0;    }    /* Set up es_out */    if( !b_quick )    {        es_out_Control( p_input->p_es_out, ES_OUT_SET_ACTIVE, VLC_TRUE );        i_es_out_mode = ES_OUT_MODE_AUTO;        val.p_list = NULL;        if( p_input->p_sout )        {            var_Get( p_input, "sout-all", &val );            if ( val.b_bool )            {                i_es_out_mode = ES_OUT_MODE_ALL;                val.p_list = NULL;            }            else            {                var_Get( p_input, "programs", &val );                if ( val.p_list && val.p_list->i_count )                {                    i_es_out_mode = ES_OUT_MODE_PARTIAL;                    /* Note : we should remove the "program" callback. */                }                else                    var_Change( p_input, "programs", VLC_VAR_FREELIST, &val,                                NULL );            }        }        es_out_Control( p_input->p_es_out, ES_OUT_SET_MODE, i_es_out_mode );        /* Inform the demuxer about waited group (needed only for DVB) */        if( i_es_out_mode == ES_OUT_MODE_ALL )        {            demux2_Control( p_input->input.p_demux, DEMUX_SET_GROUP, -1, NULL );        }        else if( i_es_out_mode == ES_OUT_MODE_PARTIAL )        {            demux2_Control( p_input->input.p_demux, DEMUX_SET_GROUP, -1,                            val.p_list );        }        else        {            demux2_Control( p_input->input.p_demux, DEMUX_SET_GROUP,                           (int) var_GetInteger( p_input, "program" ), NULL );        }        if( p_input->p_sout )        {            if( p_input->p_sout->i_out_pace_nocontrol > 0 )            {                p_input->b_out_pace_control = VLC_FALSE;            }            else            {                p_input->b_out_pace_control = VLC_TRUE;            }            if( p_input->b_can_pace_control && p_input->b_out_pace_control )            {                /* We don't want a high input priority here or we'll                 * end-up sucking up all the CPU time */                vlc_thread_set_priority( p_input, VLC_THREAD_PRIORITY_LOW );            }            msg_Dbg( p_input, "starting in %s mode",                     p_input->b_out_pace_control ? "asynch" : "synch" );        }    }    /* Get meta data from users */    p_meta_tmp = InputMetaUser( p_input );    /* Get meta data from master input */    if( demux2_Control( p_input->input.p_demux, DEMUX_GET_META, &p_meta ) )        p_meta = NULL;    /* Merge them */    if( p_meta == NULL )    {        p_meta = p_meta_tmp;    }    else if( p_meta_tmp )    {        vlc_meta_Merge( p_meta, p_meta_tmp );        vlc_meta_Delete( p_meta_tmp );    }    /* Access_file does not give any meta, and there are no slave */    if( !b_quick )    {        if( !p_input->input.p_access ||            access2_Control( p_input->input.p_access, ACCESS_GET_META,                             &p_meta_tmp))            p_meta_tmp = NULL;        if( p_meta == NULL )        {            p_meta = p_meta_tmp;        }        else if( p_meta_tmp )        {            vlc_meta_Merge( p_meta, p_meta_tmp );            vlc_meta_Delete( p_meta_tmp );        }        /* Get meta data from slave input */        for( i = 0; i < p_input->i_slave; i++ )        {            vlc_meta_t *p_meta_slave;            if( !demux2_Control( p_input->slave[i]->p_demux,                                 DEMUX_GET_META, &p_meta_slave ) )            {                if( p_meta == NULL )                {                    p_meta = p_meta_slave;                }                else if( p_meta_slave )                {                    vlc_meta_Merge( p_meta, p_meta_slave );                    vlc_meta_Delete( p_meta_slave );                }            }            if( p_input->slave[i]->p_access &&                !access2_Control( p_input->slave[i]->p_access,                                  ACCESS_GET_META, &p_meta_slave ) )            {                if( p_meta == NULL )                {                    p_meta = p_meta_slave;                }                else if( p_meta_slave )                {                    vlc_meta_Merge( p_meta, p_meta_slave );                    vlc_meta_Delete( p_meta_slave );                }            }        }    }    p_input->p_meta = p_meta;    UpdateMeta( p_input, b_quick );    if( !b_quick )    {        msg_Dbg( p_input, "`%s' successfully opened",                 p_input->input.p_item->psz_uri );    }    /* Trigger intf update for this item */    /* Playlist has a callback on this variable and will forward     * it to intf */    var_SetInteger( p_input, "item-change", p_input->input.p_item->i_id );    /* initialization is complete */    p_input->i_state = PLAYING_S;    val.i_int = PLAYING_S;    var_Change( p_input, "state", VLC_VAR_SETVALUE, &val, NULL );    return VLC_SUCCESS;error:    if( p_input->p_es_out )        input_EsOutDelete( p_input->p_es_out );    if( p_input->p_sout )        sout_DeleteInstance( p_input->p_sout );    /* Mark them deleted */    p_input->input.p_demux = NULL;    p_input->input.p_stream = NULL;    p_input->input.p_access = NULL;    p_input->p_es_out = NULL;    p_input->p_sout = NULL;    return VLC_EGENERIC;}/***************************************************************************** * Error: RunThread() error loop ***************************************************************************** * This function is called when an error occurred during thread main's loop. *****************************************************************************/static void Error( input_thread_t *p_input ){    while( !p_input->b_die )    {        /* Sleep a while */        msleep( INPUT_IDLE_SLEEP );    }}/***************************************************************************** * End: end the input thread *****************************************************************************/static void End( input_thread_t * p_input ){    vlc_value_t val;    int i;    msg_Dbg( p_input, "closing input" );    /* We are at the end */    p_input->i_state = END_S;    val.i_int = END_S;    var_Change( p_input, "state", VLC_VAR_SETVALUE, &val, NULL );    /* Clean control variables */    input_ControlVarClean( p_input );    /* Clean up master */    InputSourceClean( p_input, &p_input->input );    /* Delete slave */    for( i = 0; i < p_input->i_slave; i++ )    {        InputSourceClean( p_input, p_input->slave[i] );        free( p_input->slave[i] );    }    if( p_input->slave ) free( p_input->slave );    /* Unload all modules */    if( p_input->p_es_out )        input_EsOutDelete( p_input->p_es_out );    /* Close optional stream output instance */    if( p_input->p_sout )    {        vlc_object_t *p_pl =            vlc_object_find( p_input, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE );        vlc_value_t keep;        if( var_Get( p_input, "sout-keep", &keep ) >= 0 && keep.b_bool && p_pl )        {            /* attach sout to the playlist */            msg_Warn( p_input, "keeping sout" );            vlc_object_detach( p_input->p_sout );            vlc_object_attach( p_input->p_sout, p_pl );        }        else        {            msg_Warn( p_input, "destroying sout" );            sout_DeleteInstance( p_input->p_sout );        }        if( p_pl )            vlc_object_release( p_pl );    }    /* Delete meta */    if( p_input->p_meta )        vlc_meta_Delete( p_input->p_meta );    /* Tell we're dead */    p_input->b_dead = VLC_TRUE;}/***************************************************************************** * Control *****************************************************************************/static inline int ControlPopNoLock( input_thread_t *p_input,                                    int *pi_type, vlc_value_t *p_val ){    if( p_input->i_control <= 0 )    {        return VLC_EGENERIC;    }    *pi_type = p_input->control[0].i_type;    *p_val   = p_input->control[0].val;    p_input->i_control--;    if( p_input->i_control > 0 )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品aⅴ在线视频| 精彩视频一区二区| 成人深夜在线观看| 欧美日韩国产经典色站一区二区三区 | 看电视剧不卡顿的网站| 国产精品99久久久久久宅男| 欧美日本视频在线| 亚洲r级在线视频| 色成年激情久久综合| 国产精品进线69影院| 国产原创一区二区| 欧美激情综合在线| 91丝袜美女网| 玉足女爽爽91| 欧美视频日韩视频在线观看| 五月天激情综合| 麻豆精品视频在线| 国产日韩三级在线| 精品一区二区三区免费视频| 91久久精品一区二区| 国产欧美一区二区三区沐欲 | 色婷婷综合在线| 亚洲图片自拍偷拍| 精品少妇一区二区三区在线视频| 精品在线亚洲视频| 久久精品水蜜桃av综合天堂| av影院午夜一区| 日产欧产美韩系列久久99| 精品国产乱码久久久久久浪潮| 国产中文字幕精品| 亚洲美女视频在线| 日韩三级电影网址| 久久99久久99精品免视看婷婷 | 亚洲一区二区三区国产| 日韩精品一区在线观看| 国产精品一区二区久久不卡 | 一本到不卡免费一区二区| 亚洲成a人在线观看| 国产日韩欧美不卡在线| 欧美一区二区国产| 91国产视频在线观看| 国产精品一二三四| 一区二区三区资源| 国产日本欧洲亚洲| 欧美男人的天堂一二区| 激情综合网av| 奇米四色…亚洲| 一区二区三区中文字幕电影 | 日韩免费看的电影| 91久久精品一区二区三区| 丁香激情综合国产| 奇米影视一区二区三区小说| 五月婷婷综合在线| 亚洲电影在线播放| 一区二区三国产精华液| 1024亚洲合集| 亚洲男人天堂av网| 亚洲综合色成人| 亚洲午夜激情av| 日日欢夜夜爽一区| 丝袜a∨在线一区二区三区不卡| 夜夜精品视频一区二区| 亚洲综合在线电影| 亚洲一区精品在线| 视频一区国产视频| 久久99国产精品免费| 国产主播一区二区三区| 福利一区在线观看| 成人午夜免费av| 91麻豆自制传媒国产之光| 在线精品视频免费观看| 欧美视频在线不卡| 91同城在线观看| 欧美精品电影在线播放| 欧美成人伊人久久综合网| 国产欧美日韩另类视频免费观看 | 色婷婷av久久久久久久| 欧美精品久久一区二区三区| 久久久久久久电影| 亚洲成人tv网| 波多野结衣一区二区三区| 欧洲精品中文字幕| 日韩免费观看2025年上映的电影| 久久婷婷国产综合精品青草| 亚洲男人的天堂在线观看| 日本欧美肥老太交大片| 成人免费av网站| 一区二区三区在线视频免费| 国产福利91精品一区二区三区| 色欧美88888久久久久久影院| 国产亚洲综合在线| 捆绑变态av一区二区三区| 色婷婷亚洲精品| 久久久91精品国产一区二区精品 | 久久精品国产亚洲aⅴ| 不卡的av在线播放| 国产精品美女www爽爽爽| 麻豆91精品视频| 欧美日韩国产精选| 亚洲综合清纯丝袜自拍| 色综合久久中文字幕综合网| 国产婷婷精品av在线| 久久精品国产精品亚洲红杏| 欧美日韩国产bt| 亚洲国产综合人成综合网站| 成人午夜在线免费| 69堂国产成人免费视频| 日韩精品一二三区| 精品少妇一区二区三区视频免付费| 亚洲高清免费一级二级三级| 欧美日韩一区二区欧美激情| 亚洲成人在线免费| 欧美精品乱码久久久久久按摩 | 欧美电影精品一区二区| 蜜臀久久99精品久久久久宅男| 91精品婷婷国产综合久久竹菊| 日韩精品电影在线观看| xvideos.蜜桃一区二区| 国产成人h网站| 亚洲美女免费视频| 69成人精品免费视频| 九一九一国产精品| 1024成人网| 欧美一区二区国产| 国产999精品久久久久久| 一区二区三区在线视频免费 | 色综合久久88色综合天天| 婷婷夜色潮精品综合在线| 国产拍揄自揄精品视频麻豆| 欧美日韩专区在线| 懂色av一区二区三区蜜臀 | 色综合久久天天| 久久精品国产99| 亚洲欧美色图小说| 国产色综合久久| 欧美精品乱码久久久久久| 99久久国产综合精品麻豆| 日韩电影网1区2区| 亚洲第一主播视频| 亚洲卡通动漫在线| 视频一区中文字幕国产| 一区二区三区成人| 国产精品女同一区二区三区| 欧美一级在线视频| 欧美亚洲综合另类| 91一区在线观看| 国产乱码字幕精品高清av| 麻豆精品视频在线| 天天亚洲美女在线视频| 亚洲欧美日韩国产另类专区| 国产日产亚洲精品系列| 久久久亚洲欧洲日产国码αv| 欧美一区二区三区免费| 欧美日韩精品一区二区三区四区 | 99久久亚洲一区二区三区青草| 国产一区二区在线电影| 韩国欧美国产一区| 国产精品一品二品| eeuss国产一区二区三区| 99久久国产综合色|国产精品| www.在线成人| 在线观看不卡一区| 欧美剧情片在线观看| 91精品免费在线观看| 欧美狂野另类xxxxoooo| 欧美日韩国产天堂| 日韩一区二区三区观看| 日韩欧美久久久| 欧美一卡二卡在线观看| 日韩午夜在线观看视频| 久久久亚洲国产美女国产盗摄| 国产精品天美传媒沈樵| 伊人夜夜躁av伊人久久| 日韩在线观看一区二区| 国产一区二区三区蝌蚪| 色妹子一区二区| 精品国产乱码久久久久久久| 亚洲图片你懂的| 麻豆视频一区二区| 91亚洲国产成人精品一区二区三| 在线播放中文一区| 国产欧美一区二区在线观看| 婷婷丁香激情综合| 99久久精品免费精品国产| 日韩午夜中文字幕| 中文字幕日韩一区二区| 日韩中文字幕区一区有砖一区| 成人18视频在线播放| 2021久久国产精品不只是精品| 午夜影院在线观看欧美| 欧美日韩一区二区欧美激情 | 91麻豆精品国产91| 日韩在线a电影| 91精品国产91久久久久久一区二区 | 懂色av一区二区在线播放| 日本一区二区三区在线观看| 国产一区二区精品久久99| 精品国产1区二区| 成人一二三区视频| 亚洲另类中文字|