ijkplayer从ffmpeg指针获取sdl渲染信息并设置异常到流程

2024-05-04 04:48

本文主要是介绍ijkplayer从ffmpeg指针获取sdl渲染信息并设置异常到流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

获取abort_request流程:

is->abort_request

VideoState *is = ffp->is;



获取sdl流程:

typedef struct FFPlayer {

    /* extra fields */

    SDL_Aout *aout;

    SDL_Vout *vout;

}



sdl回调的call机制

ANativeWindow_lock

SDL_Android_NativeWindow_display_l

func_display_overlay_l

func_display_overlay


SDL_Vout *SDL_VoutAndroid_CreateForANativeWindow()

{

    SDL_Vout *vout = SDL_Vout_CreateInternal(sizeof(SDL_Vout_Opaque));

    if (!vout)

        return NULL;


    SDL_Vout_Opaque *opaque = vout->opaque;

    opaque->native_window = NULL;

    if (ISDL_Array__init(&opaque->overlay_manager, 32))

        goto fail;

    if (ISDL_Array__init(&opaque->overlay_pool, 32))

        goto fail;


    opaque->egl = IJK_EGL_create();

    if (!opaque->egl)

        goto fail;


    vout->opaque_class    = &g_nativewindow_class;

    vout->create_overlay  = func_create_overlay;

    vout->free_l          = func_free_l;

    vout->display_overlay = func_display_overlay;


    return vout;

fail:

    func_free_l(vout);

    return NULL;

}


SDL_VoutAndroid_CreateForAndroidSurface


IjkMediaPlayer *ijkmp_android_create(int(*msg_loop)(void*))

{

    IjkMediaPlayer *mp = ijkmp_create(msg_loop);

    if (!mp)

        goto fail;


    mp->ffplayer->vout = SDL_VoutAndroid_CreateForAndroidSurface();

    if (!mp->ffplayer->vout)

        goto fail;


    mp->ffplayer->pipeline = ffpipeline_create_from_android(mp->ffplayer);

    if (!mp->ffplayer->pipeline)

        goto fail;


    ffpipeline_set_vout(mp->ffplayer->pipeline, mp->ffplayer->vout);


    return mp;


fail:

    ijkmp_dec_ref_p(&mp);

    return NULL;

}


这篇关于ijkplayer从ffmpeg指针获取sdl渲染信息并设置异常到流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958363

相关文章

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

PyCharm如何设置新建文件默认为LF换行符

《PyCharm如何设置新建文件默认为LF换行符》:本文主要介绍PyCharm如何设置新建文件默认为LF换行符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm设置新建文件默认为LF换行符设置换行符修改换行符总结PyCharm设置新建文件默认为LF

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Java报NoClassDefFoundError异常的原因及解决

《Java报NoClassDefFoundError异常的原因及解决》在Java开发过程中,java.lang.NoClassDefFoundError是一个令人头疼的运行时错误,本文将深入探讨这一问... 目录一、问题分析二、报错原因三、解决思路四、常见场景及原因五、深入解决思路六、预http://www