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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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


以上是关于ffmpeg AVStream::codec被声明为已否决的主要内容,如果未能解决你的问题,请参考以下文章

不建议使用AVStream.codec.time_base作为muxer的时基提示。改为设置AVStream.time_base

ffmpeg新旧API对比

ffmpeg新旧API对比

使用 emcc 编译 ffmpeg 时出错:“cbrt”的静态声明遵循非静态声明

FFmpeg源代码结构图 - 解码

ffmpeg:宽度不能被 2 整除(保持比例时)