ffmpeg AVStream::codec被声明为已否决

严重性 代码 说明 项目 文件 行 禁止显示状态

错误 C4996 ‘AVStream::codec‘: 被声明为已否决

虽然足够的简单,但是还是报了”被声明为已否决”的error

在网上搜索到了解决方案:将VS的SDL检查关闭

AVStream的codec成员不再推荐使用,而是要求使用codecpar。

从而我们知道FFmpeg中所谓的“被声明为已否决”就是因为函数或者结构体属性被标示为attribute_deprecated,很有可能在未来的版本中就删除了。

所以我们最好的解决方案就是使用新的被推荐使用的函数、结构体等。

在后续中因为要解决avformat_find_stream_info探测流慢的问题,会针对codecpar进行相应的赋值

之前的版本

pCodecCtx = pFormatCtx->streams[videoIndex]->codec;

之后的版本

pCodecCtx = avcodec_alloc_context3(NULL);

if (pCodecCtx == NULL)

{

printf("Could not allocate AVCodecContext\n");

return -1;

}

avcodec_parameters_to_context(pCodecCtx, pFormatCtx->streams[videoIndex]->codecpar);

参考

http://blog.csdn.net/x_iya/article/details/52395990

时间: 2024-08-30 14:41:32

ffmpeg AVStream::codec被声明为已否决的相关文章

[转载] FFmpeg 错误 C4996: ‘avcodec_alloc_frame’: 被声明为已否决 解决方法

在 Visual Studio 2013 下编写 FFmpeg 程序时出错,错误如下: 出错代码如下: 解决方法为:将 avcodec_alloc_frame() 替换为 av_frame_alloc(). 转自:http://www.itechzero.com/ffmpeg-error-c4996-avcodec_alloc_frame-is-deprecated-solution.html

VS2013 FFmpeg开发环境配置

1.下载ffmpeg包(dll.include.lib)   https://ffmpeg.zeranoe.com/builds/ 有3个版本:Static.Shared和Dev Static  --- 包含3个应用程序:ffmpeg.exe , ffplay.exe , ffprobe.exe,相关的DLL已经被编译到exe里了. Shared---包含3个应用程序之外还包含一些DLL,exe体积很小,在运行时到相应的DLL中调用功能. Dev     ---开发者(developer)版本,

OpenCL 图像卷积 2

? 上一篇图像卷积 http://www.cnblogs.com/cuancuancuanhao/p/8535569.html.这篇使用了 OpenCV 从文件读取彩色的 jpeg 图像,进行边缘检测以后写回文件. ● 代码(没有使用局部内存优化) 1 // convolution.cl,核函数,应该和上一篇中无优化内核是一样的 2 __kernel void convolution(__read_only image2d_t sourceImage, __write_only image2d_

CGridCtrl控件类的用法

开源的CGridCtrl类,是VC中的可用的表格控件.相对VC自带的CListCtrl网格控件功能要强很多.但是除原工程代码自带的示例外,很少有完整描述使用的过程.在VC2015中的用法如下: (1)先将源代码的中的GridCtrl_src文件夹和NewCellTypes文件夹复制到当前新建工程源代码目录下. 在窗口的.h文件中添加: #include "GridCtrl_src\GridCtrl.h" 在窗口的.cpp文件中添加: #include "NewCellType

VS各种错误集成总结,持续更新

1.error C4996: 'GetVersionExW': 被声明为已否决 解决办法:工程 -- 配置属性 --C/ C++ -- 常规 -- SDL check 关掉 2. 原文地址:https://www.cnblogs.com/132818Creator/p/10951884.html

Cocos2dx__标签

如何向屏幕加入一行文字? 1. 常用创建标签方法汇总: a. Label::create()  // // 被声明为已否决 b. Label::createWithSystemFont() c. Label::createWithTTF() 2. 标签加入特效汇总(列出顺序与源码构建顺序一致): a. enableGlow b. enableOutline c. enableShadow d. enableItalics e. enableBold f. enableUnderline g. e

利用try-catch判断变量是已声明未声明还是未赋值

原文 利用try-catch判断变量是已声明未声明还是未赋值 这篇文章主要介绍了利用try-catch判断变量是已声明未赋值还是未声明,需要的朋友可以参考下 目的是如果一个变量是已声明未赋值,就可以直接赋值:并且不能改变变量的作用域 如果未声明的话,就重新声明, 在网上搜了下,常见的方法是if(typeof(a)=='undefined'){var a='ss';}, 但是这种方法对未声明或已声明未赋值的变量都会返回true.而且如果是这样: 代码如下: var a; function f(){

FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑

FFmpeg_Tutorial FFmpeg工具和sdk库的使用demo 一.使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑 1.基本介绍 对于每一个从事音视频技术开发的工程师,想必没有一个人对FFmpeg这个名称感到陌生.FFmpeg是一套非常知名的音视频处理的开源工具,它包含了开发完成的工具软件.封装好的函数库以及源代码供我们按需使用.FFmpeg提供了非常强大的功能,可以完成音视频的编码.解码.转码.视频采集.后处理(抓图.水印.封装/解封装.格式转换等),还有流媒体服务等

FFmpeg源代码简单分析:avformat_write_header()

打算写两篇文章简单分析FFmpeg的写文件用到的3个函数:avformat_write_header(),av_write_frame()以及av_write_trailer().其中av_write_frame()用于写视频数据,avformat_write_header()用于写视频文件头,而av_write_trailer()用于写视频文件尾.本文首先分析avformat_write_header().PS:需要注意的是,尽管这3个函数功能是配套的,但是它们的前缀却不一样,写文件头Head