[vlc-devel] [PATCH] Preliminary dual subtitles support.
roland.bewick at gmail.com
Wed Apr 24 13:19:59 CEST 2019
Hi Thomas, Francois and Rémi, thanks for your feedback.
> This feature should be disabled by default.
> So, the ES_OUT_ES_POLICY_SIMULTANEOUS should depend on a VLC option.
You're right. I've considered your advice.
When a user opens a video with embedded sub tracks, most wouldn't expect
selecting another track to enable both of them, especially because they
mightn't have set their default subtitle language.
If two external sub tracks are opened however, the user probably wants
to display both of them.
To be consistent, I think it's better to have an "enable dual subtitles"
option which is disabled by default, as you previously suggested.
> changing policy will clearly break all auto deselection by demuxers
Please correct me if I'm wrong,
but as far as I can tell, there are two demuxers that modify the
exclusive / simultaneous policy (ASF and MKV) so that only a single
video track can be selected at once.
Because the change I made only effects the selection of subtitles I
think the change will not break any existing auto deselection functionality.
For example, when I open a new video file, all the subtitles I
previously opened are still removed, leaving a blank state as expected.
> Do you really need this variable ?
No, I've thought of a way to simplify this. Thanks.
> Why ? Is the secondary SPU also created via EsOutCreateDecoder(), in that case, it should have its own clock, no ?
I disabled the check, and when I deselect one subtitle track they both
disappear. They are sharing the same SPU object. I'll look into this
I do agree that they should have their own clocks. (One per SPU). I'll
make sure the change works so that individual sub track synchronization
can be set.
> In my experience, duolingual subtitles are stacked together www by
> default, at the bottom. I think content producers and consumers alike
> expect the subtitles at the bottom, not the top of the picture.
Ok, It might be better to add settings for primary and secondary
subtitle alignment, and only set override if the user has specified.
> And as François hinted, hard-coding an alignment will break existing
He said it wouldn't as long as there wasn't an existing bug. The codecs
were designed to load settings from user config. The codecs themselves
however OR'd in the bottom position in the case the user only set
horizontal alignment. I simply removed that hard coding so that vertical
alignment can also be set.
Setting the alignment in this way does have a disadvantage though: The
decoder has to be recreated if the user changes the subtitle alignment
on the fly.
If I do have user options to override the alignment, maybe injecting
directly the user-overridden alignment into
vout_subpictures.c:SpuRenderRegion could be an option.
I'd not have to touch any of the decoders this way.
More information about the vlc-devel