ffmpeg avcodec_get_frame_defaults已声明已弃用

时间:2014-12-29 09:07:24

标签: function audio ffmpeg

制作ffmpeg简单播放器

我指的是ffmpeg示例代码 (https://github.com/phamquy/FFmpeg-tutorial-samples/blob/master/tutorial03.c

在带有visual studio 12的窗口7中

首先我做了cmd-project,所有链接,并且complie是OK

但是当我在vs12

中按 F5
**1>ConsoleApplication1.cpp (141): error C4996: 'avcodec_get_frame_defaults': was declared deprecated
   Failed | ConsoleApplication1\ConsoleApplication1.vcxproj [Debug|x64]**

我怎么了?

我再次下载最新的ffmpeg DLL,但注意事项已更改

2 个答案:

答案 0 :(得分:5)

关于avcodec_get_frame_defaults的函数声明的评论说你应该使用av_frame_unref并且代码似乎正在这样做:

void avcodec_get_frame_defaults(AVFrame *frame)
{
#if LIBAVCODEC_VERSION_MAJOR >= 55
     // extended_data should explicitly be freed when needed, this code is unsafe currently
     // also this is not compatible to the <55 ABI/API
    if (frame->extended_data != frame->data && 0)
        av_freep(&frame->extended_data);
#endif

    memset(frame, 0, sizeof(AVFrame));
    av_frame_unref(frame);
}

答案 1 :(得分:1)

gcc不会将弃用警告视为错误。您可以删除&#39; attribute_deprecated&#39;来自avcodec.h或更改编译器行为。