goplayegg / AcfunQml

Qt Qml based Acfun desktop app
Other
71 stars 12 forks source link

硬解码/视频播放效率问题 #3

Open goplayegg opened 4 years ago

goplayegg commented 4 years ago

QmlVlc是注册vlc的YUV回调用OpenGL渲染的,cpu占用比vlc官方客户端高一些。

void libvlc_video_set_callbacks( libvlc_media_player_t *mp,
    void *(*lock_cb) (void *, void **),
    void (*unlock_cb) (void *, void *, void *const *),
    void (*display_cb) (void *, void *),
    void *opaque )
{
    var_SetAddress( mp, "vmem-lock", lock_cb );
    var_SetAddress( mp, "vmem-unlock", unlock_cb );
    var_SetAddress( mp, "vmem-display", display_cb );
    var_SetAddress( mp, "vmem-data", opaque );
    var_SetString( mp, "avcodec-hw", "none" );           //看vlc的源码好像设置过显示回调后会自动禁用硬件解码
    var_SetString( mp, "vout", "vmem" );
    var_SetString( mp, "window", "none" );
}