ripose-jp / Memento

An mpv-based video player for studying Japanese
https://ripose-jp.github.io/Memento/
GNU General Public License v2.0
489 stars 21 forks source link

Search Within Subtitle List #162

Open NathanYearout opened 1 year ago

NathanYearout commented 1 year ago

Forgive me if this has been suggested before or there is some way to achieve this I'm unaware of. I believe adding the ability to search words on the "subtitle list" would be incredibly useful. It would especially come in handy for those with multiple monitors who are using the subtitle list in a window on another monitor as you don't have to pause and search on your contents window.

ripose-jp commented 1 year ago

Forgive me if this has been suggested before

It has not been.

there is some way to achieve this I'm unaware of.

Nope.

I believe adding the ability to search words on the "subtitle list" would be incredibly useful.

I agree.

as you don't have to pause and search on your contents window.

This is where things get sketchy. There was a time early in development where I did allow for subtitle searching while video was playing. The primary reason I disabled it was due to performance reasons. Turns out rending the results of a search is actually pretty expensive. If you're aiming to show 24 FPS video, there's even a good chance you start dropping frames given how much work you heap on the UI thread. I have no doubt that Linux and macOS could handle this, but the Windows version's performance is not only measurably, but noticeably worse #1. I have no idea why and no one's pitched in any ideas, so things stay the way they are. That said I am being a bit of a hypocrite here as I do allow for custom searches to execute without pausing the video which is just as intensive. Take what I say here with a grain of salt as these are just my initial thoughts on this suggestion, things could change when I work on it.

On another note, I have actually considered this idea before. My only apprehensions about implementing it regard how I can do it right. There are a few easy ways to do it, but I want to do it in a way that produces the least jank possible. As far as I'm concerned that's currently the greatest challenge.

NathanYearout commented 1 year ago

Thanks for the quick and detailed response. I figured it was a performance thing but I also had a feeling there'd be a way it could be done because of existing tools like migaku, of course that is a Chrome based tool though. Perhaps for now you could add a setting to allow auto-copying subtitles to your clipboard so a text hooker page could parse it with yomichan? That would be a decent solution.

ripose-jp commented 1 year ago

Perhaps for now you could add a setting to allow auto-copying subtitles to your clipboard so a text hooker page could parse it with yomichan?

Memento is mpv so you can just load in plugins that do that if you like. There's no reason for Memento to implement it internally.

The intended workflow for when you want to search for vocabulary in a subtitle in the subtitle list is to double click the subtitle to seek to it, then search it like normal. I don't think that's an unreasonable amount of work.

NathanYearout commented 1 year ago

Perhaps for now you could add a setting to allow auto-copying subtitles to your clipboard so a text hooker page could parse it with yomichan?

Memento is mpv so you can just load in plugins that do that if you like. There's no reason for Memento to implement it internally.

The intended workflow for when you want to search for vocabulary in a subtitle in the subtitle list is to double click the subtitle to seek to it, then search it like normal. I don't think that's an unreasonable amount of work.

Pausing the content isn't ideal for people who just need to search one word on the fly, certainly there's a workaround that doesn't lag. I'm just going to mark the issue as closed seing as it's just me that is interested in this feature though.

ripose-jp commented 1 year ago

I think this is a good feature. Please leave this open.

NathanYearout commented 1 year ago

I think this is a good feature. Please leave this open.

My apologies, I couldn't tell if it was something you're interested in or not. Please let me know if there's anyway I can help, I would try to implement the feature but my C++ is subpar at best so I also am sorry about providing a problem with no solution from my end.