aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/host1x/ffmpeg/ffmpeg.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [host1x] fix ffmpeg not having va-api on freebsd, inline nvenc (#3878)lizzie2026-04-291-315/+0
| | | | | | | | | | | | | | - fix va-api not being used on freebsd small thingies dont affect a lot: - removes some pointer indirection (why save pointer to GMMU if its accesible via host1x) - use std::variant<> for decoder - miscelly vp9/v8/h264 opts Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3878 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [common/logging] Simplify logging logic and fix issues when logging before ↵lizzie2026-03-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | system is created (#3688) - our logging code was bigger than spdlog itself, why???? just keep it simple - fix issues when logging before logging system is even started - removes the "initialized logging twice" issue - removes uneeded indirection in file logging - uses direct formatting instead of jumping hoopla-around the fmt::format() ressult - code duplication and dead code removal as usual I did explore dup2() but I think it's not worth the hassle I did try `fwopen()` but it's better if things are just kept as-is. there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <chimera@dravee.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [ffmpeg] update to 8.0.1, enable VTBox/mediacodec/d3d12 hwaccels (#3156)crueter2025-12-131-192/+199
| | | | | | | | | | MediaCodec needs some jvm shenanigans to work, but the others should Just Work(TM). Need tests on Windows (AMD/Intel), macOS Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3156 Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [host1x] Improve FFmpeg error handling (#2643)MaranBr2025-10-021-11/+11
| | | | | | | | This improves the FFmpeg error handling. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2643 Co-authored-by: MaranBr <maranbr@outlook.com> Co-committed-by: MaranBr <maranbr@outlook.com>
* [cmake] feat: FFmpeg CI, allow 16kb android builds, update translations for ↵crueter2025-09-231-2/+2
| | | | | | | | | | | | | | | | transifex (#2543) Uses an FFmpeg CI for Android and Windows, also available for Linux. Saves compile time on Linux and is more consistent on Windows/Android. Also, updates VVL and FFmpeg to allow for a fully 16kb-compliant Android build. Bonus: APK size is down 30% Updated all localization files for Transifex while I was at it TODO for future: Android 8.0 with vp9_vulkan et al. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2543 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: Lizzie <lizzie@eden-emu.dev>
* [host1x] Fix hardware detection and improve compatibility (#85)MaranBr2025-07-221-153/+153
| | | | | | | | | This fixes green screen on unsupported devices trying to use GPU decoding and improve compatibility with default builds of FFmpeg on all platforms. Co-authored-by: MaranBr <maranbr@outlook.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/85 Co-authored-by: MaranBr <maranbr@eden-emu.dev> Co-committed-by: MaranBr <maranbr@eden-emu.dev>
* [host1x] Fix GPU decoding for VP8 video codec (#72)MaranBr2025-07-181-26/+44
| | | | | | | | | This fixes GPU decoding for the VP8 video codec on supported devices. Co-authored-by: MaranBr <maranbr@outlook.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/72 Co-authored-by: MaranBr <maranbr@eden-emu.dev> Co-committed-by: MaranBr <maranbr@eden-emu.dev>
* [host1x] Fix FFmpeg crash on Linux (#37)MaranBr2025-07-141-4/+2
| | | | | | | | | | | | This fixes the FFmpeg crash on Linux / Steam Deck. Credit to Maufeat for AVERROR_EOF check. Co-authored-by: MaranBr <maranbr@outlook.com> Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/37 Co-authored-by: MaranBr <maranbr@eden-emu.dev> Co-committed-by: MaranBr <maranbr@eden-emu.dev>
* [host1x] FreeBSD: Fix random crashes due to CUDA/VAAPI check sideeffects (#64)SDK-Chan2025-07-141-2/+3
| | | | | | | | | | | | FreeBSD doesn't support NVDEC, CUDA, and partially supports VAAPI (mostly for firefox). Implementing VAAPI for other use cases would be a little bit complicated so, I chose to switch it off for FreeBSD. This PR ensures that FFmpeg will always default to software decoding on FreeBSD, but should remain the same functionalities for other OS's. The results are slight CPU increases while decoding in software mode, but still neglectable and they don't really harm performance. Co-authored-by: MaranBr <maranbr@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/64 Co-authored-by: SDK-Chan <sdkchan@eden-emu.dev> Co-committed-by: SDK-Chan <sdkchan@eden-emu.dev>
* [host1x] Simplify the FFmpeg code a bit more (#243)MaranBr2025-07-021-39/+27
| | | | | | | This simplifies the FFmpeg code a bit more and removes unused variables left in the code. Co-authored-by: MaranBr <maranbr@outlook.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/243
* Fix FFmpeg GPU decoding (#242)MaranBr2025-06-301-6/+12
| | | | | | | This fixes the FFmpeg GPU decoding on some platforms. Co-authored-by: MaranBr <maranbr@outlook.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/242
* revert 91a662431cfe419bd46b6ca4ed298a4ba70d7820 (#240)CamilleLaVey2025-06-301-13/+6
| | | | | | | | | | | | | | | | | | revert [Texture_cache] Better memory handling for devices with lower memory allocations (#233) Means games like Minecraft Dungeons, Sea of Stars, Luigi Mansion 2, Astroneer, Alan Wake, etc are now playable. It also cleans up the recent abi.cpp and bindless texture commits a bit. Everything is in #ifdef ANDROID - The biggest change is CACHING_PAGEBITS = 12. Without that the way the buffercache grows and joins buffers can cause Android to run out of memory (as you end up with just one big buffer that needs to be copied every time it grows) Also patches up ffmpeg issues. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/233 Co-authored-by: JPikachu <jpikachu.eden@gmail.com> Co-committed-by: JPikachu <jpikachu.eden@gmail.com> Had showed some regressions on devices with higher specifications, will be refined to return as a toggle in a later commit. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/240
* [Texture_cache] Better memory handling for devices with lower memory ↵JPikachu2025-06-291-6/+13
| | | | | | | | | | | | | | allocations (#233) Means games like Minecraft Dungeons, Sea of Stars, Luigi Mansion 2, Astroneer, Alan Wake, etc are now playable. It also cleans up the recent abi.cpp and bindless texture commits a bit. Everything is in #ifdef ANDROID - The biggest change is CACHING_PAGEBITS = 12. Without that the way the buffercache grows and joins buffers can cause Android to run out of memory (as you end up with just one big buffer that needs to be copied every time it grows) Also patches up ffmpeg issues. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/233 Co-authored-by: JPikachu <jpikachu.eden@gmail.com> Co-committed-by: JPikachu <jpikachu.eden@gmail.com>
* [video_core] ffmpeg 7.1.1 fix (#224)Maufeat2025-06-281-63/+23
| | | | | | | | | | | Simplified and add AVERROR_EOF check, seems to do the trick. Fixed Blasphemous 2 and Burnout Paradise crash and more Co-authored-by: MaranBr <maranbr@outlook.com> Co-authored-by: MaranBr <maranbr@fake.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/224 Co-authored-by: Maufeat <sahyno1996@gmail.com> Co-committed-by: Maufeat <sahyno1996@gmail.com>
* Update FFmpeg to 7.1.1, libvpx to 1.13.1 and libx264 to c24e06c on Android ↵MaranBr2025-06-141-29/+10
| | | | | | | | | | | | (#187) This updates FFmpeg to 7.1.1, libvpx to 1.13.1 and libx264 to c24e06c on Android. Co-authored-by: MaranBr <maranbr@outlook.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/187 Reviewed-by: crueter <crueter@noreply.localhost> Co-authored-by: MaranBr <maranbr@noreply.localhost> Co-committed-by: MaranBr <maranbr@noreply.localhost>
* Fix License headers & CI (#168)crueter2025-06-091-3/+3
| | | | | | | Signed-off-by: crueter <swurl@swurl.xyz> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/168 Co-authored-by: crueter <swurl@swurl.xyz> Co-committed-by: crueter <swurl@swurl.xyz>
* Fix video decoding on newer versions of FFmpeg (#155)MaranBr2025-06-041-173/+9
| | | | | | | Fixes video decoding issues and enables compatibility with newer versions of FFmpeg. Co-authored-by: MaranBr <maranbr@outlook.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/155
* Enable FFmpeg GPU decoding for NVIDIA and AMD graphic cards (#139)MaranBr2025-05-291-3/+1
| | | | | | | This enables the DXVA2, D3D11VA, D3D11VA2 and NVENC decoders for GPU decoding of H264 and VP9 formats on Windows. Co-authored-by: MaranBr <maranbr@outlook.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/139
* fix a large variety of issues (#101)swurl2025-05-111-4/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - GLASM/SPIR-V mixup on Android - potential greenscreen fix (thx suyu) - save memory layout and add 10gb/12gb options - potential samsung gaming hub fix - fix layout of controller UI - fix default settings to sensible defaults. - note to TotK that you should increase memory layout - Error checking for Windows linking - fix an IDE error - improved migration system w/threading and busy indicator - disabled citron migration for now - replaced some user-facing legacy strings with eden - Added 10GB and 12GB DRAM layouts - Fix Android black screen issues - add discord link & update FAQ/Quickstart - update links in about page - add back rich presence - add Don't show again for desktop pre alpha banner - add citron warning to android and polaris to desktop Signed-off-by: swurl <swurl@swurl.xyz> Co-authored-by: Pavel Barabanov <pavelbarabanov94@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/101 Co-authored-by: swurl <swurl@swurl.xyz> Co-committed-by: swurl <swurl@swurl.xyz>
* Port changes from Early Accessdarktux2025-04-041-153/+77
|
* scope_exit: Make constexprFearlessTobi2024-02-191-2/+2
| | | | | Allows the use of the macro in constexpr-contexts. Also avoids some potential problems when nesting braces inside it.
* codec: Update to use av frame flagslat9nq2023-12-051-1/+6
| | | | Resolves Clang -Wdeprecated-declarations warning from interlaced_frame
* video_core: refactor video frame and packet parsingLiam2023-11-161-0/+419