/simplest_ffmpeg_player.c:65: undefined reference to `avcodec_alloc_frame'
时间: 2023-09-12 19:06:42 浏览: 160
这个错误通常表示程序无法找到 `avcodec_alloc_frame` 的定义。可能的原因是你的程序没有正确链接 FFmpeg 库。你需要检查你的编译命令是否正确,是否包含了正确的库文件路径和库文件名。另外,`avcodec_alloc_frame` 已经被废弃,建议使用 `av_frame_alloc` 替代。
相关问题
cc_binary { name: "Myffplay", hdrs: ["/vendor/platform/secure_c/include/securec.h"], srcs: ["jni/simplest_ffmpeg_player.c"], }
在 `cc_binary` 中添加头文件路径的方式是正确的,但是 `/vendor/platform/secure_c/include/securec.h` 这个头文件路径是一个非常特殊的路径,它指向了一个 Android 系统的私有目录。在 Android.bp 中添加这样的路径是不允许的,因为这会导致 Android 应用无法在非特定设备上运行。
如果你需要使用这个头文件,建议将其复制到你的项目源代码目录中,并在 `Android.bp` 中使用相对路径或绝对路径引用它。例如:
```
cc_binary {
name: "Myffplay",
hdrs: ["path/to/securec.h"], // 使用相对路径或绝对路径引用头文件
srcs: ["jni/simplest_ffmpeg_player.c"],
...
}
```
需要注意的是,如果你使用了相对路径引用头文件,建议将头文件放在与 `Android.bp` 文件相同的目录中或其子目录中,这样可以避免路径错误导致的编译错误。
simplest_ffmpeg_player.c:34:5: error: implicit declaration of function 'av_find_stream_info' is invalid in C99 [-Werror,-Wimplicit-function-declaration] if(av_find_stream_info(pFormatCtx)<0)
这个错误的意思是在C99标准下隐式声明函数'av_find_stream_info'无效,并且在编译期间出现了这个错误。要解决这个问题,你可以在你的代码中添加一个头文件“libavformat/avformat.h”,因为这个头文件包含了'av_find_stream_info'函数的声明。在头部添加这个文件后,重新编译你的代码,这个错误就会被修复。
阅读全文