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

Want to work on mpv? #13608

Open
Akemi opened this issue Feb 29, 2024 · 5 comments
Open

Want to work on mpv? #13608

Akemi opened this issue Feb 29, 2024 · 5 comments
Assignees
Labels
meta:developer-needed meta:help-wanted Anyone is invited to help with this. Suitable for new developers with no experience with mpv code. meta:rfc

Comments

@Akemi
Copy link
Member

Akemi commented Feb 29, 2024

you want to work on mpv and don't know where to start? there are open issues that could possibly be fixed. though this might not be a good or easy start into mpv.

there are various things that still need to be done, with varying difficulties and different scopes. some of these are a good start into our code and can be done independently from any other tasks. anyway, the plan is to finish every task on the list, let everyone know of the current status, keeping track of people working on those tasks and coordinating that work properly. if you want to do any of those yourself, just let us know and we will plan appropriately and try to assist you as well as possible.

General

S D Description Assignee
🟢 a community manager that handles various tasks, communicating with users, triaging issues, adjusting docs, etc
🟡 port our website to an up-to-date version of Middleman / Ruby
🔴 add a way for libmpv to work with libplacebo/gpu-next
🔴 add a way to package mpv scripts/shaders/etc. and make them updatable, to automatically manage these scripts

Linux

S D Description Assignee

macOS

S D Description Assignee
🟢 update wiki for compiling distro releases
🟢 cleanup bundle info.plist, replace deprecated nodes l0x0l
🟢 fix fixable deprecation warnings
🟢 add meaningful verbose/info logging to common/windowing
🟡 use swiftc (swift compiler) instead of swift (swift frontend) for building osdep/mac/meson.build meson.build
🟡 rewrite bundling scripts dylib_unhell.py and osxbundle.py in swift
🟡 add dead char support (^ ` ´ etc) @Akemi
🟡 move cohesive functionality from common code into separate modules
🟡 make display-names unique, add serial number + backwards compatibility @Akemi
🔴 rewrite messy calculateWindowPosition function with a nonlinear function
🔴 full featured CI builds with target 10.15
🔴 find maintainer for CoreAudio code

Windows

S D Description Assignee

Legend

S = Status D = Difficulty
❌ todo 🔴 hard
✅ done 🟡 medium
🟢 easy

Table Editor

Read, edit and output Markdown tables: https://tableconvert.com/markdown-to-markdown

@Akemi Akemi added os:mac meta:rfc meta:developer-needed meta:help-wanted Anyone is invited to help with this. Suitable for new developers with no experience with mpv code. labels Feb 29, 2024
@Akemi Akemi pinned this issue Feb 29, 2024
@Akemi Akemi self-assigned this Mar 1, 2024
@Akemi Akemi changed the title Want to work on mpv? macOS TODOs Want to work on mpv? Mar 1, 2024
@Akemi Akemi removed the os:mac label Mar 1, 2024
@Obegg

This comment was marked as off-topic.

@N-R-K
Copy link
Contributor

N-R-K commented Mar 30, 2024

add a way to package mpv scripts/shaders/etc. and make them updatable, to automatically manage these scripts

I have a very rough proof-of-concept for managing plugins via git. Currently tested on linux and windows 10: https://codeberg.org/NRK/mpvget

My current opinion from working on this is that the ideal long term solution would be for mpv project to come up with a standardized plugin directory structure (similar to vim) and somehow get everyone to update their plugin to conform to such structure. It would eliminate the need for external "package managers" since you can basically just use git submodules at that point.


Also why hand-write markdown tables in here instead of just using github labels? It seems much more flexible. E.g you can have meta:difficulty-{easy,mid,hard} tags for difficulty. We already have os:* tags. And github issues also supports "assignees" already.

@Akemi
Copy link
Member Author

Akemi commented Mar 30, 2024

Also why hand-write markdown tables in here instead of just using github labels? It seems much more flexible. E.g you can have meta:difficulty-{easy,mid,hard} tags for difficulty. We already have os:* tags. And github issues also supports "assignees" already.

i am not really writing the table by hand though. various reasons:

  • i don't think the issue tracker is a place for code cleanup and refactoring work. it should be kept to issues, feature request, etc
  • the issue tracker is imo already full enough
  • the point of this list, is the list itself and not being 'hidden' in the issues
  • if there isn't any interested from anyone working on any of the then created 'issues', it would have been a waste of effort and time creating those (filling them with info etc)
  • issues on the tracker can still be created when work has been picked by someone and it feels appropriate for communication and/or discussion
  • atm it's mostly just my personal backlog/worklog
  • i wanted to see if there is even a general interest in this, by people who want to work on something and by others filling the various lists
  • imo the issue tracker isn't really more flexible. it just has a different presentation with a set amount of features that can be used to track such things. though if you need something more specific that can't be mapped to any of the features, your are out of luck. in that case some custom list can be extended with such things. eg previously there was a field with dependencies, that indicated which issues depend on other issues.

@addycb
Copy link

addycb commented May 10, 2024

Any more info on the calculateWindowPosition requirements? Or on the advantage of a nonlinear function here

@Akemi
Copy link
Member Author

Akemi commented May 11, 2024

the hope is to considerably simplify the whole function. atm it's a lot of ifs and it's hard to know/see what those are for.

the function also handles the case that the window changes screens or the screen resolution changes (when in fs), and the window is placed relative at the same position but the same size as before. with a linear function this would place the window off-screen in some cases.

also it seems the function broke a bit over the iterations of new macOS versions and does place the window at weird positions in some cases.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta:developer-needed meta:help-wanted Anyone is invited to help with this. Suitable for new developers with no experience with mpv code. meta:rfc
Projects
None yet
Development

No branches or pull requests

5 participants
@Akemi @Obegg @addycb @N-R-K and others