Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bounty for touch ups on mpv-libretro #5070

Open
anothername99 opened this issue Jun 18, 2017 · 19 comments
Open

Bounty for touch ups on mpv-libretro #5070

anothername99 opened this issue Jun 18, 2017 · 19 comments
Labels

Comments

@anothername99
Copy link

anothername99 commented Jun 18, 2017

To complete this bounty, you need to implement the following:

  • Option to remember last video position
  • Map start/pause and stop to RetroPad buttons (I suggest X for start/pause and Y for stop)
  • Add a way to show seek bar and video name during playback
  • Go to previous/next video file in folder using RetroPad L and R buttons
  • Automatically play next video file in folder when end of current video is reached
  • Option to repeat a single video file or all video files in folder
  • Option to play back video at a slower or faster rate than normal
@deltabeard
Copy link
Contributor

deltabeard commented Dec 31, 2017

I've been attempting to create a libretro core based on mpv here that I hope will fulfil these requirements. I think it's best to use a media player that already exists, rather than trying to write a new one just for Retroarch.

My own personal requirements (separate from the bounty) are:

  • Supports hardware acceleration (at least) on the Raspberry Pi Dropped.
  • Subtitle support
  • RetroPad button mappings
  • A menu option for auto crop akin to this user script
  • Menu options for other useful mpv functions
  • Good enough to replace Kodi

I do plan on fulfilling your bounty requirements eventually as they're all useful.

However, I've hit an issue right from the beginning as described here and here which I hope to get resolved soon. Currently mpv-libretro can't do anything because of this issue.

Edit: What is the bounty for this? I can't find it on bountysource.
Edit2: The issue mentioned was fixed.
Edit3 2018-02-08: Updated requirements completion.

@orbea
Copy link
Contributor

orbea commented Jan 2, 2018

HI, personally the current video player is much preferred. Its far more portable than mpv and doesn't suffer from developer tantrums... Its missing some features, but I think adding those would be less work down the line than working around incompatibilities caused by mpv upstream.

@andres-asm
Copy link
Contributor

Well he's interested in MPV so it should be fine if he comes up with that

@deltabeard
Copy link
Contributor

That's fine. I will continue to work on mpv-libretro as an alternative. I have a proof of concept build already. 😃 I have yet to test if hardware acceleration works though, which is the main reason I started it.

developer tantrums

Are you referring to the ffmpeg fork?

@anyputer
Copy link
Contributor

anyputer commented Jan 2, 2018

@deltabeard
Copy link
Contributor

What about libVLC?

I hadn't considered libVLC because I didn't even know it existed. I will have a look to see if it would be more appropriate to use instead of libmpv later. If libvlc has an opengl callback and an audio callback (which mpv doesn't currently have) then I may use it instead.

@orbea
Copy link
Contributor

orbea commented Jan 3, 2018

Well he's interested in MPV so it should be fine if he comes up with that

Yea, exactly! There is no problem with alternatives so everyone is happy. :)

As for libVLC I wonder how trivial it would be to build? I know building stand alone vlc from source is not trivial...

@allanin
Copy link

allanin commented Jan 4, 2018

It would be good to have also a look for native wayland support for the video player.

MPV and RetroArch are working using Wayland, VLC does not afaik.

@anothername99 anothername99 changed the title Bounty for touch ups on builtin video player Bounty for touch ups on mpv-libretro Jan 10, 2018
@anothername99
Copy link
Author

anothername99 commented Jan 10, 2018

@deltabeard Sorry for the slow response. I posted this bounty long ago and I haven't checked up on it for a while. I learned about your mpv-libretro project yesterday and tested all of my video files on it. It seems to already work better than the builtin player, so I would be glad to put my money on this instead. Great work!

I noticed that all subtitle formats already seem to be supported. Are any of the other requirements implemented or work in progress?

About the bounty link, it is here:
https://www.bountysource.com/issues/46340715-bounty-for-touch-ups-on-builtin-video-player

I also opened another bounty if you're interested:
https://www.bountysource.com/issues/49138506-dvd-iso-playback-with-menu-navigation
#5416

@anothername99
Copy link
Author

@orbea What's the problem with mpv from a portability standpoint?

@deltabeard
Copy link
Contributor

Thanks for the support! I'm planning on fulfilling the requirements of the bounty at some point, but it may take a while.

  • Map start/pause and stop to RetroPad buttons (I suggest X for start/pause and Y for stop)

Already added controller input for pause/play, seek, show seek bar and next subtitle. Other button mappings can be added after other major features get added.

  • Add a way to show seek bar and video name during playback

A button mapping exists for showing the seek bar. It doesn't yet show the video name.

  • Option to remember last video position

Doesn't do this yet. But this will be integrated as part of the save state feature Retroarch has.

  • Option to play back video at a slower or faster rate than normal

A bunch of stuff has to happen first before this feature gets added. Namely audio callback support in libmpv.

  • Go to previous/next video file in folder using RetroPad L and R buttons

Retroarch doesn't currently have support for playing a playlist. However, it is possible to supply a playlist file (like m3u) as an input file. So if Retroarch doesn't add support when I consider adding this feature, I will add support for using playlist files in the meantime.

  • Automatically play next video file in folder when end of current video is reached

As part of the above feature.

  • Option to repeat a single video file or all video files in folder

Repeating a single video will be easy. Repeating a whole folder of videos relies on the playlist support mentioned above.

@deltabeard
Copy link
Contributor

deltabeard commented Jan 10, 2018

Regarding the DVD playback:

  • Open an iso image of a DVD movie

Simple to do.

  • Navigate menus

If mpv can navigate menus, then this will be simple to do too.

  • Play back the movie

I have tested playing a ripped DVD already.

I think libretro-mpv should be able to open a DVD iso file or mount point and play the movie already. I'll consider testing this further at some point this week.

@anothername99
Copy link
Author

"A bunch of stuff has to happen first before this feature gets added. Namely audio callback support in libmpv."

Bummer. This feature is of a lower priority though, so I may accept it anyway.

"Retroarch doesn't currently have support for playing a playlist. However, it is possible to supply a playlist file (like m3u) as an input file. So if Retroarch doesn't add support when I consider adding this feature, I will add support for using playlist files in the meantime."

This however is a big thing. I watch a lot of series and they usually come organized with an entire season in one folder. In Kodi I can just open the first episode and it will play the whole thing without having to configure anything. Requiring a playlist file would make it considerably less convenient than Kodi.

About DVD playback, I tried to open an iso file with mpv-libretro but it wouldn't recognize it. This might just mean that .iso hasn't been added as a supported extension though and maybe it's easy to fix.

@deltabeard
Copy link
Contributor

This might just mean that .iso hasn't been added as a supported extension though and maybe it's easy to fix.

That's true. I'll have to look in to what happens when a user supplies an invalid iso before I enable it.

This however is a big thing.

That's absolutely fine. It just may take a long while before that get's done.

@deltabeard
Copy link
Contributor

libretro-mpv could have it's own playlist and directory scanner, but @twinaphex suggested that this should be a Retroarch feature so that other cores can make use of it too.

@anothername99
Copy link
Author

I think that being able to play the next file in a folder is the most important missing feature for me right now. The rest of the missing features would be nice to have but they're not stopping me from using libretro-mpv as my main video player. I would be willing to accept a bounty claim when this is implemented even if no other features are implemented yet.

As for whether the code should be added to the libretro-mpv core or RetroArch itself, I don't think I have a preference. If @twinaphex wants it in RetroArch, I'd say put it there. Would you (@deltabeard) be interested in contributing the code needed for this feature into RetroArch?

@deltabeard
Copy link
Contributor

Would you be interested in contributing the code needed for this feature into RetroArch?

I'm not sure. I haven't had a proper look at RA source to decide how much time this requires. It needs proper planning to decide how it's going to work too.

@deltabeard
Copy link
Contributor

I've spent a lot of time since I last posted here on testing and adding support for the Raspberry Pi. In the end, mpv support for the Pi isn't too great (not a fault of mpv) and the Raspberry Pi Userland is pretty poor. However, hardware accelerated decoding may become a thing with the open source VC4 driver as explained here.

Until then, I'm going to leave Pi support for now and focus on more pressing issues with libretro-mpv.
I'll have a look into what playlist support RA currently has, and how much work is required to fulfil the rest of the bounty requirements.

I don't have much free time these days, so apologies for the slow progress.

@anothername99
Copy link
Author

I don't own a Raspberry Pi, so I don't have an opinion on that. Anyway, no worries, take your time, and thanks for your work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants