<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV>The API comes with NO effects? :) I guess my life on Mac is somewhat easier (I got close to 100 filters easily applicable :) </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I have a feeling that there might not be a bag full of filters in xine either? So we might just need to relax the use of filters anyway...</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>-Richard</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>(BTW: The QuickTime API is also provided on Windows, but I guess not the filters anyway....)</DIV><BR><DIV><DIV>On Jul 13, 2007, at 2:03 PM, Thierry Bastian wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"> <DIV class="Section1"><P class="MsoNormal"><SPAN style="font-size:11.0pt;font-family:" calibri","sans-serif";="" color:#1f497d"="">FYI under windows there are no default video effects available ;-)<O:P></O:P></SPAN></P><P class="MsoNormal"><SPAN style="font-size:11.0pt;font-family:" calibri","sans-serif";="" color:#1f497d"=""><O:P> </O:P></SPAN></P><P class="MsoNormal"><SPAN style="font-size:11.0pt;font-family:" calibri","sans-serif";="" color:#1f497d"="">Thierry<O:P></O:P></SPAN></P><P class="MsoNormal"><SPAN style="font-size:11.0pt;font-family:" calibri","sans-serif";="" color:#1f497d"=""><O:P> </O:P></SPAN></P> <DIV> <DIV style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm"><P class="MsoNormal"><B><SPAN style="font-size:10.0pt;font-family:" tahoma","sans-serif""="">From:</SPAN></B><SPAN style="font-size:10.0pt;font-family:" tahoma","sans-serif""=""> Richard [<A href="mailto:richardmg@trolltech.com">mailto:richardmg@trolltech.com</A>] <BR> <B>Sent:</B> vendredi 13 juillet 2007 13:57<BR> <B>To:</B> Thierry Bastian<BR> <B>Cc:</B> <A href="mailto:phonon-backends@kde.org">phonon-backends@kde.org</A><BR> <B>Subject:</B> Re: Video effects<O:P></O:P></SPAN></P> </DIV> </DIV><P class="MsoNormal"><O:P> </O:P></P> <DIV><P class="MsoNormal">I agree that creating a separate class for every kind of effect seems like not a good idea (Therefore I didn't suggest it either) My main issue is that it will be impossible to write a cross-platform app with phonon that uses any of the effects? E.g. the Gaussian blur effect on mac (using core image filters) is called CIGaussianBlur. While I guess e.g. Windows has a similar filter, but called something slightly different?<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">So the only thing the user can do with any of the effects is to show them in a list to the app-user to choose from?<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">With the enumeration style it will not make phonon bigger, and at least you can use the effects cross platform programatically, with perhaps using default values for the parameters (if we cannot come up with something better).<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">I'm not saying the below solution is the best, I just wonder if we can solve this in a more cross platform way...<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">-Richard<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal"><BR> <BR> <O:P></O:P></P> <DIV><P class="MsoNormal">The problem is still the same: we can't easily have a common base of<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">effects. So adding a GaussianBlurEffect class would not make sense out of<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">the Quicktime world.<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">Thinking loud: Maybe a factory could do that job?<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">Thierry<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">-----Original Message-----<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">From: Matthias Kretz [<A href="mailto:kretz@kde.org">mailto:kretz@kde.org</A>]<SPAN class="apple-converted-space"> </SPAN><O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">Sent: vendredi 13 juillet 2007 13:23<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">To: <A href="mailto:phonon-backends@kde.org">phonon-backends@kde.org</A><O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">Subject: Re: Video effects<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">On Friday 13 July 2007, Richard wrote:<O:P></O:P></P> </DIV> <BLOCKQUOTE style="margin-top:5.0pt;margin-bottom:5.0pt"> <DIV><P class="MsoNormal">What I would prefer is something more like this:<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">---<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><SPAN class="apple-converted-space">     </SPAN>if (Backendcapabilies::hasVideoEffect(Effect::GaussianBlur))<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><SPAN class="apple-converted-space">     </SPAN><SPAN class="apple-tab-span">       </SPAN>Effect * e = new Effect(Effect::GaussianBlur, parent);<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">or alternatively:<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal"><SPAN class="apple-converted-space">     </SPAN>Effect * e = new Effect(Effect::GaussianBlur, parent);<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><SPAN class="apple-converted-space">     </SPAN>if (e-&gt;isValid()){<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><SPAN class="apple-converted-space">         </SPAN>...<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><SPAN class="apple-converted-space">     </SPAN>}<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">---<O:P></O:P></P> </DIV> </BLOCKQUOTE> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">Why not go the whole way and provide<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">GaussianBlurEffect *e = new GaussianBlurEffect(parent); if (e-&gt;isValid()) {<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><SPAN class="apple-converted-space">    </SPAN>...<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">}<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">then? Because otherwise you still have no guarantees about the parameters.<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">The generic Effect class was meant to be used by user interaction only. If<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">an app needs to integrate an effect then it needs a specialized interface to<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">that effect.<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">This, of course, will blow up the lib size again so perhaps this should be<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">in a second library or #ifdefed as a feature?<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">--<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">________________________________________________________<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">Matthias Kretz (Germany)<SPAN class="apple-converted-space">                            </SPAN>&lt;&gt;&lt;<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><A href="http://Vir.homelinux.org">http://Vir.homelinux.org</A>/<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><A href="mailto:MatthiasKretz@gmx.net">MatthiasKretz@gmx.net</A>, <A href="mailto:kretz@kde.org">kretz@kde.org</A>,<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><A href="mailto:Matthias.Kretz@urz.uni-heidelberg.de">Matthias.Kretz@urz.uni-heidelberg.de</A><O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal">_______________________________________________<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal">Phonon-backends mailing list<O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><A href="mailto:Phonon-backends@kde.org">Phonon-backends@kde.org</A><O:P></O:P></P> </DIV> <DIV><P class="MsoNormal"><A href="https://mail.kde.org/mailman/listinfo/phonon-backends">https://mail.kde.org/mailman/listinfo/phonon-backends</A><O:P></O:P></P> </DIV> </DIV><P class="MsoNormal"><O:P> </O:P></P> <DIV><P class="MsoNormal"><SPAN style="font-size:9.0pt;font-family:" monaco","serif";="" color:black"=""><BR> <BR> </SPAN><SPAN class="apple-style-span"><SPAN style="font-size:9.0pt;font-family: " monaco","serif";color:black"=""><O:P></O:P></SPAN></SPAN></P> <DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV> <DIV><P class="MsoNormal"><SPAN style="font-size:9.0pt;font-family:" monaco","serif";="" color:black"="">--<O:P></O:P></SPAN></P> </DIV> <DIV><P class="MsoNormal"><SPAN style="font-size:9.0pt;font-family:" monaco","serif";="" color:black"="">Richard Moe Gustavsen<O:P></O:P></SPAN></P> </DIV> <DIV><P class="MsoNormal"><SPAN style="font-size:9.0pt;font-family:" monaco","serif";="" color:black"="">Software Engineer II, Trolltech ASA<O:P></O:P></SPAN></P> </DIV> <DIV><P class="MsoNormal"><SPAN style="font-size:9.0pt;font-family:" monaco","serif";="" color:black"="">Sandakerveien 116, NO-0484 Oslo, Norway<O:P></O:P></SPAN></P> </DIV><P class="MsoNormal"><SPAN style="font-size:9.0pt;font-family:" monaco","serif";="" color:black"=""><BR> <BR> </SPAN><O:P></O:P></P> </DIV><P class="MsoNormal"><O:P> </O:P></P> </DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Phonon-backends mailing list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:Phonon-backends@kde.org">Phonon-backends@kde.org</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="https://mail.kde.org/mailman/listinfo/phonon-backends">https://mail.kde.org/mailman/listinfo/phonon-backends</A></DIV> </BLOCKQUOTE></DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Monaco; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Monaco; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><BR class="Apple-interchange-newline"><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Monaco; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Monaco; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Monaco; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Monaco; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Monaco; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Monaco; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Monaco; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><DIV><BR class="khtml-block-placeholder"></DIV><DIV>--</DIV><DIV>Richard Moe Gustavsen</DIV><DIV>Software Engineer II, Trolltech ASA</DIV><DIV>Sandakerveien 116, NO-0484 Oslo, Norway</DIV><BR class="Apple-interchange-newline"></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN> </DIV><BR></BODY></HTML>