Skip to content

PPSSPP does not compile with ffmpeg-4.4 #13849

@sagitter

Description

@sagitter

Hi all.

What happens?

PPSSPP-1.10.3 does not compile against ffmpeg-4.4 (git commit 477dd2d):

[ 76%] Building CXX object CMakeFiles/Core.dir/Core/HW/MediaEngine.cpp.o
/usr/bin/g++ -DSDL -DSHARED_LIBZIP -DSHARED_ZLIB -DUSE_DISCORD=1 -DUSE_FFMPEG=1 -DVK_USE_PLATFORM_WAYLAND_KHR -DVK_USE_PLATFORM_XLIB_KHR -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -D_XOPEN_SOURCE=700 -D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1 -D__STDC_CONSTANT_MACROS -I/builddir/build/BUILD/ppsspp/ext/native -I/builddir/build/BUILD/ppsspp/ext/glslang -I/builddir/build/BUILD/ppsspp -I/builddir/build/BUILD/ppsspp/Common -I/builddir/build/BUILD/ppsspp/ext/cityhash -I/builddir/build/BUILD/ppsspp/ext/libkirk -I/builddir/build/BUILD/ppsspp/ext/sfmt19937 -I/builddir/build/BUILD/ppsspp/ext/xbrz -I/builddir/build/BUILD/ppsspp/ext/xxhash -I/builddir/build/BUILD/ppsspp/ext/glslang/glslang/.. -I/builddir/build/BUILD/ppsspp/ext/glslang/SPIRV/.. -I/builddir/build/BUILD/ppsspp/ext/SPIRV-Cross-build/../SPIRV-Cross -I/builddir/build/BUILD/ppsspp/ext/discord-rpc-build/../discord-rpc/src -I/builddir/build/BUILD/ppsspp/ext/discord-rpc-build/../discord-rpc/include -I/builddir/build/BUILD/ppsspp/ext/discord-rpc-build/../rapidjson/include -isystem /usr/include/SDL2 -isystem /usr/include/ffmpeg -O2  -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -DNDEBUG -O2 -D_NDEBUG   -Wno-multichar -msse2 -Wno-psabi -include /builddir/build/BUILD/ppsspp/ppsspp_config.h -fno-strict-aliasing -std=gnu++11 -o CMakeFiles/Core.dir/Core/HW/MediaEngine.cpp.o -c /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp
In file included from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:24:
/builddir/build/BUILD/ppsspp/GPU/GPUState.h: In member function 'void GPUStateCache::SetCurRTOffsetX(int)':
/builddir/build/BUILD/ppsspp/GPU/GPUState.h:601:25: warning: comparison of integer expressions of different signedness: 'int' and 'u32' {aka 'unsigned int'} [-Wsign-compare]
  601 |                 if (off != curRTOffsetX) {
      |                     ~~~~^~~~~~~~~~~~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp: In member function 'bool MediaEngine::SetupStreams()':
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:269:33: error: 'AVStream' {aka 'struct AVStream'} has no member named 'request_probe'
  269 |                         stream->request_probe = 0;
      |                                 ^~~~~~~~~~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp: In member function 'bool MediaEngine::openContext(bool)':
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:322:54: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
  322 |                         if(m_pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
      |                                                      ^~~~~
In file included from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:36:
/usr/include/ffmpeg/libavformat/avformat.h:884:21: note: declared here
  884 |     AVCodecContext *codec;
      |                     ^~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:322:54: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
  322 |                         if(m_pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
      |                                                      ^~~~~
In file included from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:36:
/usr/include/ffmpeg/libavformat/avformat.h:884:21: note: declared here
  884 |     AVCodecContext *codec;
      |                     ^~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:322:54: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
  322 |                         if(m_pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
      |                                                      ^~~~~
In file included from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:36:
/usr/include/ffmpeg/libavformat/avformat.h:884:21: note: declared here
  884 |     AVCodecContext *codec;
      |                     ^~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp: In member function 'bool MediaEngine::setVideoStream(int, bool)':
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:457:81: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
  457 |                 AVCodecContext *m_pCodecCtx = m_pFormatCtx->streams[streamNum]->codec;
      |                                                                                 ^~~~~
In file included from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:36:
/usr/include/ffmpeg/libavformat/avformat.h:884:21: note: declared here
  884 |     AVCodecContext *codec;
      |                     ^~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:457:81: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
  457 |                 AVCodecContext *m_pCodecCtx = m_pFormatCtx->streams[streamNum]->codec;
      |                                                                                 ^~~~~
In file included from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:36:
/usr/include/ffmpeg/libavformat/avformat.h:884:21: note: declared here
  884 |     AVCodecContext *codec;
      |                     ^~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:457:81: warning: 'AVStream::codec' is deprecated [-Wdeprecated-declarations]
  457 |                 AVCodecContext *m_pCodecCtx = m_pFormatCtx->streams[streamNum]->codec;
      |                                                                                 ^~~~~
In file included from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:36:
/usr/include/ffmpeg/libavformat/avformat.h:884:21: note: declared here
  884 |     AVCodecContext *codec;
      |                     ^~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp: In member function 'bool MediaEngine::stepVideo(int, bool)':
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:612:106: warning: 'int avcodec_decode_video2(AVCodecContext*, AVFrame*, int*, const AVPacket*)' is deprecated [-Wdeprecated-declarations]
  612 |                         int result = avcodec_decode_video2(m_pCodecCtx, m_pFrame, &frameFinished, &packet);
      |                                                                                                          ^
In file included from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:35:
/usr/include/ffmpeg/libavcodec/avcodec.h:3085:5: note: declared here
 3085 | int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
      |     ^~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:627:80: warning: 'int64_t av_frame_get_best_effort_timestamp(const AVFrame*)' is deprecated [-Wdeprecated-declarations]
  627 |                                 if (av_frame_get_best_effort_timestamp(m_pFrame) != AV_NOPTS_VALUE)
      |                                                                                ^
In file included from /usr/include/ffmpeg/libavcodec/avcodec.h:38,
                 from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:35:
/usr/include/ffmpeg/libavutil/frame.h:702:9: note: declared here
  702 | int64_t av_frame_get_best_effort_timestamp(const AVFrame *frame);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:628:97: warning: 'int64_t av_frame_get_best_effort_timestamp(const AVFrame*)' is deprecated [-Wdeprecated-declarations]
  628 |                                         m_videopts = av_frame_get_best_effort_timestamp(m_pFrame) + av_frame_get_pkt_duration(m_pFrame) - m_firstTimeStamp;
      |                                                                                                 ^
In file included from /usr/include/ffmpeg/libavcodec/avcodec.h:38,
                 from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:35:
/usr/include/ffmpeg/libavutil/frame.h:702:9: note: declared here
  702 | int64_t av_frame_get_best_effort_timestamp(const AVFrame *frame);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:628:135: warning: 'int64_t av_frame_get_pkt_duration(const AVFrame*)' is deprecated [-Wdeprecated-declarations]
  628 |                                         m_videopts = av_frame_get_best_effort_timestamp(m_pFrame) + av_frame_get_pkt_duration(m_pFrame) - m_firstTimeStamp;
      |                                                                                                                                       ^
In file included from /usr/include/ffmpeg/libavcodec/avcodec.h:38,
                 from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:35:
/usr/include/ffmpeg/libavutil/frame.h:706:9: note: declared here
  706 | int64_t av_frame_get_pkt_duration         (const AVFrame *frame);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:630:89: warning: 'int64_t av_frame_get_pkt_duration(const AVFrame*)' is deprecated [-Wdeprecated-declarations]
  630 |                                         m_videopts += av_frame_get_pkt_duration(m_pFrame);
      |                                                                                         ^
In file included from /usr/include/ffmpeg/libavcodec/avcodec.h:38,
                 from /builddir/build/BUILD/ppsspp/Core/HW/MediaEngine.cpp:35:
/usr/include/ffmpeg/libavutil/frame.h:706:9: note: declared here
  706 | int64_t av_frame_get_pkt_duration         (const AVFrame *frame);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/Core.dir/build.make:2334: CMakeFiles/Core.dir/Core/HW/MediaEngine.cpp.o] Error 1

What hardware, operating system, and PPSSPP version? On desktop, GPU matters for graphical issues.

Fedora 34 64bit (devel branch)
GCC-11.0.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    PSMF / MPEGIssue involves scePsmf or sceMpeg video playback.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions