【FFMPEG源码终极解析】 av_packet_alloc 与 av_packet_free

关于void *av_malloc(size_t size)可以参考av_malloc

av_packet_alloc实际是分配AVPacket以后,调用av_init_packet对AVPacket的成员变量进行初始化赋值。

AVPacket *av_packet_alloc(void)
{AVPacket *pkt = av_mallocz(sizeof(AVPacket));if (!pkt)return pkt;av_init_packet(pkt);return pkt;
}void av_init_packet(AVPacket *pkt)
{pkt->pts                  = AV_NOPTS_VALUE;pkt->dts                  = AV_NOPTS_VALUE;pkt->pos                  = -1;pkt->duration             = 0;
#if FF_API_CONVERGENCE_DURATION
FF_DISABLE_DEPRECATION_WARNINGSpkt->convergence_duration = 0;
FF_ENABLE_DEPRECATION_WARNINGS
#endifpkt->flags                = 0;pkt->stream_index         = 0;pkt->buf                  = NULL;pkt->side_data            = NULL;pkt->side_data_elems      = 0;
}

 

 

av_packet_free 实际是释放AVPacket的空间

void av_packet_free(AVPacket **pkt)
{if (!pkt || !*pkt)return;av_packet_unref(*pkt);av_freep(pkt);
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

visual2019没有勾选的在如何加入_发票管理系统完成升级,勾选认证平台改头换面,你所有的问题都在这里!...

发票系统2.0版上线为了进一步优化增值税发票系统,提高用户体验,根据国家税务总局安排部署,我省将于2019年11月1日对增值税发票管理系统进行全面升级改造为增值税发票管理系统2.0版。增值税发票综合服务平台是现有增值税发票选择确认平台的升级…

linux 多线程实现倒计时,Linux用脚本实现“时分秒“倒计时功能

1.怎样实现“时分秒“倒计时在Linux下,脚本的完成相对于C语言来说稍微随意一点,可以按照字的想法写,只要有逻辑就可以了。示例:注意:clean的功能这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页&…

【FFMPEG源码终极解析】void av_packet_unref(AVPacket *pkt)

av_packet_unref 该接口使用了如下调用,该接口主要作用是清理AVPacket中的所有空间数据,清理完毕后进行初始化操作,并且将 data 与 size 置为0,方便下次调用。 void av_packet_unref(AVPacket *pkt) {av_packet_free_side_data(pkt);av_buf…

sqoop sqoop2_在Sqoop中管理密码的关键提示

sqoop sqoop2Sqoop是流行的Hadoop数据传输工具。 Sqoop允许从结构化数据存储(如关系数据库,企业数据仓库和NoSQL数据存储)轻松导入和导出数据。 Sqoop还与Hive,HBase和Oozie等基于Hadoop的系统集成。 在此博客文章中,…

百分比单位始终根据父元素相应值来计算_CSS Viewport 单位,很多人还不知道使用它来快速布局!...

**CSS Viewport units(视口单位)**在过去几年已经出现了,随着时间的推移,越来越多的开发人员开始使用它们。它们的好处在于为我们提供了一种不需要使用J avaScript 就能以动态的方式调整大小的方法。而且,如果它失效,也有很多备用…

java set方法不生效_使您的Java 8方法引用生效

java set方法不生效方法参考 众所周知,我们可以使用Java 8中的方法引用 (例如String::isEmpty来引用例如在元素上流式传输时使用的方法。 看一下以下代码片段: Stream.of("A", "", "B").filter(Stream::isEmp…

linux macos 界面对比,GNOME 3与Mac OS X 10.7 (Lion)的纵览模式比较

在Twitter上与ibuick同学聊了一些Mac OS X新的设计,还有GNOME等。我突然意识到,Apple并不是引领一切的,很多方面,它甚至是向Linux下的GNOME、KDE学来的(比如出现于Leopard的Space)。更有意思的是,前些日子我刚玩过最新…

【音视频安卓开发 (四)】AndroidStudio项目配置权限、jni库路径、ABI

读写权限 权限(版本) 添加jni用到库所在的路径 设置cmake和NDK参数 cmake项目配置

犀牛重建曲面_【教程】Rhino犀牛面包机建模教学(含模型领取)

建模渲染教学视频可关注◾B站:卓尔谟工业设计小站;◾视频号:学犀牛网校教程:戎尚老师 / 编辑:老白建模步骤01、导入背景,画出面包机半边弧线并镜像;02、对照侧视图高度,用线拉成体&a…

selenium架构_Selenium测试的干净架构

selenium架构在此博客文章中,我想介绍一种具有最佳设计模式的Selenium测试的简洁架构:页面对象,页面元素(通常称为HTML包装器)以及自行开发的非常小巧的框架。 该体系结构不限于示例中使用的Java,也可以以任…

linux dns配置和安装,linux dns服务器 安装配置详解

一,什么是DNSDNS 是计算机域名 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而I…

C++ 【随想录】(四)【Makefile】

编译流程 预处理 gcc -E test.c -o test.i test.c源码进行预处理,预处理后停止编译,预处理后文件体积会变大,且为文本格式 编译 gcc -S test.i -o test.s 编译预处理的文件 汇编 gcc -c test.s -o test.o .s转成二进制文件 链接 gcc te…

mfc从文件中读取数据_Python 中的 bytes、str 以及 unicode 区别

从Python发展历史谈起Python3和Python2表示字符序列的方式有所不同。Python3字符序列的两种表示为byte和str。前者的实例包含原始的8位值,即原始的字节;后者的实例包括Unicode字符。Python2字符序列的两种表示为str和unicode。与Python3不同的是&#xf…

datetime 日期_用Hamcrest验证DateTime和日期

datetime 日期自从我开始涉足自动化测试和练习TDD以来,验证日期值很痛苦。 幸运的是,这里有一个不错的库,可用于遗留Date和新的Java 8 DateTime API ,从而解决了这一难题。 如果您属于Java开发社区中较健康的部分,并且…

linux字符雨,linux周记

shell脚本基础格式要求:首行shebaang机制#!/bin/bash#!/usr/bin/python#!/usr/bin/perlshell脚本用途:自动化常用命令执行系统管理和故障排除创建简单的应用程序处理文本或文件bash中变量的种类局部变量:生效范围为当前shell进程;…

【音视频安卓开发 (一)】AndroidStudio项目配置权限、jni库路径、ABI、Cmake

cmake项目配置 # For more information about using CMake with Android Studio, read the # documentation: https://d.android.com/studio/projects/add-native-code.html# Sets the minimum version of CMake required to build the native library.cmake_minimum_require…

string index out of range_Java 12 骚操作, String居然还能这样玩!

坐稳了&#xff0c;准备起飞&#xff01;1、transformtransform&#xff1a;即字符串转换&#xff0c;来看下 transform 的实现源码&#xff1a;public <R> R transform(Function<? super String, ? extends R> f) {return f.apply(this); }传入一个函数式接口 F…

弹性架构_实践中的弹性基础架构

弹性架构几周前&#xff0c;我获得了一个难得的机会&#xff0c;可以在基础设施领域中沾沾自喜。 在JVM内部的深入了解下&#xff0c;我每天的工作经历发生了有趣的变化&#xff0c;我想与您分享动机和成果。 希望它可以启发类似的问题类别。 背景 我将从解释需要解决方案的上…

linux的ctrl alt f6的作用,Linux(Centous6.4)操作系统中,快捷键Alt+Ctrl+F10是什么作用?...

满意答案John_05152017.07.16一些常用快捷键切换到第一个文本终端。在Linux 下你可以有多达六个不同的终端。这个命令的意思是&#xff1a;“同时按住键和键&#xff0c;然后按键&#xff0c;再释放所有的键”。(n1..6)&#xff1a;切换到第n个文本终端。(你也可以使用不是很经…

【TCP丢包重传】

TCP丢包重传机制如果在网络状况最糟糕的情况下就会造成极大的延迟。或者超过2min断开连接。如果这种场景下可以采用UDP。UDP需要解决包的重新排序&#xff0c;丢包等问题。