--===============1279359712== Content-Type: multipart/alternative; boundary="----=_Part_3186_27960907.1213539800115" ------=_Part_3186_27960907.1213539800115 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline (Bringing up an old post...) On Fri, Mar 28, 2008 at 6:55 AM, Matthias Kretz wrote: > [snip] > Here's what I think an application using ext. subtitles with Phonon could > look > like: > > using Phonon::MediaObject; > using Phonon::AudioOutput; > using Phonon::VideoWidget; > using Phonon::SubtitleWidget; > using Phonon::Port; > > MediaObject m; > m.setCurrentSource(Phonon::Dvd); > MediaObject sm; > sm.setCurrentSource(urlToSubtitles); > Synchronizer sync; > sync.addMediaObject(&m); > sync.addMediaObject(&sm); > AudioOutput ao(Phonon::VideoCategory); > VideoWidget vw; > vw.show(); > Phonon::createPath(&m, &ao); > Phonon::createPath(&m, Port(Phonon::Video), &vw); > Port port = sm.openPort(Phonon::Subtitles, "pixmap"); > SubtitleWidget swidget; > Phonon::createPath(&sm, port, &swidget); > > This code uses several ideas that are not yet implemented in Phonon but > will > probably get started on in the near future. Those are: > a) Synchronizer: Some class to combine multiple MediaObjects (sources) into > one or just to start/stop multiple sources in sync. This will also be a > requirement for audio/video editors. > b) Port: this class will be added to allow more fine grained control over > what > actually gets connected. E.g. the line > Phonon::createPath(&m, Port(Phonon::Video), &vw); > will only create a video connection between m and vw. Per default also a > subtitle connection would have been made and the subtitles of the DVD would > be shown on the VideoWidget. Now no subtitles will be shown at all. > The openPort call tells the MediaObject to create a stream of pixmaps where > the subtitles are rendered on to ("pixmap" and "image" would be in the same > scale as an unscaled video frame and will work with any subtitle format. > Another format we should look into is "text" which would allow the > application to draw the subtitles manually in whatever obscure form it > wants.). > [snip] 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? 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. Cheers, -AF ------=_Part_3186_27960907.1213539800115 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline (Bringing up an old post...)

On Fri, Mar 28, 2008 at 6:55 AM, Matthias Kretz <kretz@kde.org> wrote:
[snip]
Here's what I think an application using ext. subtitles with Phonon could look
like:

using Phonon::MediaObject;
using Phonon::AudioOutput;
using Phonon::VideoWidget;
using Phonon::SubtitleWidget;
using Phonon::Port;

MediaObject m;
m.setCurrentSource(Phonon::Dvd);
MediaObject sm;
sm.setCurrentSource(urlToSubtitles);
Synchronizer sync;
sync.addMediaObject(&m);
sync.addMediaObject(&sm);
AudioOutput ao(Phonon::VideoCategory);
VideoWidget vw;
vw.show();
Phonon::createPath(&m, &ao);
Phonon::createPath(&m, Port(Phonon::Video), &vw);
Port port = sm.openPort(Phonon::Subtitles, "pixmap");
SubtitleWidget swidget;
Phonon::createPath(&sm, port, &swidget);

This code uses several ideas that are not yet implemented in Phonon but will
probably get started on in the near future. Those are:
a) Synchronizer: Some class to combine multiple MediaObjects (sources) into
one or just to start/stop multiple sources in sync. This will also be a
requirement for audio/video editors.
b) Port: this class will be added to allow more fine grained control over what
actually gets connected. E.g. the line
Phonon::createPath(&m, Port(Phonon::Video), &vw);
will only create a video connection between m and vw. Per default also a
subtitle connection would have been made and the subtitles of the DVD would
be shown on the VideoWidget. Now no subtitles will be shown at all.
The openPort call tells the MediaObject to create a stream of pixmaps where
the subtitles are rendered on to ("pixmap" and "image" would be in the same
scale as an unscaled video frame and will work with any subtitle format.
Another format we should look into is "text" which would allow the
application to draw the subtitles manually in whatever obscure form it
wants.).
[snip]

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?

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.

Cheers,
-AF
------=_Part_3186_27960907.1213539800115-- --===============1279359712== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ kde-multimedia mailing list kde-multimedia@kde.org https://mail.kde.org/mailman/listinfo/kde-multimedia --===============1279359712==--