⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 video.c

📁 VLC Player Source Code
💻 C
📖 第 1 页 / 共 2 页
字号:
    libvlc_media_player_t *p_mi = libvlc_playlist_get_media_player(p_instance, p_e);    if( p_mi )    {        vout_thread_t *p_vout = GetVout( p_mi, p_e );        if( p_vout )        {            /* tell running vout to re-size */            vout_Control( p_vout , VOUT_SET_SIZE, width, height);            vlc_object_release( p_vout );        }        libvlc_media_player_release(p_mi);    }}void libvlc_video_set_viewport( libvlc_instance_t *p_instance,                            const libvlc_rectangle_t *view, const libvlc_rectangle_t *clip,                           libvlc_exception_t *p_e ){    if( !view )    {        libvlc_exception_raise( p_e, "viewport is NULL" );        return;    }    /* if clip is NULL, then use view rectangle as clip */    if( !clip )        clip = view;    /* set as default for future vout instances */    var_SetInteger( p_instance->p_libvlc_int, "drawable-view-top", view->top );    var_SetInteger( p_instance->p_libvlc_int, "drawable-view-left", view->left );    var_SetInteger( p_instance->p_libvlc_int, "drawable-view-bottom", view->bottom );    var_SetInteger( p_instance->p_libvlc_int, "drawable-view-right", view->right );    var_SetInteger( p_instance->p_libvlc_int, "drawable-clip-top", clip->top );    var_SetInteger( p_instance->p_libvlc_int, "drawable-clip-left", clip->left );    var_SetInteger( p_instance->p_libvlc_int, "drawable-clip-bottom", clip->bottom );    var_SetInteger( p_instance->p_libvlc_int, "drawable-clip-right", clip->right );    libvlc_media_player_t *p_mi = libvlc_playlist_get_media_player(p_instance, p_e);    if( p_mi )    {        vout_thread_t *p_vout = GetVout( p_mi, p_e );        if( p_vout )        {            /* change viewport for running vout */            vout_Control( p_vout , VOUT_SET_VIEWPORT,                               view->top, view->left, view->bottom, view->right,                               clip->top, clip->left, clip->bottom, clip->right );            vlc_object_release( p_vout );        }        libvlc_media_player_release(p_mi);    }}char *libvlc_video_get_aspect_ratio( libvlc_media_player_t *p_mi,                                     libvlc_exception_t *p_e ){    char *psz_aspect = 0;    vout_thread_t *p_vout = GetVout( p_mi, p_e );    if( !p_vout ) return 0;    psz_aspect = var_GetNonEmptyString( p_vout, "aspect-ratio" );    vlc_object_release( p_vout );    return psz_aspect ? psz_aspect : strdup("");}void libvlc_video_set_aspect_ratio( libvlc_media_player_t *p_mi,                                    char *psz_aspect, libvlc_exception_t *p_e ){    vout_thread_t *p_vout = GetVout( p_mi, p_e );    int i_ret = -1;    if( !p_vout ) return;    i_ret = var_SetString( p_vout, "aspect-ratio", psz_aspect );    if( i_ret )        libvlc_exception_raise( p_e,                        "Unexpected error while setting aspect-ratio value" );    vlc_object_release( p_vout );}int libvlc_video_get_spu( libvlc_media_player_t *p_mi,                          libvlc_exception_t *p_e ){    input_thread_t *p_input_thread = libvlc_get_input_thread( p_mi, p_e );    vlc_value_t val_list;    vlc_value_t val;    int i_spu = -1;    int i_ret = -1;    int i;    if( !p_input_thread ) return -1;    i_ret = var_Get( p_input_thread, "spu-es", &val );    if( i_ret < 0 )    {        libvlc_exception_raise( p_e, "Getting subtitle information failed" );        vlc_object_release( p_input_thread );        return i_ret;    }    var_Change( p_input_thread, "spu-es", VLC_VAR_GETCHOICES, &val_list, NULL );    for( i = 0; i < val_list.p_list->i_count; i++ )    {        vlc_value_t spu_val = val_list.p_list->p_values[i];        if( val.i_int == spu_val.i_int )        {            i_spu = i;            break;        }    }    vlc_object_release( p_input_thread );    return i_spu;}void libvlc_video_set_spu( libvlc_media_player_t *p_mi, int i_spu,                           libvlc_exception_t *p_e ){    input_thread_t *p_input_thread = libvlc_get_input_thread( p_mi, p_e );    vlc_value_t val_list;    int i_ret = -1;    int i;    if( !p_input_thread ) return;    var_Change( p_input_thread, "spu-es", VLC_VAR_GETCHOICES, &val_list, NULL );    for( i = 0; i < val_list.p_list->i_count; i++ )    {        vlc_value_t val = val_list.p_list->p_values[i];        if( i_spu == val.i_int )        {            vlc_value_t new_val;            new_val.i_int = val.i_int;            i_ret = var_Set( p_input_thread, "spu-es", new_val );            if( i_ret < 0 )            {                libvlc_exception_raise( p_e, "Setting subtitle value failed" );            }            vlc_object_release( p_input_thread );            return;        }    }    libvlc_exception_raise( p_e, "Subtitle value out of range" );    vlc_object_release( p_input_thread );}int libvlc_video_set_subtitle_file( libvlc_media_player_t *p_mi,                                    char *psz_subtitle,                                    libvlc_exception_t *p_e ){    input_thread_t *p_input_thread = libvlc_get_input_thread ( p_mi, p_e );    bool b_ret = false;    if( p_input_thread )    {        if( input_AddSubtitles( p_input_thread, psz_subtitle, true ) )            b_ret = true;        vlc_object_release( p_input_thread );    }    return b_ret;}char *libvlc_video_get_crop_geometry( libvlc_media_player_t *p_mi,                                   libvlc_exception_t *p_e ){    char *psz_geometry = 0;    vout_thread_t *p_vout = GetVout( p_mi, p_e );    if( !p_vout ) return 0;    psz_geometry = var_GetNonEmptyString( p_vout, "crop" );    vlc_object_release( p_vout );    return psz_geometry ? psz_geometry : strdup("");}void libvlc_video_set_crop_geometry( libvlc_media_player_t *p_mi,                                    char *psz_geometry, libvlc_exception_t *p_e ){    vout_thread_t *p_vout = GetVout( p_mi, p_e );    int i_ret = -1;    if( !p_vout ) return;    i_ret = var_SetString( p_vout, "crop", psz_geometry );    if( i_ret )        libvlc_exception_raise( p_e,                        "Unexpected error while setting crop geometry" );    vlc_object_release( p_vout );}int libvlc_video_get_teletext( libvlc_media_player_t *p_mi,                               libvlc_exception_t *p_e ){    vout_thread_t *p_vout = GetVout( p_mi, p_e );    vlc_object_t *p_vbi;    int i_ret = -1;    if( !p_vout ) return i_ret;    p_vbi = (vlc_object_t *) vlc_object_find_name( p_vout, "zvbi",                                                   FIND_ANYWHERE );    if( p_vbi )    {        i_ret = var_GetInteger( p_vbi, "vbi-page" );        vlc_object_release( p_vbi );    }    vlc_object_release( p_vout );    return i_ret;}void libvlc_video_set_teletext( libvlc_media_player_t *p_mi, int i_page,                                libvlc_exception_t *p_e ){    vout_thread_t *p_vout = GetVout( p_mi, p_e );    vlc_object_t *p_vbi;    int i_ret = -1;    if( !p_vout ) return;    p_vbi = (vlc_object_t *) vlc_object_find_name( p_vout, "zvbi",                                                   FIND_ANYWHERE );    if( p_vbi )    {        i_ret = var_SetInteger( p_vbi, "vbi-page", i_page );        vlc_object_release( p_vbi );    }    if( i_ret )        libvlc_exception_raise( p_e,                        "Unexpected error while setting teletext page" );    vlc_object_release( p_vout );}void libvlc_toggle_teletext( libvlc_media_player_t *p_mi,                             libvlc_exception_t *p_e ){    /* We only work on the first vout */    vout_thread_t *p_vout = GetVout( p_mi, p_e );    bool opaque; int i_ret;    /* GetVout will raise the exception for us */    if( !p_vout ) return;    opaque = var_GetBool( p_vout, "vbi-opaque" );    i_ret = var_SetBool( p_vout, "vbi-opaque", !opaque );    if( i_ret )        libvlc_exception_raise( p_e,                        "Unexpected error while setting teletext value" );    vlc_object_release( p_vout );}int libvlc_video_destroy( libvlc_media_player_t *p_mi,                          libvlc_exception_t *p_e ){    vout_thread_t *p_vout = GetVout( p_mi, p_e );    vlc_object_detach( p_vout );    vlc_object_release( p_vout );    vlc_object_release( p_vout );    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -