Rusty Libretro Core

I am developing a libretro core, written in Rust. The repository for it is here.

The main issue I am trying to sort out is that passing video (from gstreamer) to libretro causes a segfault. I have detailed the issue here.

There is a relevant comment here as well.

In that particular comment, Sebastian (he handles gstreamer-rs) said:

Also check that the size of the mapped buffer is the same as the size in bytes that libretro expects there. That’s likely the reason for the crash.

I have read through as much documentation as I can find for libretro, but I cannot sort out why I can successfully pass audio to libretro, but passing video crashes.

Any help is welcome :slight_smile:

Hey, this looks awesome! I brought your problem to the attention of some folks in Discord, so hopefully someone will be able to chime in with some advice.

If you’re on Discord yourself, feel free to stop by our server and chat with folks in the #programming channel. :slight_smile:

Based on Sebastian’s comment, you might check that the max_height/max_width from the core are not being exceeded by the video (for laserdisc stuff, maybe related to interlacing? I’m not seeing any clear info online as to whether that format was 480i vs 480p. If 480i, you may need to combine both fields into a woven 480p image).

Thank you so much!

I just hopped on discord, so I will definitely start up a chat there.

The thing is, I am not trying to recreate any hardware emulation of laserdisc players. With that, I am only using progressive video coming from either a blu-ray or a DVD.

ah, ok, that’s good! not having to mess with interlacing should make things a lot easier.