(Bringing up an old post...)<br><br><div class="gmail_quote">On Fri, Mar 28, 2008 at 6:55 AM, Matthias Kretz <<a href="mailto:kretz@kde.org">kretz@kde.org</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
[snip]<br>
Here's what I think an application using ext. subtitles with Phonon could look<br>
like:<br>
<br>
using Phonon::MediaObject;<br>
using Phonon::AudioOutput;<br>
using Phonon::VideoWidget;<br>
using Phonon::SubtitleWidget;<br>
using Phonon::Port;<br>
<br>
MediaObject m;<br>
m.setCurrentSource(Phonon::Dvd);<br>
MediaObject sm;<br>
sm.setCurrentSource(urlToSubtitles);<br>
Synchronizer sync;<br>
sync.addMediaObject(&m);<br>
sync.addMediaObject(&sm);<br>
AudioOutput ao(Phonon::VideoCategory);<br>
VideoWidget vw;<br>
vw.show();<br>
Phonon::createPath(&m, &ao);<br>
Phonon::createPath(&m, Port(Phonon::Video), &vw);<br>
Port port = sm.openPort(Phonon::Subtitles, "pixmap");<br>
SubtitleWidget swidget;<br>
Phonon::createPath(&sm, port, &swidget);<br>
<br>
This code uses several ideas that are not yet implemented in Phonon but will<br>
probably get started on in the near future. Those are:<br>
a) Synchronizer: Some class to combine multiple MediaObjects (sources) into<br>
one or just to start/stop multiple sources in sync. This will also be a<br>
requirement for audio/video editors.<br>
b) Port: this class will be added to allow more fine grained control over what<br>
actually gets connected. E.g. the line<br>
Phonon::createPath(&m, Port(Phonon::Video), &vw);<br>
will only create a video connection between m and vw. Per default also a<br>
subtitle connection would have been made and the subtitles of the DVD would<br>
be shown on the VideoWidget. Now no subtitles will be shown at all.<br>
The openPort call tells the MediaObject to create a stream of pixmaps where<br>
the subtitles are rendered on to ("pixmap" and "image" would be in the same<br>
scale as an unscaled video frame and will work with any subtitle format.<br>
Another format we should look into is "text" which would allow the<br>
application to draw the subtitles manually in whatever obscure form it<br>
wants.).<br>
[snip]</blockquote></div><br>Matthias, do you still intend to create a synchronizer for Phonon?  I see on the KDE 4.2 feature plan (techbase) that you've got the Ports mentioned above on your Todo.  Is it likely the synchronizer will also make 4.2?<br>
<br>I'm working with Konrad to get this subtitle support off the ground.  We both feel it's important so we're doing what we can to make time to see this through.  I would personally love to see this by KDE 4.2 and am aiming for that.  To get started I took Konrad's idea and did some prototyping so I'd have enough of a clue what's going on to contribute something useful.  So now I've got subtitles working enough to start looking at a proper design.  For the moment I've (ab)used the tick signal to get the timing for the subtitles.<br>
<br>Cheers,<br>-AF<br>