aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/host1x/codecs
Commit message (Collapse)AuthorAgeFilesLines
* [video_core/host1x] VP9 Video Playback Fixes (#4590)PavelBARABANOV30 hours1-19/+24
| | | | | | | | | | | | | | | - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- https://git.eden-emu.dev/eden-emu/eden/pulls/4542 Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4590 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: John <john@eden-emu.dev> (cherry picked from commit 0731f40f4d86227f05da3fffbc44831065b53a8a) Co-Authored-By: Claude Code <noreply@anthropic.com> (cherry picked from commit 7c3821da0e678978d55df14d65e047539eafba4c)
* nx2: decode AV1 moviesTakoroka4 days1-0/+2
| | | | | | Fire Emblem: Fortune's Weave plays its movies as AV1 ("video/av01"). Map the codec to AV_CODEC_ID_AV1; FFmpeg decodes it with libdav1d when the FFmpeg build has it.
* [common] Switch to boost::unordered_flat containers (#4326)crueter2026-08-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces all instances of ankerl's unordered map/set with boost's `unordered_flat_*` classes. This uses std::hash since boost::hash is actually a lot slower. Also adds an abstraction layer in `Common` so future changes are quicker and easier. Other implementation details: - ankerl provided hash specializations for tuple and pair, so those were ported here - std::erase_if doesn't work on boost, so just used the ADL'd erase_if This should be about equal or superior performance as unordered_dense for everything except iteration. Signed-off-by: crueter <crueter@eden-emu.dev> - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4326 Reviewed-by: Lizzie and Samuel <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [vulkan, android] Mediacodec implementation + Vulkan fixes (#4191)CamilleLaVey2026-07-095-35/+45
| | | | | | | | | | | | | | | | | | | This is the first step into the conversion on full GPU video decoding for Android; currently due to the VIC structure, I couldn't set it on surface mode to prevent the latency when sending video decoded (which is processed by GPU now), because currently we convert YUV420 into the Nvidia's format each frame constantly on CPU, aside the requirements from other extensions to work + VIC rewrite, which is a work currently not planned to happen on this PR; the actual configuration for video decoding is ByteBuffer, using GPU to decode NVDEC data (all codecs supported, h264, vp8 and vp9) and send it to CPU for display purposes, which is more faster than relying purely on CPU for any drawing task, saving devices resources/ heating, the downside on this will be the slight latency when a new frame is displayed, which is gonna be a black frame for less than a second, nothing major to harm the experience rather than actually trying our best to take advantage on hardware accelerated. Aside this, I also added a bunch of minor Vulkan fixes to grant drivers less thinkering when receiving spir-v instructions, meaning this has new bans for extensions on QCOM (following reported issues on other projects working around Adreno driver behavior), this more than providing performance aims to enhance the stability on the driver, performance it's gonna likely to be hit based on the UBO's (StorageBufferAccess) operations and SSBO (uniformStorageBufferAccess), there was an already existing path for the emulation which forces to wide them into 32bit packed operations. I also included some smaller changes/ bugs + VUID's fixes from earlier changes on my work. Special Thanks: -> Mr. Smoly Gidolard (@gidoly) Sources: 1.- https://github.com/microsoft/DirectXShaderCompiler/issues/2842 2.- https://github.com/mlc-ai/web-llm/issues/836 3.- https://github.com/ggml-org/llama.cpp/issues/5186 4.- https://github.com/encounter/aurora/pull/202 Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4191
* [video_core] fix H264 and jthread() causing spurious errors (#3907)lizzie2026-04-291-3/+3
| | | | | | | | | | fixes regression by #3878 Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3907 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [host1x] fix ffmpeg not having va-api on freebsd, inline nvenc (#3878)lizzie2026-04-2911-767/+151
| | | | | | | | | | | | | | - 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>
* [*] change all std::unordered_map and std::unordered_set into ↵lizzie2026-02-101-1/+4
| | | | | | | | | | | | | | | | | | | ankerl::unordered_dense::map/set variants (#3442) mainly doing this to reduce memory footprint; we all know how nice ankerl::unordered_dense is in theory 4x faster - in practice these maps arent that "hot" anyways so not likely to have much perf gained i just want to reduce mem fragmentation to ease my porting process, plus it helps other platforms as well (ahem weak Mediatek devices) :) Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3442 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [host1x] Improve FFmpeg error handling (#2643)MaranBr2025-10-021-0/+4
| | | | | | | | 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>
* [meta] fix license headers (#2547)lizzie2025-09-212-0/+6
| | | | | | | Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2547 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [cmake] enable clang-cl and WoA builds (#348)lizzie2025-09-092-3/+3
| | | | | | | | | | | | | | Compilation and CMake fixes for both Windows on ARM and clang-cl, meaning Windows can now be built on both MSVC and clang on both amd64 and aarch64. Compiling on clang is *dramatically* faster so this should be useful for CI. Co-authored-by: crueter <crueter@eden-emu.dev> Co-authored-by: crueter <crueter@crueter.xyz> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/348 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [fmt] use {:#X} for format instead of 0x{:X} (#309)lizzie2025-08-271-2/+2
| | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/309 Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* Fix headersMaranBr2025-07-241-0/+3
|
* Fix typoMaranBr2025-07-241-1/+1
|
* Port changes from Early Accessdarktux2025-04-049-238/+685
|
* Core: Clang format and other small issues.Fernando Sahmkow2024-01-181-3/+2
|
* GPU SMMU: Expand to 34 bitsFernando Sahmkow2024-01-183-10/+9
|
* Fix typos in video_coreViktor Szépe2024-01-071-1/+1
|
* video_core: refactor video frame and packet parsingLiam2023-11-164-339/+34
|
* host1x/codecs: enable CUDA on LinuxValeri2023-10-141-10/+0
|
* Use initial_frame to check interlaced flagDanila Malyutin2023-08-281-1/+2
| | | | | | If final frame was transferred from GPU, it won't carry the props. Fixes #11089
* settings,general: Rename non-confirming enumslat9nq2023-07-212-2/+2
|
* general: Use ScratchBuffer where possibleMorph2023-06-308-19/+28
|
* Remove memory allocations in some hot pathsKelebek12023-06-221-1/+3
|
* Add support for deinterlaced videos playbackDanila Malyutin2023-05-222-2/+99
| | | | | This is a follow up to #10254 to improve the playback of cut scenes in Layton's Mystery Journey. It uses ffmpeg's yadif filter for deinterlacing.
* Fix missing pic_order_present_flag in h264 headerDanila Malyutin2023-05-121-2/+2
| | | | Fixes #9635
* Allow >1 cpu threads on video decoding, disable multi-frame decodingKelebek12023-02-141-0/+2
|
* General: Fix clang format.Fernando Sahmkow2022-10-061-2/+3
|
* NVDRV: Refactor Host1xFernando Sahmkow2022-10-069-34/+49
|
* VideoCore: Refactor syncing.Fernando Sahmkow2022-10-069-0/+2414