Here is a diff to fix ppsspp building with newer FFmpeg.

Builds with 4.4 and 6.1.


Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/ppsspp/Makefile,v
retrieving revision 1.30
diff -u -p -u -p -r1.30 Makefile
--- Makefile    6 Nov 2024 09:19:15 -0000       1.30
+++ Makefile    10 Nov 2024 05:35:51 -0000
@@ -5,7 +5,7 @@ COMMENT =       Sony PlayStation Portable emul
 
 DISTNAME =     ppsspp-$V
 V =            1.18.1
-
+REVISION =     0
 SITES =                
https://github.com/hrydgard/ppsspp/releases/download/v$V/
 
 EXTRACT_SUFX = .tar.xz
Index: patches/patch-Core_AVIDump_cpp
===================================================================
RCS file: patches/patch-Core_AVIDump_cpp
diff -N patches/patch-Core_AVIDump_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-Core_AVIDump_cpp      10 Nov 2024 05:35:51 -0000
@@ -0,0 +1,14 @@
+Build with newer FFmpeg
+
+Index: Core/AVIDump.cpp
+--- Core/AVIDump.cpp.orig
++++ Core/AVIDump.cpp
+@@ -93,7 +93,7 @@ bool AVIDump::Start(int w, int h)
+ 
+ bool AVIDump::CreateAVI() {
+ #ifdef USE_FFMPEG
+-      AVCodec *codec = nullptr;
++      const AVCodec *codec = nullptr;
+ 
+       // Use gameID_EmulatedTimestamp for filename
+       std::string discID = g_paramSFO.GetDiscID();
Index: patches/patch-Core_HLE_sceMpeg_cpp
===================================================================
RCS file: patches/patch-Core_HLE_sceMpeg_cpp
diff -N patches/patch-Core_HLE_sceMpeg_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-Core_HLE_sceMpeg_cpp  10 Nov 2024 05:35:51 -0000
@@ -0,0 +1,14 @@
+Build with newer FFmpeg
+
+Index: Core/HLE/sceMpeg.cpp
+--- Core/HLE/sceMpeg.cpp.orig
++++ Core/HLE/sceMpeg.cpp
+@@ -805,7 +805,7 @@ static bool InitPmp(MpegContext * ctx){
+       pmp_want_pix_fmt = AV_PIX_FMT_RGBA;
+ 
+       // Create H264 video codec
+-      AVCodec * pmp_Codec = avcodec_find_decoder(AV_CODEC_ID_H264);
++      const AVCodec * pmp_Codec = avcodec_find_decoder(AV_CODEC_ID_H264);
+       if (pmp_Codec == NULL){
+               ERROR_LOG(Log::ME, "Can not find H264 codec, please update 
ffmpeg");
+               return false;
Index: patches/patch-Core_HW_MediaEngine_cpp
===================================================================
RCS file: patches/patch-Core_HW_MediaEngine_cpp
diff -N patches/patch-Core_HW_MediaEngine_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-Core_HW_MediaEngine_cpp       10 Nov 2024 05:35:51 -0000
@@ -0,0 +1,32 @@
+Build with newer FFmpeg
+
+Index: Core/HW/MediaEngine.cpp
+--- Core/HW/MediaEngine.cpp.orig
++++ Core/HW/MediaEngine.cpp
+@@ -416,7 +416,7 @@ bool MediaEngine::addVideoStream(int streamNum, int st
+               // no need to add an existing stream.
+               if ((u32)streamNum < m_pFormatCtx->nb_streams)
+                       return true;
+-              AVCodec *h264_codec = avcodec_find_decoder(AV_CODEC_ID_H264);
++              const AVCodec *h264_codec = 
avcodec_find_decoder(AV_CODEC_ID_H264);
+               if (!h264_codec)
+                       return false;
+               AVStream *stream = avformat_new_stream(m_pFormatCtx, 
h264_codec);
+@@ -439,7 +439,7 @@ bool MediaEngine::addVideoStream(int streamNum, int st
+                       }
+ 
+ #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(59, 16, 100)
+-                      AVCodec *codec = 
avcodec_find_decoder(stream->codecpar->codec_id);
++                      const AVCodec *codec = 
avcodec_find_decoder(stream->codecpar->codec_id);
+                       AVCodecContext *codecCtx = 
avcodec_alloc_context3(codec);
+ #else
+                       AVCodecContext *codecCtx = stream->codec;
+@@ -527,7 +527,7 @@ bool MediaEngine::setVideoStream(int streamNum, bool f
+ 
+               AVStream *stream = m_pFormatCtx->streams[streamNum];
+ #if LIBAVFORMAT_VERSION_INT >= AV_VERSION_INT(57, 33, 100)
+-              AVCodec *pCodec = 
avcodec_find_decoder(stream->codecpar->codec_id);
++              const AVCodec *pCodec = 
avcodec_find_decoder(stream->codecpar->codec_id);
+               if (!pCodec) {
+                       WARN_LOG_REPORT(Log::ME, "Could not find decoder for 
%d", (int)stream->codecpar->codec_id);
+                       return false;
Index: patches/patch-Core_HW_SimpleAudioDec_cpp
===================================================================
RCS file: patches/patch-Core_HW_SimpleAudioDec_cpp
diff -N patches/patch-Core_HW_SimpleAudioDec_cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-Core_HW_SimpleAudioDec_cpp    10 Nov 2024 05:35:51 -0000
@@ -0,0 +1,14 @@
+Build with newer FFmpeg
+
+Index: Core/HW/SimpleAudioDec.cpp
+--- Core/HW/SimpleAudioDec.cpp.orig
++++ Core/HW/SimpleAudioDec.cpp
+@@ -118,7 +118,7 @@ class FFmpegAudioDecoder : public AudioDecoder { (priv
+       int channels_;
+ 
+       AVFrame *frame_ = nullptr;
+-      AVCodec *codec_ = nullptr;
++      const AVCodec *codec_ = nullptr;
+       AVCodecContext  *codecCtx_ = nullptr;
+       SwrContext      *swrCtx_ = nullptr;
+ 

Reply via email to