Currently we're using ffdshow to render most subtitles. This is nice because it's easy and it works with madVR.
It also has some downsides. We don't have the ability to allow a user to choose multiple languages when they use sidecar subs. We don't know if subs are available for some files so offer "on / off" even if it won't do anything.
One proposed solution is for JRiver to create a custom subtitle engine.
Rendering would have to support the custom madVR output method and also the standard Directshow delivery (for EVR, etc.). This doesn't sound too hard.
The hard part is all the subtitle formats:
1) Subtitles exposed by LAV Source / Splitter using the standard text pin
2) Sidecar files like .sub, .idx, .ssa, and about 20 other formats
3) Embedded subtitles that don't have a text pin (possibly the time-overlay on some home videos, etc.)
4) DVD subpicture information, which is encrypted (not really a subtitle, but not supported by madVR otherwise)
5) Line 21 information (currently we use a Microsoft Line 21 decoder)
Is it worth the time to create a custom subtitle system? Is there an easier solution?
Thanks for any advice.