bomi icon indicating copy to clipboard operation
bomi copied to clipboard

Remove custom Mpv

Open wingedonezero opened this issue 8 years ago • 16 comments

I know this is the most up to date fork but it seems that no one will take it up because of the custom mpv. Can you remove that and make the gui parts from the code thats there and have it access mpv directly that would eliminate so many problems. Also im 99% sure mpv includes most the stuff that was so custom at the time so all options should be able to be added to interface. im not sure if your commit of https://github.com/d-s-x/bomi/commit/a29d40f091f3d982cd14fa4f013df2173f4f4026 was heading to that. I was hopeing that was the case. Any info would be appriciated.

wingedonezero avatar Oct 17 '17 04:10 wingedonezero

Hi, I'm working on exactly this in private branch (wanted to publish when it's ready because no one wants to co-develop bomi anyway).

It's almost finished but some things require repairs :)

d-s-x avatar Oct 17 '17 17:10 d-s-x

That is exciting i had a feeling that was the case :). I figured it be smarter to since you wouldn't have to update every change to mpv. Bomi is nice because it has all the mpv options available such as scaling filters, colorspaces etc. Very feature rich gui for mpv idk why the original guy decided it was a good idea to use a custom mpv. At least this way you would only have to update it to add options or remove them from the frontend and bug fixes. You dont have to worry about the mpv aspect as much.

Im sure once you post some more developers will come and help since it'll be easier for them to manage. I heard the source was a mess as he left it. Bomi is the best video player and with mpc hc gone now im sure the popularity will sky rocket again when your done.

wingedonezero avatar Oct 17 '17 21:10 wingedonezero

why the original guy decided it was a good idea to use a custom mpv

Because he had abilities to add changes to mpv faster than upstream. Also he can skip negotiations with upstream and add things even if mpv maintainers were against some changes. For him the goal was not to create mpv frontend but full-fledged video player.

But now he doesn't have much spare time to keep up with mpv. Neither do anyone.

My plan is following:

  • remove mpv customizations and bomi code/features that depends on them (95% done)
  • update mpv to closest tag (0.10.0) (95% - have been done in other branch already)
  • link against libmpv.so (dynamic instead of static) (0%)
  • fix regressions (0%)

Unfortunately I don't have much free time aswell so the work progressing very slowly.

d-s-x avatar Oct 17 '17 22:10 d-s-x

Yea take your time its been a year since anyone really worked on bomi lol. But once you can get to that point of having it use external mpv. Then it should only need updated once mpv adds new features which would be easier than maintaining a whole mpv by yourself.

wingedonezero avatar Oct 23 '17 09:10 wingedonezero

I tried seeing how far I could get with trial and error similar to what you were doing @d-s-x. I'm up to mpv v0.18.0 so far, though I usually commented stuff out than try to fix them. The commits usually link the breaking mpv commit, so it'll be easy to revisit later.

https://github.com/Zren/bomi/compare/76142d35d7fe6e9acd057d3e15258239eb917788...zdev-mpv

I was hoping to not have to patch mpv itself, but they used "new" as a parameter name (in a C file). Since it's a C++ keyword, the compiler doesn't like that.

I wrote a quick script to run git apply ../mpv-patches/fix-new-keyword.diff after checkout out the next mpv tag here:
https://github.com/Zren/bomi/blob/zdev-mpv/checkoutmpv

Zren avatar Dec 23 '17 12:12 Zren

@Zren, I took different approach and removed all mpv customizations with bomi features that depends on the customizations. Then I've tried to link against libmpv just to find out that bomi uses non-public members and wont work this way. This is depressing. I think it's easier to re-implement whole thing (at-least 20% of it) with recent libmpv rather than trying to patch existing code. Patching around separate layer for subtitles alone gave me enough headache. And almost all features depends on inner mpv structures and functions.

d-s-x avatar Dec 24 '17 07:12 d-s-x

Some things could potentially exposed as API, but IU have no idea what internal mpv APIs bomi uses.

ghost avatar Feb 14 '18 18:02 ghost

@mw4, I believe most things already properly exposed via API. For example, bomi uses some private mpv methods to switch audio streams. I'm sure there is already a better way to do it rather than exposing mpv internals as API just to make bomi link with libmpv.so

d-s-x avatar Feb 15 '18 20:02 d-s-x

@d-s-x What's the status? Bomi is still the only MPlayer frontend that offers many advantages of MPlayer in the right-click menu. In addition, some alternatives are not cross-platform.

MPV Easy Player and BakaMPlayer are two more projects with potential, but they offer less settings (e.g. no motion smoothing). The latter has its last official release also in 2015.

Thunderbolt32 avatar Jan 14 '19 19:01 Thunderbolt32

If anyone is still looking for an alternative, I use PotPlayer now. It replaced bomi in every aspect for me.

theChaosCoder avatar Jan 14 '19 22:01 theChaosCoder

@Thunderbolt32,

What's the status?

Well, nothing changed since comment-353769812

I use bomi "as is" because it just works™. Sometimes it stops working though but some guys on AUR are making patches faster than I do.

d-s-x avatar Jan 16 '19 06:01 d-s-x

Do they come upstream?

ShalokShalom avatar Apr 15 '19 14:04 ShalokShalom

Do they come upstream?

Patches? No. They are kept as separate files https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=bomi-git

d-s-x avatar Apr 16 '19 19:04 d-s-x

And why?

ShalokShalom avatar Apr 16 '19 19:04 ShalokShalom

And why?

I don't know. There are maintainers' emails in the PKGBUILD - ask them not me.

d-s-x avatar Apr 17 '19 19:04 d-s-x

Upload them?

ShalokShalom avatar Apr 17 '19 21:04 ShalokShalom