Redefined ffmpeg's av_err2str macro to be c++ friendly (#815)

* Fixed compiler error for av_err2string by redefining in c++ friendly way

* removed link from comment, putting in PR

* fixed formatting

* Minor fix: enable qt gui to find PKG files with lowercase extension .pkg

* Added missing dependencies and instructions for enabling QT for linux builds
This commit is contained in:
Zack McKevitt 2024-09-08 15:30:18 -06:00 committed by GitHub
parent 9101bd7ad4
commit 96f7a75f38
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 21 additions and 7 deletions

View file

@ -9,7 +9,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
#### Debian & Ubuntu
```
sudo apt-get install build-essential libasound2-dev libpulse-dev libopenal-dev zlib1g-dev libedit-dev libvulkan-dev libudev-dev git libevdev-dev libsdl2-2.0 libsdl2-dev libjack-dev libsndio-dev
sudo apt-get install build-essential libasound2-dev libpulse-dev libopenal-dev zlib1g-dev libedit-dev libvulkan-dev libudev-dev git libevdev-dev libsdl2-2.0 libsdl2-dev libjack-dev libsndio-dev qt6-base-dev qt6-tools-dev
```
#### Fedora
@ -34,9 +34,9 @@ git clone --recursive https://github.com/shadps4-emu/shadPS4.git
cd shadPS4
```
Generate the build directory in the shadPS4 directory:
Generate the build directory in the shadPS4 directory. To enable the QT GUI, pass the ```-DENABLE_QT_GUI=ON``` flag:
```
cmake -S . -B build/
cmake -S . -B build/ -DENABLE_QT_GUI=ON
```
Enter the directory:
@ -49,8 +49,11 @@ Use make to build the project:
cmake --build . --parallel$(nproc)
```
Now run the emulator:
Now run the emulator. If QT is enabled:
```
./shadps4
```
Otherwise, specify the path to your PKG's boot file:
```
./shadps4 /"PATH"/"TO"/"GAME"/"FOLDER"/eboot.bin
```

View file

@ -20,6 +20,17 @@ extern "C" {
#include <libswscale/swscale.h>
}
// The av_err2str macro in libavutil/error.h does not play nice with C++
#ifdef av_err2str
#undef av_err2str
#include <string>
av_always_inline std::string av_err2string(int errnum) {
char errbuf[AV_ERROR_MAX_STRING_SIZE];
return av_make_error_string(errbuf, AV_ERROR_MAX_STRING_SIZE, errnum);
}
#define av_err2str(err) av_err2string(err).c_str()
#endif // av_err2str
namespace Libraries::AvPlayer {
using namespace Kernel;

View file

@ -577,7 +577,7 @@ void MainWindow::SaveWindowState() const {
void MainWindow::InstallPkg() {
QFileDialog dialog;
dialog.setFileMode(QFileDialog::ExistingFiles);
dialog.setNameFilter(tr("PKG File (*.PKG)"));
dialog.setNameFilter(tr("PKG File (*.PKG *.pkg)"));
if (dialog.exec()) {
QStringList fileNames = dialog.selectedFiles();
int nPkg = fileNames.size();