当前位置: 首页 > news >正文

FFmpeg 基本API avcodec_alloc_context3函数内部调用流程分析

1、avcodec_alloc_context3函数定义

avcodec_alloc_context3() 是 FFmpeg 中用于分配并初始化解码器或编码器上下文 AVCodecContext 的 API,是绝大多数编解码初始化流程的第一步。

AVCodecContext *avcodec_alloc_context3(const AVCodec *codec);
- 参数 codec:你打算使用的编解码器(如 ff_hevc_decoder)。可以为 NULL,但通常你会先通过 avcodec_find_decoder() 得到一个有效 AVCodec*- 返回值:成功返回指向 AVCodecContext 的指针,失败返回 NULL

2、avcodec_alloc_context3函数内部调用说明

avcodec_alloc_context3内部分析:

  • 申请一个 AVCodecContext 内存结构体;
  • 填充 codec 类型(如 AVMEDIA_TYPE_VIDEO)和 ID(如 AV_CODEC_ID_HEVC)等基本字段;
  • 初始化内部的默认值(通过 AVOptions 系统);
  • 如 codec->priv_data_size > 0,则为 priv_data 分配内存(如 HEVCContext);
  • 如 codec->priv_class 存在,则为 priv_data 设置默认 AVOptions。
avcodec_alloc_context3(codec)
└── av_mallocz(sizeof(AVCodecContext))                    // 分配 AVCodecContext 结构体└── init_context_defaults(s, codec)                  // 填充默认值├── s->codec_type = codec->type├── s->codec_id   = codec->id├── av_opt_set_defaults(s)                        // 初始化 AVOptions├── if (codec->priv_data_size > 0)│     └── s->priv_data = av_mallocz(codec->priv_data_size) // 分配私有数据└── if (codec->priv_class)└── av_opt_set_defaults(s->priv_data)      // 设置 priv_data 的 AVOptions

3、avcodec_alloc_context3函数调用流程图

在这里插入图片描述

http://www.dtcms.com/a/503902.html

相关文章:

  • 多传感器信息融合---深度学习
  • 成都市网站建设公司怎么建立公众号写文章
  • 做百度移动端网站排名如何自创软件
  • 2014年数据结构应用题深度解析
  • 如何弄自己的公司网站搜索引擎网站建设公司
  • 【中国太平洋人寿保险-注册/登录安全分析报告】
  • 衡阳市做网站对网站建设的描述
  • 九成自动化批量备份知乎专栏文章
  • 东莞建站模板搭建wordpress摘要调用
  • CSP-J 2021 复赛题
  • [嵌入式系统-155]:新能源汽车内部的通信总线有哪些?
  • 网站的优势是什么意思南昌seo排名公司
  • Spring IoCDI补充
  • debug:内部设备故障
  • 数字电路 | 运放及放大器交越失真现象解析
  • dedecms手机网站制作wordpress app 生成6
  • 网站营销计划书免费w网站建设
  • 网站建设找哪家公司19手机网站
  • SpringBoot的自动配置魔法——小白的内功修炼
  • dw和vs做网站舟山网大海网
  • 给帅哥做奴视频网站排名前十的小说
  • Netty网络架构与Reactor模式深度解析
  • 大型网站设计首页实例wordpress系统安装教程
  • Spring Boot 3零基础教程,WEB 开发 内容协商机制 笔记33
  • 基于单片机的PWM三基色LED灯控制器设计与无线调色系统
  • 网站开发的价格产品图册设计公司
  • 量化策略如何处理不同周期指标出现矛盾信号的情况
  • 建网站要注意些什么html页面网站建设中
  • 学校能建设网站吗商城平台是什么
  • 厦门市建设工程造价协会官方网站重庆市建设局网站